L’algorithme a été développé en tenant compte des règles suivantes:
• s’il y a un chemin avant à n’importe quelle intersection, le robot doit emprunter ce chemin, et s’il n’existe pas, le robot est libre de sélectionner n’importe quel chemin.
• s’il y a discontinuité dans la ligne, le robot doit avancer jusqu’à ce qu’il détecte la ligne.
• il n’y aura pas d’impasse dans la piste.

Voici trois étapes qui sont répétées à mesure que le robot se déplace sur la ligne.

Étape 1
Les lectures du capteur sont prises et stockées dans un octet, où chaque bit représente l’état d’un capteur particulier. Si un bit vaut 1, le capteur correspondant est au-dessus de la ligne, et si le bit est 0, il n’est pas sur la ligne. Les exemples suivants le clarifieront.

Si la valeur de l’octet est 00011000, sont seulement les deux capteurs au milieu au-dessus de la ligne et si la valeur de l’octet est 10000000, seul le capteur de gauche est au-dessus de la ligne.

Étape 2
Un décompte du nombre de capteurs qui sont au-dessus de la ligne est pris. Le nombre peut être n’importe quelle valeur comprise entre 0 et 8.

Étape 3
Pour le nombre obtenu, la lecture du capteur est comparée à un ensemble de valeurs. S’il y a correspondance de comparaison, la vitesse et la direction des deux moteurs sont ajustées en conséquence.

Voici quelques-unes des valeurs avec lesquelles la lecture du capteur est comparée. À côté de chaque valeur se trouve l’action à effectuer.

0000000 aucune ligne enregistrée. Continuez l’action précédente.

10000000 – tourner brusquement à gauche.
00000001 – tourner brusquement à droite.

11000000 – Tournez à gauche
01100000 – Tournez à gauche
00110000 – Tournez à gauche
00011000 – avancez tout droit à pleine vitesse
00001100 – Tournez à droite
00000110 – Tournez à droite
00000011 – Tournez à droite

11100000 – Tournez à gauche
01110000 – Tournez à gauche
00111000 – Tournez à gauche
00011100 – Tournez à droite
00001110 – Tournez à droite
00000111 – Tournez à droite
10011000 – virage à angle aigu vers la gauche
00011001 – virage à angle aigu vers la droite

11110000 – virage à 90 degrés vers la gauche
00001111 – tourner à 90 degrés vers la droite
11001100 ou 11011000 – virage à angle aigu vers la gauche
00110011 ou 00011011 – virage à angle aigu vers la droite
11111000 – virage à 90 degrés vers la gauche
00011111 – virage à 90 degrés vers la droite
11011100 – virage à angle aigu vers la gauche
00111011 – virage à angle aigu vers la droite

11111100 – virage à 90 degrés vers la gauche
00111111 – virage à 90 degrés vers la droite

11111110 ou 01111111 ou 11111111 – tourner à gauche ou à droite

Dans l’étape suivante, nous verrons comment le robot réagit lorsqu’il détecte une intersection ou un virage serré.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *