Nous supposons que le robot possède (au moins) deux capteurs de lumière placés de part et d’autre de la ligne à suivre. L’idée de l’algorithme est la suivante : quand le robot suit correctement la ligne, aucun de ses capteurs ne voit la ligne (Figure a).

Si le capteur droit voit la ligne, c’est que le robot s’est décalé vers la gauche, et donc qu’il doit tourner à droite (Figure b). De la même manière, si le capteur gauche voit la ligne, le robot doit tourner à gauche.
Enfin, les croisements sont signalés par une ligne perpendiculaire à la piste à suivre. Si les deux capteurs voient la ligne simultanément, c’est donc qu’il y a un croisement bientôt (Figure c).

robot
Figure a. Le robot et ses deux capteurs.
robot-voit-droite
Figure b. Le capteur droit voit la ligne : le robot doit tourner vers la droite.
robot-croisement
Figure c. Les deux capteurs voient la ligne : on arrive à un croisement.

L’algorithme est le suivant :

[code] Repeat endlessly if capteur gauche voit la ligne then tourne a gauche, i.e. ralentit la roue gauche et accelere la roue droite; end else if capteur droit voit la ligne then tourne a droite, i.e. ralentit la roue droite et accelere la roue gauche; end else if les deux capteurs voient la ligne then traitement particulier; end // si aucun capteur ne voit la ligne, on ne tourne pas end [/code]