Dans ce tuto nous allons monter notre propre rover !

Pour commencer je vais définir ce qu'est un rover et à quoi il peut servir. Un rover est un robot à chenille sensé se déplacer dans des zones difficile d'accès et à terrain inconnu comme sur d'autres planètes par exemple. Evidemment celui que nous allons construire n'est qu'un petit robot à chenille bien loin de tout ça mais au fond ils ont le même principe : permettre un déplacement fiable à notre robot. Ensuite il nous suffit d'y ajouter nos éléments pour faire ce que l'on souhaite dessus. Par exemple sur le mien j'y ai collé un breadboard pour pouvoir faire des montages électriques simplement et solidement.

Voici le lien du rover que je vais monter:
http://www.robotshop.com/en/dfrobotshop-rover-tracked-robot-basic-kit.html
Vous pouvez tout aussi bien en faire un vous même si vous avez des engrenages, des fixations et des chenilles surtout si vous avez déjà une carte Arduino.

Maintenant voici les images de la construction du rover:

Et voila votre rover est pret plus qu'à le programmer !
Pour cela rien de mieux que les codes d'exemples donner dans le manuel du rover a partir de la page 26:
http://www.robotshop.com/media/files/pdf/dfrobotshop-rover-user-guide.pdf

Pour Utiliser leurs code de contrôle avec les touches de clavier vous allez avoir besoin d'un hyperterminal. Vous pouvez et je vous le conseil d'utiliser celui intégrer dans l'IDE d'arduino via l'interface sérial mais si vous allez beaucoup utiliser la commande par fil du rover vous pouvez utiliser l'hyperterminal windows, si vous êtes sur windows 7 ou plus récent il faudra télécharger un programme pour les autres il est installé avec windows:
http://www.clubic.com/telecharger-fiche378484-hyperterminal-private.html

Comme je suis gentil je vous ai rajouté des petits commentaires sur le code pour les débutant:


/*To control the rover, Copy and paste the code below into the Arduino software*/
int E1 = 6; //Variable controlant la vitesse du moteur 1
int E2 = 5; //Variable controlant la vitesse du moteur 2
int M1 = 8; //Variable controlant la direction du moteur 1
int M2 = 7; //Variable controlant la direction du moteur 2
void setup(void)
{
 int i;
 for(i=5;i<=8;i++)
 pinMode(i, OUTPUT); //On initialise les pin 5,6,7 et 8 en sortie pour pouvoir controler le moteur.
 Serial.begin(9600);
}
void loop(void)
{
 while (Serial.available() < 1) {} // On attend la réception d'un caractère
 char val = Serial.read(); // On stocke le caractère dans la variable val
 int leftspeed = 255; //255 est la vitesse maximum
 int rightspeed = 255;
 switch(val) // On regarde quelle touche à été enfoncé
 {
 case 'w'://Si c'est la touche w on lance la fonction forward...
 forward (leftspeed,rightspeed);
 break; 
 case 's':
 reverse (leftspeed,rightspeed);
 break;
 case 'a'://Turn Left
 left (leftspeed,rightspeed);
 break;
 case 'd'://Turn Right
 right (leftspeed,rightspeed);
 break;
 default: // Si la touche enfoncé n'est aucune de celle cité plus haut on lance la fonction stop
 stop();
 break;
 } 
}
void stop(void) //Stop
{
 digitalWrite(E1,LOW); //On met les deux vitesse du moteur à 0;
 digitalWrite(E2,LOW);
}
void forward(int a, int b) // Avancer
{
 analogWrite (E1,a); // On balance une vitesse aux moteur égale à la valeur que l'on a donné aux variables leftspeed et rightspeed qu'on a défini plus haut.
 digitalWrite(M1,LOW); // On choisi la direction avant, le sens de rotation du  moteur dépendant du sens du courant le fait de mettre LOW ou HIGH permet d'en inverser le sens de rotation. 
 analogWrite (E2,b);
 digitalWrite(M2,LOW);
}
void reverse (int a,int b)
{
 analogWrite (E1,a);
 digitalWrite(M1,HIGH);
 analogWrite (E2,b);
 digitalWrite(M2,HIGH);
}
void left (int a,int b)
{
 analogWrite (E1,a);
 digitalWrite(M1,HIGH); // Pour tourner il faut que les deux moteurs tourne dans deux sens différents.
 analogWrite (E2,b);
 digitalWrite(M2,LOW);
}
void right (int a,int b)
{
 analogWrite (E1,a);
 digitalWrite(M1,LOW);
 analogWrite (E2,b);
 digitalWrite(M2,HIGH);
}
                                        
Vous pouvez utiliser notre tutoriel sur la communication sans fil par ondes radio pour commander votre rover sans fil.