Demande d'aide pour Arduino et Xbee

Bonjour a tous,

Dans le cadre d’un projet pour l’école, je vais faire une main et un bras robotisé, Le bras et la main seront contrôlés à l’aide de capteurs de mouvements. Les capteurs vont être cousus sur deux gants, un pour contrôler la main et l’autre pour le bras, j’utiliserai des diviseurs de tensions sur les capteurs de mouvements, pour avoir la valeur de la variation de tentions lors du mouvement du doigt.

Pour commander et connecter le bras et la main aux gants, j’utiliserai trois modules Xbee, pour envoyer et recevoir les données à l’aide du WiFi, et trois cartes Arduino, pour le contrôle et la gestion de chaque signal.

J’ai déjà fais toutes la mécaniques, et fais les gants, il me reste a faire le code, et c’est mon problème :confused: .

J’ai fais un code mais il fonctionne pas, quand j’utilise juste un capteur pour un doit cela fonctionne mais si je mets tout ensemble rien ne fonction, la main fonctionne toute seul, elle bouge aléatoirement .

voici le code pour la main , le bras c’est le meme problème, :

Pour l’envoie :

int position0 = 0;
int position1 = 0;
int position2 = 0;
int position3 = 0;
int position4 = 0;
 
 void setup() {
   Serial.begin(9600);
 }
 void loop() {
   
     
 int flex0 = analogRead(A0);
 int flex1 = analogRead(A1);
 int flex2 = analogRead(A2);
 int flex3 = analogRead(A3);
 int flex4 = analogRead(A4);
 
 int position0 = map(flex0, 400, 700, 0, 255);
 Serial.write(position0); 
 delay(10);
 
 int position1= map(flex1, 410, 740, 0, 255);
 Serial.write(position1);
 delay(10);
 
 int position2 = map(flex2, 760, 420, 0, 255);
 Serial.write(position2);
 delay(10);
 
 int position3 = map(flex3, 700, 400, 0, 255);
 Serial.write(position3);
 delay(10);
 
 int position4 = map(flex4, 700, 400, 0, 255);
 Serial.write(position4);
 delay(10); 
}

Voici celui de la reception :

#include <Servo.h>
//Creation des l'objets de la classe servo
Servo MonServo0, MonServo1, MonServo2,MonServo3, MonServo4;

int doigtPin0 = 7;
int doigtPin1 = 6;
int doigtPin2 = 5;
int doigtPin3 = 4;
int doigtPin4 = 3;

 int flex0 = 0;
 int flex1 = 0;
 int flex2 = 0;
 int flex3 = 0;
 int flex4 = 0;

int position0 = 0;
int position1 = 0;
int position2 = 0;
int position3 = 0;
int position4 = 0;

 
void setup()  {
  Serial.begin(9600);
   Serial.println( "Serial Start" );
  
   // put your setup code here, to run once:
  MonServo0.attach(doigtPin0);
  MonServo1.attach(doigtPin1);
  MonServo2.attach(doigtPin2);
  MonServo3.attach(doigtPin3);
  MonServo4.attach(doigtPin4);
  
  MonServo0.write( position0 );
  MonServo1.write( position1 );
  MonServo2.write( position2 );
  MonServo3.write( position3 );
  MonServo4.write( position4 );
}
  
void loop()  {
  if (Serial.available() > 0) {
     
    flex0 = Serial.read(); 
 int position0 = map(flex0, 0, 255, -360, 180);
 MonServo0.write(position0);
 delay(10);
 
 flex1 = Serial.read();
 int position1= map(flex1, 0, 255, -360, 180);
 constrain (position1, 0, 160);
 MonServo1.write(position1);
 delay(10);
 
  flex2 = Serial.read();
 int position2 = map(flex2, 0, 255, 0, 500);
 MonServo2.write(position2);
 delay(10);
 
 flex3 = Serial.read();
 int position3 = map(flex3, 0, 255, 0, 500);
 MonServo3.write(position3);
 delay(10);
 
  flex4 = Serial.read();
 int position4 = map(flex4,0, 255, 0, 500);
 MonServo4.write(position4);
 
delay(10);
         
   
  }
}

Merci de votre aide :slight_smile:

Salut,

déja, il y a une double définitions des variables position0-4

il faut virer le "int" dans le loop devant positionX
meme chose pour la reception

Ensuite, a voir comment ca se comporte, mais ca devrait aller mieux ... :wink:

Merci, j'ai trouvé mes erreur, il fonctionne :slight_smile: