Mini-tank controlé à distance (1,5KM !)

Medium ib7ull9vpw09bzr7hxid

Difficulté:

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.

Matériel

Medium ph1rt7lb68ujw22anogj

Budget:

200 €

1x Zumo robot (75:1)
1x Arduino Uno
2x Xbee ( moi j’ai deux version Pro ) et de quoi les programmé [ ps : les Xbee sont pré-configuré de base, de ce fait je ne m’étendrais pas sur leurs configurations !!! ]
Avant tout, je précise que le code est universel si l’on prend la librairie, peu importe les composants, mais veuillez quand même prendre si possible ceux qui sont en photo en préférence.

1x joysitck ( analogique [ moi j’ai un CH TS Series])
2x SparkFun Level Controler
1x Arduino NANO
– Fils,étain,fer à souder
4x Piles AA ( ou plus si vous voulez que la télécommande soit alimenté autre qu’en USB )

Etape 1 : Plan de montage

Voici le plan de montage “simplifié” fait à la main,

Etape 2 : Montage

Voici quelques photos du montage réel.

Etape 3 : La télécommande

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é...

Etape 4 : Le robot

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);


     }


      }
    }
  }

Etape 5 : Résultat final

Medium j2ishzu86a8w3iwh0wh4


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

Etape 6 : Possibles évolutions

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 !

Etape 7 : Téléchargements divers

Vous aimez ce tutoriel ?


Soyez le premier à poster un commentaire pour Mini-tank controlé à distance (1,5KM !)


Gotronic

Voir l'espace DIY gotronic


S'inscrire:


  • Vues: 773
  • J'aime: 9