Dans ce tutoriel nous allons voir comment marche un suiveur de ligne quelles capteurs utiliser et comment le réaliser.
Un Suiveur de ligne c’est quoi ?
Un robot suiveur de ligne est un robot qui a pour but de suivre une ligne (comme son nom l’indique), ce type de robot est utilisé dans les industries et sur les véhicules sans chauffeur qui doivent suivre un chemin bien défini.
Comment marche un suiveur de ligne ?
Le robot suit une ligne noir sur un arrière plan blanc tracé au sol qui représente le chemin a suivre, et pour faire cela le robot a besoin de deux capteurs infrarouges qui distingues la ligne noir de l’arrière plan blanc, Tant que les deux capteurs ne détectent pas la ligne, le robot avance (situation 0). Lorsqu’un des deux capteurs détecte la ligne, le robot doit tourner dans la direction de ce dernier pour se mettre au milieu de la ligne (situation 1 et 2).
Matériel pour fabriquer un robot suiveur de ligne Arduino
- Arduino Uno ( Disponible ici)
- Chassis Voiture (2 roues) ( Disponible ici)
- Module Infrarouge ( Disponible ici)
- Des Jumpers ( Disponible ici)
- Shield Moteur ( Disponible ici) ou vous pouvez utiliser un L293D ( Tutoriel Disponible ici)
- Support 4 Piles AA ( Disponible ici)
Montage du suiveur de ligne Arduino
- On monte le shield moteur sur l’Arduino :
- On branche les deux moteurs et l’alimentation au shield moteur.
Pour l’alimentation j’ai mis en série 2 supports de 4 piles chacun ce qui me fait 8 Piles AA en série
- On branche le module infrarouge avec le shield Moteur
***************************************
*Module Infrarouge | Shield Arduino *
* VCC | 3.3V *
* Gnd | Gnd *
* In1 | Pin 4 *
* In2 | Pin 5 *
***************************************
- On branche les deux capteurs infrarouges avec le module infrarouge :
- On monte le tout dans le châssis
Code du suiveur de ligne Arduino
Il faut savoir que quand le capteur détecte la ligne il va envoyer 1 et quand il ne la détecte pas il enverra 0 :
[pastacode « c » manual= »int%20IN1%20%3D%204%3B%20%2F%2FPin%20pour%20Le%20Capteur%20Gauche%0Aint%20IN4%20%3D%205%3B%20%2F%2FPin%20pour%20Le%20Capteur%20Droite%0Aint%20GA%3D12%2CGB%3D3%2CDA%3D13%2CDB%3D11%3B%20%2F%2FPin%20pour%20Deux%20moteurs%20(GA%20et%20GB%20pour%20le%20moteur%20Gauche%2C%20DA%20et%20DB%20pour%20le%20moteur%20de%20droite)%0A%0A%0A%0Avoid%20setup()%0A%0A%7B%0A%20%20Serial.begin(9550)%3B%0A%20%20pinMode(IN1%2CINPUT)%3B%0A%20%20pinMode(IN4%2CINPUT)%3B%20%20%0A%20%20pinMode(DA%2COUTPUT)%3B%0A%20%20pinMode(DB%2COUTPUT)%3B%0A%20%20pinMode(GA%2COUTPUT)%3B%0A%20%20pinMode(GB%2COUTPUT)%3B%0A%7D%0A%2F%2Fon%20Cr%C3%A9e%20Les%20Fonctions%0Avoid%20d()%20%2F%2FFonction%20qui%20permet%20au%20robot%20de%20tourner%20a%20droite%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20digitalWrite(DA%2CLOW)%3B%0A%20%20%20%20%20%20analogWrite(DB%2C55)%3B%0A%20%20%20%20%20%20analogWrite(GA%2C55)%3B%0A%20%20%20%20%20%20digitalWrite(GB%2CLOW)%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0Avoid%20g()%20%2F%2FFonction%20qui%20permet%20au%20robot%20de%20tourner%20a%20gauche%0A%7B%0A%20%20%20%20%20%20analogWrite(DA%2C55)%3B%0A%20%20%20%20%20%20digitalWrite(DB%2CLOW)%3B%0A%20%20%20%20%20%20digitalWrite(GA%2CLOW)%3B%0A%20%20%20%20%20%20analogWrite(GB%2C55)%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0Avoid%20av()%20%2F%2FFonction%20qui%20permet%20au%20robot%20de%20continuer%20tout%20droit%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20digitalWrite(DA%2CLOW)%3B%0A%20%20%20%20%20%20analogWrite(DB%2C55)%3B%0A%20%20%20%20%20%20digitalWrite(GA%2CLOW)%3B%0A%20%20%20%20%20%20analogWrite(GB%2C55)%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0Avoid%20loop()%0A%0A%7B%0A%20%20int%20in1_val%20%3D%20digitalRead(IN1)%3B%0A%20%20int%20in4_val%20%3D%20digitalRead(IN4)%3B%0A%0A%0Aif%20((in1_val)%20%26%26%20( ! in4_val))%20%2F%2FS’il%20y%20a%20du%20noir%20%C3%A0%20gauche%20et%20du%20blanc%20%C3%A0%20droite%2C%20tourner%20%C3%A0%20gauche%0A%20%20%20%20%7B%0A%20%20%20%20%20%20Serial.println(%22Tourner%20%C3%A0%20gauche%22)%3B%0A%20%20%20%20%20%20g()%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20(( ! in1_val)%20%26%26%20(in4_val))%20%2F%2FS’il%20y%20a%20du%20blanc%20%C3%A0%20gauche%20et%20du%20noir%20%C3%A0%20droite%2C%20tourner%20%C3%A0%20droite%0A%20%20%20%20%7B%0A%20%20%20%20%20%20Serial.println(%22Tourner%20%C3%A0%20droite%22)%3B%0A%20%20%20%20%20%20d()%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20%2F%2FSi%20les%20conditions%20plus%20haut%20ne%20s’appliquent%20pas%2C%20continuer%20tout%20droit%0A%20%20%20%20%7B%0A%20%20%20%20%20%20Serial.println(%22Continuer%20tout%20droit%22)%3B%0A%20%20%20%20%20%20av()%3B%0A%20%20%20%20%7D%0A%7D » message= » » highlight= » » provider= »manual »/]