<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://www.arobose.com/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>https://www.arobose.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Robot_suiveur_de_ligne</id>
		<title>Robot suiveur de ligne - Historique des versions</title>
		<link rel="self" type="application/atom+xml" href="https://www.arobose.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Robot_suiveur_de_ligne"/>
		<link rel="alternate" type="text/html" href="https://www.arobose.com/wiki/index.php?title=Robot_suiveur_de_ligne&amp;action=history"/>
		<updated>2026-04-05T20:18:26Z</updated>
		<subtitle>Historique pour cette page sur le wiki</subtitle>
		<generator>MediaWiki 1.19.7</generator>

	<entry>
		<id>https://www.arobose.com/wiki/index.php?title=Robot_suiveur_de_ligne&amp;diff=85&amp;oldid=prev</id>
		<title>Ldoffe : robot suiveur de ligne</title>
		<link rel="alternate" type="text/html" href="https://www.arobose.com/wiki/index.php?title=Robot_suiveur_de_ligne&amp;diff=85&amp;oldid=prev"/>
				<updated>2013-07-19T12:56:47Z</updated>
		
		<summary type="html">&lt;p&gt;robot suiveur de ligne&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
== Matériel ==&lt;br /&gt;
Pour réaliser ce robot, nous avons besoin d'un chassis, d'une carte de commande et de capteurs :&lt;br /&gt;
&lt;br /&gt;
* un chassis [http://www.dfrobot.com/wiki/index.php?title=2WD_Mobile_Platform_for_Arduino_%28SKU:ROB0005%29| Turtle 2WD] de DRFobot&lt;br /&gt;
* 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&lt;br /&gt;
* un [[Capteur niveau de gris DFR0022]] de DFRobot&lt;br /&gt;
&lt;br /&gt;
== Principe général ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Tests ==&lt;br /&gt;
&lt;br /&gt;
=== Robot avec un seul capteur ===&lt;br /&gt;
Pour commencer, nous allons installer un seul capteur sur notre robot.&lt;br /&gt;
&lt;br /&gt;
==== Principe ====&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==== Programme ====&lt;br /&gt;
Les fonctions sur le convertisseur analogique / numérique et le déplacement du robot sont expliqués [[carte Romeo| ici]].&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void&lt;br /&gt;
setup(void)&lt;br /&gt;
{&lt;br /&gt;
  adc_setup();&lt;br /&gt;
  motor_setup();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int&lt;br /&gt;
main(void)&lt;br /&gt;
{&lt;br /&gt;
  setup();&lt;br /&gt;
&lt;br /&gt;
  while (1)&lt;br /&gt;
    {&lt;br /&gt;
      int niveau_gris = adc_read(0);&lt;br /&gt;
&lt;br /&gt;
      if ((niveau_gris &amp;gt;= 130) &amp;amp;&amp;amp; (niveau_gris &amp;lt;= 170))&lt;br /&gt;
        {&lt;br /&gt;
          // avance&lt;br /&gt;
          advance(100, 100);&lt;br /&gt;
        }&lt;br /&gt;
      else if (niveau_gris &amp;lt; 130)      // blanc&lt;br /&gt;
        {&lt;br /&gt;
          // corrige a droite&lt;br /&gt;
          advance(50, 100);&lt;br /&gt;
        }&lt;br /&gt;
      else      // noir (gris &amp;gt; 170)&lt;br /&gt;
        {&lt;br /&gt;
          // corrige a gauche&lt;br /&gt;
          advance(100, 50);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Conclusion ====&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutoriels]]&lt;/div&gt;</summary>
		<author><name>Ldoffe</name></author>	</entry>

	</feed>