Voir la source de Robot suiveur de ligne
De Wiki Arobose
Aller à :
Navigation
,
rechercher
Un robot suiveur de ligne est un robot mobile qui va se déplacer en suivant une ligne (par exemple une ligne noire sur fond blanc). C'est un robot autonome très simple à concevoir. == Matériel == Pour réaliser ce robot, nous avons besoin d'un chassis, d'une carte de commande et de capteurs : * un chassis [http://www.dfrobot.com/wiki/index.php?title=2WD_Mobile_Platform_for_Arduino_%28SKU:ROB0005%29| Turtle 2WD] de DRFobot * une [[Carte Romeo]] de DFRobot basée sur un ATMEGA32U4 et qui intègre un étage de puissance pour contrôler les 2 moteurs CC * un [[Capteur niveau de gris DFR0022]] de DFRobot == Principe général == Le robot doit suivre la ligne noire grâce aux capteurs niveau de gris. Si le capteur détecte du noir, le robot va tout droit. Si le capteur détecte du blanc, le robot a dévié de la ligne et doit donc corriger sa trajectoire. == Tests == === Robot avec un seul capteur === Pour commencer, nous allons installer un seul capteur sur notre robot. ==== Principe ==== Avec un seul capteur, il faut placer le robot à cheval sur la ligne (blanc à gauche et noir à droite). Si le capteur détecte du blanc, le robot doit corriger en allant à droite et inversement si le capteur détecte du noir, le robot doit corriger en allant sur la gauche. Si le capteur détecte une nuance entre les deux, le robot va tout droit. ==== Programme ==== Les fonctions sur le convertisseur analogique / numérique et le déplacement du robot sont expliqués [[carte Romeo| ici]]. La valeur du blanc est 55 et celle du noir est 260. On estime que la nuance de gris pour aller tout droit se situe entre 130 et 170. En dessous de cette nuance (inférieur à 130), le robot se dirige vers le blanc et doit tourner vers la droite en ralentissant son moteur droit. Au dessus de cette nuance (supérieur à 170), le robot se dirige vers le noir et doit tourner vers la gauche en ralentissant son moteur gauche. <syntaxhighlight lang="c"> void setup(void) { adc_setup(); motor_setup(); } int main(void) { setup(); while (1) { int niveau_gris = adc_read(0); if ((niveau_gris >= 130) && (niveau_gris <= 170)) { // avance advance(100, 100); } else if (niveau_gris < 130) // blanc { // corrige a droite advance(50, 100); } else // noir (gris > 170) { // corrige a gauche advance(100, 50); } } } </syntaxhighlight> ==== Conclusion ==== Cette solution fonctionne très bien mais si le robot perd le bord de la ligne, il va tourner en rond sans jamais la retrouver. Pour éviter ce problème, il faut placer plusieurs capteurs en ligne. [[Category:Tutoriels]]
Revenir à la page
Robot suiveur de ligne
.
Affichages
Page
Discussion
Voir le texte source
Historique
Outils personnels
Connexion
Navigation
Accueil
Communauté
Actualités
Modifications récentes
Page au hasard
Aide
Rechercher
Boîte à outils
Pages liées
Suivi des pages liées
Pages spéciales
Catégories
[
×
]
Produits
[
×
]
Tutoriels