Pages: [1]   Go Down
Author Topic: Mon projet robot : Arduino ROMEO + 4WD  (Read 9256 times)
0 Members and 1 Guest are viewing this topic.
Niort
Offline Offline
Newbie
*
Karma: 0
Posts: 4
Dieux a créé l'homme et pour le remercier, l'homme à créé dieux...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset



26/06/12 : Je modifie mon post pour offrir un petit tutoriel aux débutants, sachant que j'ai eu beaucoup de
mal à trouver les ressources à mes débuts. Donc voici plus de détails sur le matériels, library et scripts.
Si vous souhaitez vous lancer dans ce type de projet, sachez que l'utilisation du langage de base arduino est relativement simple. Il suffit d'un peu de réflexion et une bonne dose de patience smiley-wink

Donc partons d'un robot de base comme le miens ( pour le moment ) qui avance et évite les obstacles.

Pour le materiels voici les caractéristiques :
-Arduino romeo ( j'utilise une ancienne version de la carte mais la base reste la même )
http://www.dfrobot.com/index.php?route=product/product&filter_name=romeo&product_id=656
J'ai préféré la carte Roméo car elle intégre de base un controlleur de moteur ( une prise de tête en moins lol )

-Châssis 4WD DFrobot fournit avec 4 moteurs et un support 6 piles
http://www.dfrobot.com/index.php?route=product/product&filter_name=4wd&product_id=97
Je ne donnerais pas d'information supplémentaires au sujet du chassis sachant qu'il existe une multitude de ressource à son sujet, sachez juste qu'il est livré en kit à monter et souder donc prévoyez un bon moment de calme pour le montage smiley-wink

-2X capteurs infra-rouges
http://www.dfrobot.com/index.php?route=product/product&path=36_55&product_id=114

Une fois le chassis monté, carte fixée, reliez l'alimentation générale et les moteurs aux borniers ( motor power IN et motor 1, 2 DC ) en respectant les polarités ( GND=- / M_win=+ ) pour ce type de montage l'alimentation du chassis suffira à alimenter la carte, mais par la suite, il vous faudra une alimentation à part ( dans ce cas, pensez a retiré le jumper "power in selection jumper" ).
Ensuite, reliez les capteurs infra-rouge aux I/O digital 2 et 3 ( Evitez les I/O digitale 0 et 1 qui servent pour la communication de la carte )



Voilà vous avez votre robot il ne manque plus qu'a lui dire quoi faire, voici le script de base permettant au robot d'éviter les murs et obstacles après c'est à vous de le modifié suivant les capteurs et autre que vous ajouterez... smiley-wink

Quote
/*****declaration moteur*****/
int E1 = 5;     //moteur 1 controle de vitesse
int E2 = 6;     //moteur 2 controle de vitesse
int M1 = 4;    //moteur 1 controle de direction
int M2 = 7;    //moteur 2 controle de direction
int moveMotor = 0;
/**********/

/*****declaration capteurs IRs*****/
const int Infrared_left = 2;     //Sensor IR gauche
const int Infrared_right = 3;     //Sensor IR droite
int Infrared_left_state = 0; //declaration de variable
int Infrared_right_state = 0; //declaration de variable
/**********/

void stopper(void)                    //Stop
{
  digitalWrite(E1,LOW); 
  digitalWrite(E2,LOW);     
}  
void advance(char b)          //le robot avance
{  
  analogWrite (E1,b);   
  digitalWrite(M1,HIGH);
  analogWrite (E2,b);   
  digitalWrite(M2,HIGH);

void back_off (char b)        //le robot recule

  analogWrite (E1,b);   
  digitalWrite(M1,LOW);
  analogWrite (E2,b);   
  digitalWrite(M2,LOW);
}
void turn_L (char a)             //Tourne a gauche
{
  analogWrite (E1,a);
  digitalWrite(M1,HIGH);
  analogWrite (E2,a);
  digitalWrite(M2,LOW);
}
void turn_R (char a)             //Tourne a droite
{
  analogWrite (E1,a);
  digitalWrite(M1,LOW);
  analogWrite (E2,a);
  digitalWrite(M2,HIGH); 
}
void setup(void)
{
  //console serial facultative
  int i;
  for(i=6;i<=9;i++)
    pinMode(i, OUTPUT);
  Serial.begin(9600);   
  
  
  // Initialisation des pins en input
  pinMode(Infrared_left, INPUT);
  pinMode(Infrared_right, INPUT);
  
}

void loop(void)
{
  // Lecture de l'états des IR
  Infrared_left_state = digitalRead(Infrared_left);
  Infrared_right_state = digitalRead(Infrared_right);

  // Si le gauche detecte quelque chose le robot tourne a droite
  if (Infrared_left_state == LOW) {     
    turn_R(255);
  }  
  else {
    stopper();
  }

  // Si le droite detecte quelque chose le robot tourne a gauche
  if (Infrared_right_state == LOW) {     
    turn_L(255);
  } 
  else {
    stopper();
  }

  //si les 2 capteurs IRs detecte en même temps le robot recule puis tourne
  if (Infrared_left_state == LOW && Infrared_right_state == LOW) {
    back_off(255);
    delay(2000);
    turn_L(255);
    delay(2000);
  } 
  else {
    stopper();
  }

  //sinon le robot avance
  if (Infrared_left_state == HIGH && Infrared_right_state == HIGH) {     
    advance(255);
  } 
  else {
    stopper();

  }
}


Voici en supplément une petite vidéo démonstrative de mon robot perso smiley-wink
https://www.youtube.com/watch?v=1TTU9QcgAsI
« Last Edit: June 26, 2012, 02:15:19 am by ttdog » Logged

Projet Robot
Arduino Romeo V1.0 & 4WD Châssis

0
Offline Offline
God Member
*****
Karma: 2
Posts: 802
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Yep!

Jolie réalisation smiley-wink

Je constate que tu utilises les fonctionnalités de base du langage arduino, pourrais-tu estimer le temps de réaction de ton robot entre le moment de la détection et celui de la commande moteur ???
(ou la durée d'un cycle, hors lcd ?)

Ainsi que le type de motorisation et le modèle ?

Il serait bon également que tu détailles un peu plus les sondes utilisées, personnelement je les connais mais ce n'est pas le cas de tout le monde.

@+

Zoroastre.
Logged

Veuillez indiquer [RESOLU] dans l'entête du titre en éditant votre premier message smiley-wink

83 - var
Offline Offline
God Member
*****
Karma: 9
Posts: 864
ARDUINO Powa !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

mise à part le premier mur qu'il semble percuté c'est pas mal, c'est plus la qualité de la caméra qui abaisse le niveau ^^ belle réalisation bravo, une petite question , quel batterie utilise tu? je ne tombe que sur des truc trop lourd et du coup faut des moteurs balaise pour déplacé tout ça ^^

Skizo !
Logged

Un tien vaux mieux que deux tu l'auras !

Niort
Offline Offline
Newbie
*
Karma: 0
Posts: 4
Dieux a créé l'homme et pour le remercier, l'homme à créé dieux...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Il ne percute pas mais il est vrais qu'il le frôle, je pense que les capteurs IR on du mal sur les surface brillantes. Il manque de capteur je vais déjà mettre en marche le capteur ultrasonic puis peux être en ajouter d'autre, on verra  smiley
Comme je disais plus haut j'ai pas de batterie pour le moment juste 6 piles AAA pour les moteurs et une pile 9 volts pour la carte, je pense passé sur batterie d'ici quelques temps.
Logged

Projet Robot
Arduino Romeo V1.0 & 4WD Châssis

83 - var
Offline Offline
God Member
*****
Karma: 9
Posts: 864
ARDUINO Powa !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ok ok, parce que moi je suis vraiment d'en le flou niveau batterie j'aimerai trouver des batterie légère comme celle d'un téléphone et en mettre plusieurs coi, mais faut que je me renseigne sur les batterie et si on peut les mettre en parallèle sans trop de gachi ^^ 
Logged

Un tien vaux mieux que deux tu l'auras !

Niort
Offline Offline
Newbie
*
Karma: 0
Posts: 4
Dieux a créé l'homme et pour le remercier, l'homme à créé dieux...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ok ok, parce que moi je suis vraiment d'en le flou niveau batterie j'aimerai trouver des batterie légère comme celle d'un téléphone et en mettre plusieurs coi, mais faut que je me renseigne sur les batterie et si on peut les mettre en parallèle sans trop de gachi ^^ 

Moi je pense m'orienter vers cette batterie par la suite
http://www.dfrobot.com/index.php?route=product/product&path=70&product_id=489
Logged

Projet Robot
Arduino Romeo V1.0 & 4WD Châssis

83 - var
Offline Offline
God Member
*****
Karma: 9
Posts: 864
ARDUINO Powa !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

elle est pas mal du tout, tu pense qu'il est possible d'en mettre plusieurs pour plus d'autonomie?
Logged

Un tien vaux mieux que deux tu l'auras !

Niort
Offline Offline
Newbie
*
Karma: 0
Posts: 4
Dieux a créé l'homme et pour le remercier, l'homme à créé dieux...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

elle est pas mal du tout, tu pense qu'il est possible d'en mettre plusieurs pour plus d'autonomie?

Ben tu peux les ajoutées mais tu arrive a 15Volts ( la fourchette de voltage sur ma romeo est de 7-12Volt max! )
Par contre il peux être possible dans mon cas d'utiliser une batterie pour la carte et une pour les moteurs, mais le problème serais qu'il faille recharger les batteries l'une après l'autre...
Logged

Projet Robot
Arduino Romeo V1.0 & 4WD Châssis

0
Offline Offline
God Member
*****
Karma: 2
Posts: 802
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Yep!

Quote from: ttdog
Ben tu peux les ajoutées mais tu arrive a 15Volts ( la fourchette de voltage sur ma romeo est de 7-12Volt max! )
Par contre il peux être possible dans mon cas d'utiliser une batterie pour la carte et une pour les moteurs, mais le problème serais qu'il faille recharger les batteries l'une après l'autre...

En série, les tensions s'ajoutent : 7,2 v + 7, 2v = 14,4 à 2200 mA/h
En parallèle, les amperages s'ajoutent : 2200 + 2200 mA/h à 7,2 v

Je pense que skizoh suggéré de les mettre en parallèle, donc 2x2200 mA/h = 4400 mA/h pour 7,2v

@+

Zoroastre.
« Last Edit: June 28, 2012, 01:14:38 pm by zoroastre » Logged

Veuillez indiquer [RESOLU] dans l'entête du titre en éditant votre premier message smiley-wink

Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

 @ ttdog    Très belle réalisation et merci pour le partage et retour d'expérience.
Pour ma part, je suis "ultra newbie" car j'ai reçu mon "Romeo" la semaine passée et le chassis et la carte sont montés.
Je suis plongé dans l'étude des instructions; mais mon premier projet imaginé est précisément celui que tu présentes.
C'est un pur hasard !  Si, si.    Aussi, j'ai quelques questions (de débutant) à formuler.
1. J'ignorais que les détecteurs IR réagissaient avec les murs; j'aurais mis des détecteurs ultrasoniques et pourtant sur la photo, il y a un ultrasonique. Peux-tu donner ta motivation ?
2. Je vois sur le dessin un écran LCD; a quoi sert-il ? Pour le déboggage ou pour le suivi du programme ? Sur quelle PIN est-il monté ?   Que donne-t-il comme message ?

Encore félicitation pour cette réalisation et merci pour les infos complémentaires.  A+
Logged

Pages: [1]   Go Up
Jump to: