Pourquoi votre robot suiveur de ligne échoue sous l'éclairage intense d'un gymnase (et comment y remédier)

L'éclairage des salles de compétition sature les capteurs de ligne infrarouges non blindés en inondant les phototransistors d'IR ambiant. Corrigez le tir grâce à des caches physiques et un étalonnage dynamique au démarrage.
Votre robot suiveur de ligne fonctionnait parfaitement sur le sol de la classe, mais dès qu'il a été posé sur le tapis de compétition dans un gymnase ou une salle de sport scolaire, il s'est mis à tourner en rond ou est sorti tout droit de la piste. La raison est simple : l'éclairage des grandes salles et les sols vernis inondent les capteurs optiques de votre robot de lumière infrarouge (IR) ambiante, aveuglant les phototransistors et effaçant le contraste entre l'adhésif noir et le fond blanc.
Les suiveurs de ligne ne voient pas les couleurs ; ils mesurent la lumière réfléchie. Lorsque l'environnement ambiant submerge la propre source lumineuse du capteur, le matériel défaille. Heureusement, vous pouvez éliminer complètement ce mode de défaillance grâce à deux ajustements : un blindage optique mécanique et un étalonnage dynamique logiciel.
La physique : pourquoi l'éclairage des salles aveugle les phototransistors
La plupart des modules standards de suivi de ligne (tels que le TCRT5000 ou les cartes de capteurs de base à deux canaux) associent une diode électroluminescente infrarouge (émetteur) à un phototransistor infrarouge (récepteur). L'émetteur projette de la lumière IR sur le tapis. Les surfaces blanches réfléchissent la majeure partie de l'IR vers le phototransistor, diminuant sa résistance et générant une lecture haute (ou basse, selon la configuration en pull-up). Le ruban adhésif noir absorbe l'IR, ne renvoyant que très peu de lumière.
Cette conception repose sur une hypothèse implicite : la seule lumière infrarouge atteignant le récepteur est celle émise par le robot lui-même. Dans une salle de classe classique équipée de pavés LED diffusants ou de tubes fluorescents standards, cette hypothèse tient relativement bien. Dans un gymnase, elle s'effondre pour trois raisons :
- Luminaires commerciaux de forte puissance : Les gymnases utilisent souvent des projecteurs industriels aux halogénures métalliques, des projecteurs halogènes de forte puissance ou des rampes de LED industrielles à haut rendement. Nombre d'entre eux émettent d'importantes radiations infrarouges en plus de la lumière visible.
- Plafonds hauts et angle d'incidence : Les projecteurs pour grande hauteur projettent des faisceaux larges et puissants sous de multiples angles, pénétrant sous les châssis surbaissés des robots depuis des directions que l'éclairage de votre classe n'atteignait jamais.
- Réflectivité du sol : Les tapis de compétition sont souvent posés sur du parquet vitrifié ou des sols de gymnase synthétiques très brillants, créant des réflexions spéculaires qui renvoient l'IR ambiant directement vers votre barrette de capteurs.
Lorsqu'un niveau élevé d'IR ambiant frappe le phototransistor, le capteur sature. Le récepteur est entièrement saturé par la pièce elle-même. En conséquence, la valeur mesurée au-dessus de l'adhésif noir devient indiscernable de celle au-dessus du vinyle blanc, et votre logique de commande ne peut plus détecter la ligne.
Étape 1 : Corrections mécaniques (blindage et garde au sol)
Avant d'écrire la moindre ligne de code, résolvez le problème optique de manière physique. Le logiciel ne peut pas extraire un signal si l'étage d'entrée analogique est totalement saturé.
Ajouter un cache opaque
La solution matérielle la plus efficace consiste à installer un capot imprimé en 3D ou en carton noir enveloppant votre barrette de capteurs. Le cache doit descendre le plus près possible du sol sans accrocher les raccords de la piste — généralement entre 2 mm et 3 mm de garde au sol. L'intérieur du cache doit être noir mat (peinture mate ou ruban non réfléchissant) pour éviter les réflexions internes.
Ajuster la hauteur des capteurs
Les phototransistors basiques ont une distance focale optimale, généralement située entre 2 mm et 6 mm de la surface. Si vos capteurs sont placés à 15 mm ou 20 mm au-dessus du tapis, le signal renvoyé par l'émetteur suit la loi en carré inverse et chute considérablement, laissant la lumière ambiante dominer. Abaissez le support de vos capteurs afin que les diodes se situent environ entre 3 mm et 5 mm au-dessus de la surface.
Étape 2 : Corrections logicielles (étalonnage dynamique vs seuils codés en dur)
L'erreur de programmation la plus fréquente dans les compétitions de robotique scolaire consiste à coder les seuils des capteurs en dur. Un élève teste le robot, constate que le blanc renvoie 150 sur une broche analogique et le noir 850, puis écrit :
if (analogRead(LEFT_SENSOR) > 500) { // Follow line }Dans le gymnase, la lumière ambiante fait passer la lecture du blanc à 600 et celle du noir à 900. Le seuil codé en dur à 500 classe désormais tout le tapis comme une ligne, et le robot échoue instantanément.
Mettre en place un étalonnage dynamique au démarrage
Ne codez jamais de seuils analogiques en dur. Écrivez plutôt une routine d'étalonnage qui s'exécute durant les trois à cinq premières secondes après la mise sous tension ou l'appui sur un bouton de démarrage. Faites tourner le robot sur lui-même au-dessus de la ligne en échantillonnant continuellement tous les capteurs afin d'enregistrer les valeurs minimales et maximales réelles sur place.
int sensorMin = 1023;int sensorMax = 0;int threshold = 500;void calibrateSensors() { unsigned long startTime = millis(); // Spin in place for 3 seconds across the line setMotors(150, -150); while (millis() - startTime < 3000) { int val = analogRead(A0); if (val < sensorMin) sensorMin = val; if (val > sensorMax) sensorMax = val; } setMotors(0, 0); // Calculate midpoint threshold for current room conditions threshold = (sensorMin + sensorMax) / 2;}Cette routine recalcule automatiquement le seuil de décision pour s'adapter à l'éclairage ambiant et à la réflectivité du tapis de la salle où vous concourez le jour J.
Étape 3 : Aller au-delà des seuils bruts
Pour une plus grande fiabilité lors des compétitions régionales et nationales, envisagez d'améliorer la logique de détection et le matériel :
- Détection différentielle : Au lieu de vérifier des seuils absolus (
sensor > threshold), évaluez la différence entre capteurs adjacents (error = leftSensor - rightSensor). La lumière ambiante ayant tendance à affecter les capteurs adjacents de manière égale, le signal d'erreur différentiel annule le bruit IR ambiant de mode commun. - Modulation active : Les capteurs perfectionnés font pulser leurs émetteurs IR à une fréquence précise (comme 38 kHz) et utilisent un filtre passe-bande sur le récepteur. Le capteur ne mesure que la lumière clignotant exactement à cette fréquence, ignorant totalement la lumière ambiante statique du soleil et l'éclairage du gymnase. Si vous concevez votre propre matériel ou achetez des kits modulaires de compétition dans notre robotics hardware store, opter pour des barrettes IR modulées ou des barrettes de réflectance dédiées (comme la série Pololu QTR) élimine la sensibilité ambiante directement au niveau du silicium.
- Exercices de préparation aux conditions de compétition : Intégrez des variations d'éclairage dans vos séances d'essais. Dirigez la lampe torche d'un smartphone ou un projecteur d'atelier puissant directement sur votre robot lors des essais afin de vérifier la résistance de votre cache et de votre code d'étalonnage avant le jour de la compétition.
Les robots n'échouent pas en compétition par manque de compétences en programmation des élèves, mais parce que les tests en laboratoire prennent rarement en compte le bruit environnemental du monde réel. Pour obtenir des guides structurés d'encadrement pour la compétition et des supports pédagogiques en robotique, découvrez nos ressources pour mentors au sein de l'Sheen Robotics Academy.



