Un robot suiveur de ligne est un type de robot conçu pour suivre une ligne tracée sur le sol. Cette ligne peut être noire, blanche, ou d'une autre couleur contrastante, et elle est généralement utilisée dans des environnements contrôlés, comme sur un parcours de compétition ou dans des applications industrielles.
Le principe de fonctionnement repose sur des capteurs qui détectent la ligne et permettent au robot d'ajuster ses mouvements pour la suivre. Les capteurs les plus courants sont des capteurs de réflexion infrarouge (IR), qui détectent la différence entre la couleur de la ligne (par exemple, noire) et la couleur du fond (par exemple, blanche ou claire). Lorsque le robot s'éloigne de la ligne, les capteurs envoient des informations au contrôleur qui ajuste la direction des roues pour recentrer le robot sur la ligne.
Les robots suiveurs de ligne sont souvent utilisés pour des démonstrations de robotique, des compétitions (comme la RoboCup ou les défis FIRST) et des applications industrielles où des robots doivent se déplacer le long de parcours prédéfinis.
Un robot suiveur de ligne utilisant une carte ESP32, un module L298N, deux capteurs KY-032, un châssis à deux roues, un adaptateur de tension (3,3V/5V) et une batterie 9V peut être construit de manière relativement simple.
1- Détection de la ligne :
Les capteurs KY-032 détectent si le robot est sur la ligne (noire ou blanche selon le contraste avec le fond).
Le signal LOW ou HIGH sur OUT indique la présence ou l'absence de la ligne.
Traitement du signal :
L’ESP32 lit les signaux des capteurs KY-032.
En fonction des signaux (ligne détectée par un seul capteur, les deux, ou aucun), l’ESP32 détermine l’action à effectuer (avancer, tourner à gauche ou à droite).
Commande des moteurs :
L'ESP32 envoie des signaux aux broches IN1/IN2 et IN3/IN4 du L298N pour contrôler la direction des moteurs.
Les broches PWM contrôlent la vitesse des moteurs pour des mouvements fluides.
Carte ESP32 :
Carte microcontrôleur qui sert de cerveau du robot. Elle traite les signaux des capteurs et commande les moteurs.
Module L298N :
Module de commande de moteur qui permet de contrôler les deux moteurs DC du châssis en régulant leur vitesse et leur direction.
2 Capteurs KY-032 (Capteur suiveur de ligne) :
Capteur infrarouge capable de détecter la couleur du sol (noir ou blanc, par exemple) pour suivre une ligne.
Châssis à deux roues :
Structure de base du robot, équipée de deux moteurs DC et de deux roues.
Adaptateur 3,3V/5V :
Convertit la tension de 9V de la batterie à un niveau adapté à l'ESP32 et au module L298N.
Batterie 9V :
Source d’alimentation pour le robot.
Breadboard (Plaque d'essai) :
Une breadboard est utile pour créer un circuit temporaire et connecter facilement les composants entre eux.
Fils de connexion :
Des fils de connexion sont nécessaires pour relier les différents composants ensemble.
a) ESP32 et L298N
Connectez les broches IN1, IN2, IN3, IN4 du L298N aux GPIO (D4, D5, D18, D19)de l’ESP32 pour contrôler les directions des moteurs.
Reliez les broches ENA et ENB du L298N aux broches D32 et D33 de l’ESP32 pour le contrôle de vitesse.
Connectez l'alimentation du L298N (broches VCC et GND) à l'adaptateur de tension.
b) KY-032 et ESP32
Chaque capteur KY-032 dispose de 4 broches : VCC, GND, OUT et EN.
Connectez OUT des capteurs aux GPIO de l’ESP32 pour lire les données de détection.
Alimentez les capteurs KY-032 à partir de l’adaptateur 5V/3,3V.
c) Alimentation
La batterie 9V alimente l’ensemble via l’adaptateur de tension.
Assurez-vous que les tensions délivrées au L298N (5V), aux capteurs KY-032 (3,3V ou 5V selon les besoins) et à l’ESP32 (3,3V) soient correctes.
Voici un exemple de programme en MicroPython pour un robot suiveur de ligne utilisant une carte ESP32, un module L298N, deux capteurs KY-032 et un châssis à deux roues. Ce programme lit les signaux des capteurs et contrôle les moteurs via le L298N.
On doit importer la bibliothèque DCMotor.py pour controler les deux moteurs.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
from machine import Pin, ADC , PWM from time import sleep from DCMotor import DCMotor line1 = ADC(Pin(34)) line2 = ADC(Pin(35)) frequency = 15000 pin1 = Pin(22, Pin.OUT) pin2 = Pin(21, Pin.OUT) pin3 = Pin(19, Pin.OUT) pin4 = Pin(18, Pin.OUT) enable = PWM(Pin(23), frequency) enable1 = PWM(Pin(5), frequency) dc_motor = DCMotor(pin1, pin2, enable) dc_motor = DCMotor(pin1, pin2, enable, 350, 1023) dc_motor1 = DCMotor(pin3, pin4, enable1) dc_motor1 = DCMotor(pin3, pin4, enable1, 350, 1023) while True: line1_value = line1.read() line2_value = line2.read() print('motor1=',line1_value) print('motor2=',line2_value) if (line1_value < 1000) : dc_motor.forward(10) # la voiture tourne a gauche dc_motor1.forward(90) if (line2_value < 1000) : dc_motor1.forward(10) # la voiture tourne a gauche dc_motor.forward(90) if (line1_value > 1000) and (line2_value > 1000) : dc_motor.forward(75) dc_motor1.forward(75) sleep(0.1) dc_motor.forward(10) dc_motor1.forward(10) sleep(0.2) if (line1_value < 1000) and (line2_value < 1000) : dc_motor.forward(10) dc_motor1.forward(10) |
Explication du code :
Détection de la ligne :
Les capteurs KY-032 renvoient 0
(LOW) lorsqu'ils détectent une ligne noire et 1
(HIGH) lorsqu'ils détectent une surface blanche.
Contrôle des moteurs :
Les broches IN1, IN2, IN3 et IN4 du L298N contrôlent la direction des moteurs.
Les broches ENA et ENB, avec des signaux PWM, contrôlent la vitesse des moteurs.
Logique de suivi :
Si les deux capteurs détectent la ligne, le robot avance.
Si un seul capteur détecte la ligne, le robot tourne dans la direction appropriée.
Si aucun capteur ne détecte la ligne, le robot s'arrête.
La robotique éducative joue un rôle important dans l'éducation des enfants et des jeunes en les aidant à acquérir des compétences en science et technologie.
Dans ce cadre notre site web représente une excellente ressource pour les parents, les enseignants et les enfants qui souhaitent découvrir la robotique.
Zaouiet Kontech-Jemmel-Monastir-Tunisie
+216 92 886 231
medaliprof@gmail.com
Site robotique réalisé par Mohamed Ali-Prof Info