Voici un premier programme Arduino pour tester le robot une fois assemblé (mécanique).
Il faut d’abord avoir trouvé le neutre pour chacun des deux servomoteurs à rotation continue.
#include#define POS_NEUTRE_D 77 #define POS_NEUTRE_G 76 Servo servG; Servo servD; void setup() { // serial communication Serial.begin(9600); // using "detach" makes the robot not move at all, // as servomotors will not be controlled yet servG.detach(); servD.detach(); } void loop() { // as soon as someithing is received from the serial communication if (Serial.available()) { // every command is only one byte long (character) char val = Serial.read(); switch (val) { case ' ': // stop Serial.println("> Robot stop"); servG.detach(); servD.detach(); break; case '8': // en avant servG.attach(10); servD.attach(9); servG.write(POS_NEUTRE_G+10); servD.write(POS_NEUTRE_D-10); Serial.println("> Robot forward"); break; case '5': // arrière servG.attach(10); servD.attach(9); servG.write(POS_NEUTRE_G-10); servD.write(POS_NEUTRE_D+10); Serial.println("> Robot backward"); break; case '4': // à gauche servG.attach(10); servD.attach(9); servG.write(POS_NEUTRE_G+10); servD.write(POS_NEUTRE_D+10); Serial.println("> Robot left"); break; case '6': // à droite servG.attach(10); servD.attach(9); servG.write(POS_NEUTRE_G-10); servD.write(POS_NEUTRE_D-10); Serial.println("> Robot right"); break; default: servG.attach(10); servD.attach(9); // the received value int value (and not char) // is used as the speed (same for both) servG.write(POS_NEUTRE_G+val); servD.write(POS_NEUTRE_D-val); Serial.println("> Robot controlled"); break; } } }