Problème Arduino xbee pour PPE terminale

a marqué ce sujet comme résolu.

Bonjour,

Je suis en terminale et avec mon groupe nous aimerions réaliser une main robotisée. Chaque doigt de la main (imprimé en 3D) est controlé par un servomoteur. Les servomoteurs sont eux même controlés par des résistances variables (http://www.gotronic.fr/art-capteur-de-flexion-fs7954-20718.htm) sur les doigts d'un gant. Nous imerions que la gant soit relié sans fil avec la main. Nous avons donc deux cartes arduino, deux modules xBee mais nous n'arrivons pas à faire fonctionner ces dits modules. Est ce que quelqu'un ici s'y connait ?

Merci

Salut ! est-ce que tout marche déjà sans les modules xBee ? Par exemple avec une seule arduino ?

Edit : Si tu pouvais donner plus d'infos sur le problème ça serait pas mal aussi :p (comment vous procédez, éventuellement du code, schémas de montage etc…)

+0 -0

Ah ! Content de voir que je ne suis pas le seul qui a eu des problèmes avec ces Xbee ! J'ai aussi essayé de faire communiquer deux Xbee ensembles, sans grand succès… :D Du coup, on utilise des modules RF 433MHz ( enfait les Xbee, c'était plus pour faire malins qu'autre chose… ^^ ).

Montre nous ce que tu as fait, en terme de câblage, et de programme. Je suis pas sûr de pouvoir aider, mais sait-on jamais…

+0 -0

bonsoir,

sur une carte arduino, le servomoteur marche niquel (avec la bibliothèque Servo.h ). J'ai réussi à faire fonctionner les modules xbee mais juste avec des périphériques à deux pattes (ex : led). Dès que je met un servomoteur (donc à 3 pattes), il ne se passe plus rien

+1 les modules 433MHz c'est la vie ^^

klafyvel

ça n'a pas grand chose à voir 433 c'est la frequence utilisé, Xbee designe (aussi) le protocole.

c'est un peu comme si tu comparais l'ADSL et le http.

juke

Pardon, je parlais simplement de facilité d'utilisation. La finialité des deux modules est quand même proche (dans ce cas de figure).

bonjour,

Désolé du peu d'informations donnée. Notre projet marche bien à un détail. voici le code des deux arduino :
recepteur :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <Servo.h>
int pinServo=9; // variable pour le pin connecté à la commande du servo
Servo MonServo;

void setup() {
  Serial.begin(9600);     
  MonServo.attach(pinServo);

}


void loop() {
  while(Serial.available()){  
    int getdata = Serial.read();
    Serial.print(getdata);
    MonServo.write(getdata);
    delay(100);
    Serial.print(getdata);
    MonServo.write(getdata);


  }

}

emetteur :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
void setup()
{
  Serial.begin(9600);
}

void loop()
{
  int a = 10 ;
  int b = 60 ;
  Serial.print(a);
  delay(100);
  Serial.print(b);
  delay(100);
}

Le problème est que du coté de la reception je recois pas 10 et 60 mais les valeurs ascii de 1,0,6,0 Ce qui est problématique. Si certaines personnes ont déjà eu ce genre problème,

Merci ;)

+0 -0

bon bah mauvaise nouvelle ca marche pas !

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
int an1;

void setup() {
 Serial.begin(9600);

}
void loop() {
  an1 = 30;
  Serial.print(30);
  delay(1000);

}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
void setup() {
 Serial.begin(9600);
}

void loop() {

   while(Serial.available()){ 
     int getdata = Serial.read();
     Serial.print(getdata);

   }
}

avec ca comme code je recoit 5841 5841 5841 qui sont les valeurs ascii de 3et0. la fonction atoi() ne marche pas non plus. Si quelqu'un a une idée

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte