Construire un suiveur de ligne : du simulateur à la piste
Un suiveur de ligne fonctionnel que vous comprenez de bout en bout — de la lecture de la ligne à la boucle PID qui le dirige — fait de pièces réglées d'abord en simulation.
Un suiveur de ligne est le meilleur premier robot : il capte, décide et bouge, et pourtant chaque partie est assez simple pour être entièrement comprise. Ce parcours le traite exactement comme cela — un chemin. Au lieu d’une liste de pièces et d’une photo de câblage à copier, vous débloquez un nœud à la fois, en apprenant le mécanisme derrière chaque étape avant de la construire.
Vous commencez par comprendre comment une rangée de capteurs infrarouges (IR) devient une seule erreur de direction, et comment une boucle proportionnel-intégral-dérivé (PID) transforme cette erreur en mouvement lisse. Cinq capteurs sont le bon compromis pour un premier montage : trois fonctionnent à basse vitesse mais donnent une position grossière, huit donnent une résolution plus fine à haute vitesse mais compliquent câblage et calibration. La moyenne pondérée qui réduit ces lectures à un seul nombre signé — négatif quand la ligne est à gauche, positif quand elle est à droite — est le seul signal que la boucle de direction verra jamais, et c’est pourquoi obtenir ce nombre juste compte plus que choisir une carte particulière.
Ce signal doit ensuite devenir deux vitesses de roues différentes. La conduite différentielle signifie que le robot dirige en tournant ses roues à des vitesses différentes, et l’arbre technologique vous mène du pilote moteur brut à la modulation de largeur d’impulsion (PWM) et à la cinématique qui transforme une correction unique en commandes gauche et droite. Vous verrez aussi où s’insère l’odométrie : compter le mouvement des roues dit quelle distance a été parcourue, et pourquoi cette estimation dérive sans référence externe — un thème qui revient dans chaque robot de labyrinthe.
Avant de dépenser quoi que ce soit ou de risquer un mauvais branchement, vous réglez le comportement dans le simulateur en navigateur, en dessinant une piste, en changeant nombre et espacement des capteurs, et en déplaçant les gains proportionnel, intégral et dérivé tout en observant erreur, temps au tour et temps sur piste. Le simulateur est un modèle pédagogique, pas du matériel : il suppose une piste binaire plate à fort contraste, une calibration idéale, aucune variation de lumière ambiante et une boucle parfaitement périodique sans patinage. Les gains trouvés ici se transfèrent comme un bon point de départ, mais vous calibrerez quand même la vraie barrette et règlerez à nouveau sur votre propre ruban.
Ensuite seulement vous câblez le vrai robot : sorties de réflectance vers des broches analogiques, PWM et direction vers le L298N (les broches logiques ne peuvent pas fournir le courant moteur — le double pont en H commute le vrai courant à la place), une alimentation moteur séparée sur son propre rail, et une masse commune reliant chaque module. Le nœud final est l’assemblage et l’itération sur un vrai parcours collé, où vous transférez les gains du simulateur et ajustez pour la surface, la tension batterie et le timing de boucle. La même structure revient plus tard dans le solveur de labyrinthe de lignes — qui ajoute une couche de décision au-dessus de ce suiveur — donc une fondation solide fait gagner du temps deux fois.
Suivez l’arbre technologique ci-dessous de haut en bas. Chaque nœud s’ouvre une fois ses prérequis terminés, et votre progression est enregistrée sur cet appareil, pour construire le robot sur un week-end sans perdre votre place.
Nomenclature
| Pièce | Qté | Coût approx. | Notes |
|---|---|---|---|
| Arduino Uno ou Nano | 1 | $5–8 | Un Nano est le meilleur choix ici : il expose A6 et A7, donc une barrette 8 canaux tient |
| Barrette de réflectance IR | 1 | $4–10 | 5 canaux pour apprendre, 8 si vous voulez la vitesse ensuite. Exigez une sortie analogique |
| L298N ou TB6612FNG | 1 | $2–4 | TB6612FNG à l’achat — il garde ~1,5 V que le L298N brûle en chaleur |
| Motoréducteur TT | 2 | $4 | Les jaunes. Les versions à codeurs coûtent 2 $ de plus et évitent une reconstruction |
| Châssis 2 roues motrices avec roues et roulette | 1 | $6–10 | Souvent vendu en kit avec les moteurs |
| Pack batterie | 1 | $3–8 | 6×AA NiMH, ou 2×18650 avec support protégé. Pas un bloc 9 V |
| Cordons, ruban, interrupteur | — | $5 | Ruban électrique noir mat 19 mm pour la piste |
Total : environ $30–45. L’amélioration la plus rentable de cette liste est des moteurs avec codeurs — pas pour ce projet, qui n’en a pas besoin, mais parce qu’un suiveur devient presque toujours un solveur de labyrinthe de lignes, et celui-là en a besoin.
Pour la piste : ruban noir mat sur sol clair mat. Le ruban brillant réfléchit comme du blanc au mauvais angle, et un sol brillant fait pareil, ce qui donne un robot qui marche sur une surface et pas une autre pour des raisons qui ressemblent à du logiciel.
Comment tout se relie
| De | Vers | Pourquoi c’est important |
|---|---|---|
Barrette VCC, GND |
Arduino 5 V, GND | Les émetteurs sont la consommation ici — 100–200 mA sur une barrette 8 canaux |
Barrette OUT1–8 |
A0–A7 | Analogique, un canal chacun. C’est pourquoi un Nano bat un Uno |
Pilote PWMA, PWMB |
D9, D3 | Broches à capacité PWM obligatoires |
| Broches de direction du pilote | D8, D7, D5, D4 | Broches numériques quelconques |
Pilote STBY (TB6612FNG seul) |
D12, au niveau HAUT | Laissé flottant, rien ne se passe du tout, en silence |
Batterie + |
Pilote VM / +12V |
Jamais la broche 5 V de l’Arduino |
Batterie − |
GND pilote, GND Arduino, GND barrette | Une masse commune, en étoile vers un point unique |
Deux pannes expliquent la plupart des problèmes de premier démarrage, et aucune ne produit de message d’erreur. Une masse commune manquante signifie que les signaux de direction n’ont pas de référence, donc rien ne bouge alors que tout semble bien câblé. Du courant moteur dans l’Arduino affaisse le rail 5 V, redémarre la carte, et se présente comme un crash logiciel.
Construisez par étapes
Ne câblez pas tout le robot pour le déboguer ensuite. Chaque étape ci-dessous a un test, et une étape qui ne passe pas son test se cachera dans la suivante.
| N° | Étape | Le test | Un succès ressemble à |
|---|---|---|---|
| 1 | Les moteurs tournent | Chaque roue en avant et arrière à 200 de rapport, sur cales | Les deux tournent dans les deux sens ; notez le rapport de démarrage de chacun |
| 2 | Zone morte mesurée | Rampe de rapport depuis 0 par pas de 5 | Vous avez deux nombres, et ils diffèrent — souvent de 5–10 |
| 3 | Ligne droite | Les deux roues en avant sur 2 m au sol | Moins de 10 cm de dérive ; sinon, compensez un moteur en logiciel |
| 4 | Capteurs lus | Affichez tous les canaux sur la ligne et sur le sol | Les deux lectures de chaque canal diffèrent de centaines de points |
| 5 | Calibration | Balayez la ligne pendant 3 s, puis affichez les valeurs normalisées | 0 sur le sol, près de 1000 sur la ligne, sur chaque canal |
| 6 | Position | Déplacez le robot à la main au-dessus de la ligne, affichez la position pondérée | Lisse et monotone — sans sauts quand la ligne franchit une frontière de capteur |
| 7 | P seul | Roulez avec le seul gain proportionnel, sans I ni D | Il suit une courbe douce, en oscillant un peu. L’oscillation est attendue ici |
| 8 | Ajoutez D | Montez le dérivé jusqu’à amortir l’oscillation | Suivi lisse sur droites et courbes douces |
| 9 | Piste complète | Boucle fermée avec un virage serré | Il boucle sans perdre la ligne |
| 10 | Reprise après perte | Soulevez le robot hors ligne en plein parcours | Il tourne comme il tournait déjà, plutôt que de filer droit |
L’étape 6 est celle qu’on saute et qu’il ne faut pas sauter. Si le signal de position saute quand la ligne passe entre deux capteurs, aucune boucle ne peut se régler — la discontinuité ressemble à une énorme erreur soudaine, et le robot fera des à-coups exactement là à chaque tour. Un saut là signifie soit une barrette non calibrée par canal, soit un seuil de canal qui l’exclut trop tôt.
À quoi ressemble un bon résultat
| Mesure | Montage débutant | Bien réglé |
|---|---|---|
| Vitesse en droites | 0,15–0,25 m/s | 0,4–0,6 m/s |
| Amplitude d’oscillation en droite | ±15 mm | Moins de ±5 mm |
| Virage le plus serré tenu | ~30 cm de rayon | ~15 cm de rayon |
| Cadence de boucle | 50 Hz | 200 Hz ou mieux |
| Tours avant de perdre la ligne | Quelques-uns | Indéfiniment, jusqu’à l’affaissement batterie |
La cadence de boucle mérite l’attention car elle plafonne silencieusement tout le reste. Une boucle à 50 Hz voit la ligne toutes les 20 ms, et à 0,5 m/s cela fait 10 mm parcourus entre décisions. Supprimer chaque delay() de la boucle et ne lire que les capteurs utilisés fait typiquement passer un premier montage de 50 Hz à plusieurs centaines, et le suivi s’améliore sans toucher un gain.
Dépannage
| Symptôme | Cause probable | Correctif |
|---|---|---|
| Rien ne bouge du tout | Pas de masse commune, ou STBY bas |
Reliez toutes les masses ; mettez STBY au HAUT |
| La carte redémarre au démarrage moteur | Courant moteur dans l’Arduino | Alimentation moteur séparée ; seule la masse est partagée |
| Fonce droit devant la ligne | Barrette non calibrée, ou trop haute | Recalibrez sur cette surface ; réglez la garde à 3–8 mm |
| Suit, mais oscille fort | P trop élevé, ou D trop faible | Divisez P par deux, puis montez D |
| Oscille de plus en plus vite | P beaucoup trop élevé | Réduisez jusqu’à stabiliser, puis réglez depuis là |
| Dérive en droites | Moteurs dissemblables | Compensez en logiciel, puis revérifiez à votre vitesse |
| Ne dévie qu’à basse vitesse | Deux seuils de frottement différents | Mesurez la zone morte de chaque moteur et compensez séparément |
| Perd la ligne en virages serrés | Trop vite, ou barrette trop près des roues | Ralentissez ; avancez la barrette pour plus d’anticipation |
| S’échappe quand il perd la ligne | Erreur mise à 0 sur perte | Gardez la dernière erreur — zéro signifie « centré » |
| Marche, puis se dégrade en parcours | Batterie qui s’affaisse, gains devenus inadaptés | Attendu ; bouclez la vitesse, ou acceptez un parcours plus court |
| Échoue près d’une fenêtre | Infrarouge ambiant | Soustraction émetteur éteint, ou capotez la barrette |
Pour aller plus loin
Le suiveur de ligne est délibérément une fondation, et trois directions s’appuient directement dessus.
Ajoutez la détection de jonctions et il devient un solveur de labyrinthe de lignes — la même boucle PID dessous, avec une fine couche de décision dessus qui classe les branches et mémorise l’itinéraire. C’est le meilleur projet suivant, car il réutilise tout ici et ajoute une idée vraiment nouvelle.
Ajoutez des codeurs et vous pouvez tenir une vitesse commandée plutôt qu’un rapport commandé, ce qui supprime entièrement le problème « ça se dégrade quand la batterie se vide » et stabilise le réglage sur tout un parcours.
Allez plus vite, ce qui est plus dur qu’il n’y paraît et enseigne le plus. La vitesse expose chaque approximation : la cadence de boucle devient la limite, la barrette doit être plus en avant pour l’anticipation, les virages doivent ralentir avant d’arriver plutôt qu’après, et les pneus commencent à glisser. Ce dernier est le mur — voir patinage et adhérence pour sa place.
Parcours du projet
Le parcours de construction
Suivez l'arbre technologique, des pièces jusqu'à un robot qui fonctionne. Chaque nœud se débloque quand ses prérequis sont terminés, et votre progression est enregistrée sur cet appareil.
0 / 15 terminés
Composants
- ContrôleurArduino UnoLa carte 8 bits indulgente par laquelle la plupart découvrent la robotique.
- CapteurIR Reflectance Sensor ArrayUne rangée d'yeux infrarouges qui indique au robot où se trouve la ligne.
- PiloteL298N Motor DriverLe double pont en H qui convertit de faibles broches logiques en puissance moteur.
- ActionneurDC Gearmotor (TT Motor)Le moteur à boîte jaune qui transforme un châssis nu en voiture robot mobile.
- Châssis2WD Robot ChassisLe plateau sur lequel se fixent deux moteurs, une roulette libre et votre électronique.
- AlimentationRobot Battery & Power PackLa différence entre un robot qui roule et un qui redémarre sans cesse.
Tutoriels de ce parcours
- Débutant · 20 min de lectureConstruire un suiveur de ligne : capteurs et pilotage PIDDes capteurs de réflectance IR à l'erreur pondérée et au pilotage PID fluide — comment marche vraiment un suiveur de ligne.
- Débutant · 20 min de lectureLire une barrette IR de réflectance pour le suivi de ligneTransformez une rangée de capteurs IR en une position de ligne unique et lisse sur laquelle braquer.
- Débutant · 18 min de lectureCommander des moteurs CC avec PWM et pont en HCâblez et commandez un moteur CC à balais en sécurité avec PWM, un pont en H et des limites de courant réalistes.
- Intermédiaire · 20 min de lectureOdométrie différentielle depuis les encodeurs de rouesIntégrez le mouvement des roues gauche et droite en pose d'un robot mobile, puis identifiez et étalonnez la dérive.
- Débutant · 18 min de lectureComment régler un contrôleur PID : guide pratiqueUn ordre concret pour régler les gains P, I et D sans tâtonner — et comment essayer chaque étape en direct.
Entraînez-vous avant de câbler
Réglez-le dans le simulateur interactif
Le parcours de construction passe par un labo dans le navigateur. Obtenez ici le bon comportement, puis reportez vos réglages sur le vrai robot.
Questions fréquentes
Faut-il acheter les pièces avant de commencer ce projet ?
Non. Toute la moitié perception-et-commande du projet tourne dans le simulateur en navigateur, donc vous pouvez comprendre comment un suiveur lit la ligne et régler ses gains PID avant tout achat. Seules les étapes finales — câblage et assemblage — exigent le vrai Arduino, la barrette IR et le pilote moteur.
Combien de temps faut-il pour construire un robot suiveur de ligne ?
Avec les pièces, un premier suiveur fonctionnel est un projet de week-end : un après-midi pour apprendre la perception et la commande et régler en simulateur, puis quelques heures pour câbler l'Arduino, la barrette IR et le pilote moteur et itérer sur une piste collée. Le réglage fait en simulation se transfère directement, ce qui supprime l'essentiel des essais-erreurs.
Quelle est la partie la plus difficile d'un suiveur de ligne ?
Presque toujours la boucle de commande, pas le câblage. Suivre des courbes douces sans oscillation demande de régler les gains PID pour vos moteurs, votre hauteur de capteurs et votre vitesse. C'est exactement pourquoi ce parcours vous fait régler d'abord en simulateur — les gains sont proches avant que le robot touche le sol.
Pourquoi mon suiveur de ligne oscille-t-il autour de la ligne ?
L'oscillation vient généralement d'un gain proportionnel trop élevé, d'un amortissement dérivé trop faible, ou d'une vitesse dépassant ce que la cadence capteur supporte. Réduisez d'abord la vitesse de base, puis baissez Kp d'environ 20 % et ajoutez un peu de Kd. Sur le matériel, un long delay() dans la boucle ajoute un temps mort qui rend le terme dérivé inefficace quel que soit son réglage — gardez un intervalle de commande fixe.
Combien de capteurs IR faut-il pour un suiveur de ligne ?
Cinq est un bon point de départ : assez pour calculer une position pondérée lisse et voir où la ligne tourne, tout en gardant câblage et calcul simples à inspecter. Trois capteurs suffisent pour une piste d'essai lente et large ; les robots de compétition en utilisent souvent huit pour une résolution plus fine à haute vitesse, mais chaque capteur ajouté est une calibration et un fil de plus à soigner.
Comment calibrer la barrette de réflectance IR ?
Avant un parcours, balayez lentement la barrette sur le ruban noir et le support blanc et enregistrez le minimum et le maximum de chaque capteur, puis normalisez les lectures live sur cette plage. La calibration compte parce que hauteur des capteurs, réflectivité de la surface et lumière ambiante déplacent les valeurs brutes, et une barrette non calibrée biaise la position pondérée même quand le robot est centré.