Robot tank controlé à distance par joystick !
– Avec ce tutoriel, vous pourrez vous venter d’avoir commencer à faire votre premier robot et vote premier petit projet d’électronique embarqué.
Avant tout ce projet à été pour moi, une première en terme de robotique, Ce que j’aime particulièrement dans ce projet c’est ca diversité. Car il intègre des moteurs, des capteurs ( ici l’intégration du JoyStick Analogique ), un communication UART avec un protocole simple.
Les Xbee sont super, et permettent de faire beaucoup de choses ! c’est comme un simple liaison RX/TX entre deux Arduino.
Je reconnais que ce tutoriel n’est pas fait pour absolument tout le monde. il y à un certain niveau en électronique/programmation à avoir au minimum.
Je remercie tout les jury, et personnes m’ayant soutenus dans ce projet !
Sur ce, bonne lecture.
Budget : Non défini
Voici le plan de montage “simplifié” fait à la main,
Voici quelques photos du montage réel.
A présent regardons la partie programmation de la télécommande en détails afin de la comprendre :
#include int joyPin1 = A1; int joyPin2 = A2; byte value1 =0; // variable byte value2 =0; // variable SoftwareSerial mySerial(12, 11); // RX, TX void setup() { Serial.begin(57600); mySerial.begin(57600); analogReference(DEFAULT); } void loop() { // lire la valeur de joy 0 - 1023 value1 = (byte)(analogRead(joyPin1)>>2); value2 = (byte)(analogRead(joyPin2)>>2); delay(200); //delais obligatoire pour la lecture du joystick !!! mySerial.write((byte)(0xFF)); // 0xFF corespond au Broadcast mySerial.write((byte)(0xFF)); // 0xFF corespond au Broadcast Serial.println(value1); mySerial.write((byte)(value1)); Serial.println(value2); mySerial.write((byte)(value2)); } // ce code peu être copier collé...
A présent regardons la partie programmation du robot en détails afin de la comprendre
#include // on inclus les diverse librairies ( à téléchargé ! ) #include ZumoMotors motors; int VITESSE =0 ; //on initialise VITESSE = 0 int TOURN =0; //on initialise TOURN = 0 long tps = 0; int tmp; int value1=512; // variable int value2=512; // variable SoftwareSerial mySerial(12, 11); // RX = 12, TX = 11 void setup() { // la communication ce fera sur 57600 Baud Serial.begin(57600); mySerial.begin(57600); } void loop() { /* RECEPTION ET LECTURE */ if(mySerial.available()>3) { tmp = mySerial.read(); if(tmp == 0xFF) { tmp = mySerial.read(); if(tmp == 0xFF) { value1 = ((byte)mySerial.read()); Serial.println(value1); VITESSE = map(value1, 0, 255, -400, 400); Serial.println(VITESSE); value2 = ((byte)mySerial.read()); Serial.println(value2); TOURN = map(value2, 0, 255, -400, 400); Serial.println(TOURN); } /* MOTEURS */ if(millis()-tps>150){ tps = millis(); // modèle : motors.setSpeeds(0,0); ------- void ZumoMotors::setSpeeds(int leftSpeed, int rightSpeed) if(VITESSE+TOURN = -100 ) motors.setSpeeds(VITESSE,TOURN); //Stop ------------------ else motors.setSpeeds(VITESSE,VITESSE); } } } }
MAGIE, ça marche
Voici une vidéo YouTube ( avouez que c’est vraiment mieux quand on fait “mumuse” avec haha ! )
LIEN : https://youtu.be/XntXHIFIk7g
Pour conclure avec ce tutoriel. sachez que ce robot est vraiment la “base” les évolutions sont vraiment à exploité. capteurs HC-SRF08 ( ultrason )
ou encore utiliser les capteurs du robot ( capteurs de ligne noire par exemple pour que le robot ne dépassé pas une zone s’il voie un trait noir/blanc )
Il y a aussi des capteurs qui serait vraiment super sympa à intégré dessus, tel une caméra avec un retour vidéo. ou pourquoi pas mettre une pince pour que le robot aille cherché votre pain haha ! ^^
N’oubliez pas de voté pour le projet s’il vous plais, cela me fait plaisir de voir que vous avez regardé ce tuto. et m’aide pour la suite !
Merci à vous !
DATASHEETs :
______________
ZUMO ROBOT : https://www.pololu.com/product/2506/resources
______________
XBEE : https://www.sparkfun.com/datasheets/Wireless/Zigbee/XBee-Datasheet.pdf
______________
SPARKFUN LEVEL CONTROLLER : http://cdn.sparkfun.com/datasheets/BreakoutBoards/BSS138.pdf
Bonjour nous en terminale SI et nous faisons un robot démineur. Notre programme semble être similaire au votre est-ce possible d'avoir une photo de la télécommande?
Merci