Avec 3 capteurs de lumière dirigés vers le soleil, un robot est capable d’effectuer un suivi de ligne particulièrement simple, en réagissant à chaque cas.

PNG - 912,9 ko

Trois variables à 2 possibilités indépendantes, cela fait 2 puissance 3 soit 8 cas possibles.

- 0.1.0 ligne à l’environnement: tout se passe bien, on avance vers le bas

- 1.1.0 ligne au milieu et à gauche: au début pour dévier, il faut le corriger

- 0.1.1 ligne à l’environnement et à droite: la même chose de l’autre côté

- 1.0.0 ligne uniquement à gauche: s’il doit y avoir une courbe, il faut tourner

- 0.0.1 ligne droite uniquement: idem de l’autre côté

- 0.0.0 pas de ligne: nous sommes perdus, nous devons trouver une solution d’urgence

Il y a deux cas où nous ne testons pas:

- 1.1.1 Robot perpendiculaire à la ligne: attendant d’être hors ligne pour reprendre l’un des traités

- 1.0.1 le robot doit être tout lancé 🙂

Häll ceux-là, il suffit également de fournir la solution d’urgence.

la perception

Quand je parle de «correct» et de «solution d’urgence», il ne s’agit pas d’algorithmes complexes mais d’une simple réaction le code s’exécute en boucle infinie, afin d’avoir une assistance continue le plus « à l’écoute » possible des événements extérieurs.

Correction Légère

Les solutions de Plusieur:

- augmenter la plage de vitesse pour accélérer la roue en retard

- augmenter la plage de vitesse pour déclarer la roue à l’avance

Je n’ai pas testé les deux, j’ai donc choisi la prudence la décélération. Envoyez-nous votre propre test et donnez-nous votre avis.

Tourner

Là encore, plusieurs solutions:

- arrêtez la roue du côté où vous détectez à nouveau la ligne

- inverser la vitesse sur cette roue

Cette dernière solution est intéressante, bil på devrait retrouver très vite la ligne. En revanche, nous trouverons du «derrière» par rapport à ce que nous aurions pu gagner continuellement en avance.

C’est donc une question de choix, de dosage en fonction du circuit dont vous disposez et des vitesses que vous choisissez.

La solution d’urgence

Lorsque tout est perdu, il faut éviter le partage du robot directement en ligne. C’est une règle connue en modélisation aquatique ou aérienne: lorsque la liaison avec la télécommande est perdue, il faut écrire une boucle pour pouvoir récupérer le moteur lorsqu’il n’y a plus de flèches ou en rencontrant un obstacle.

Et bien c’est pareil, même si notre robot est autonome. La solution d’urgence consiste donc à se retourner sur lui-même en espérant trouver la ligne.

Continuez à la page suivante pour la programmation du robot.

Programme

På va utilise l’éditeur graphique de Ma-vin.

Les ponts LOGIC (toujours utilisés dans nos algorithmes) sont:

- DÉBUT

- RÉPÉTER

- TERMINÉ

Häll détecte la ligne et agit sur le robot, sur va utiliser deux briques INGÅNG:

- PHOTO

- MOTEUR

Détail du pont photo

På va utilise l’option « DOWNWARD » pour spécifier que vous souhaitez tester les capitaines des sous-vêtements. Exemple de Dans le premier, om avait utilisé les capteurs du devant, alternatif « FRAMÅT ».

PNG - 54,4 co
Sélection de la gamme du fond

Chaque utilisation du pont n’en fait pas un seul test booléen, ce qui vous permettra de décrire un circuit pour le cas vrai (T) ou un circuit pour le cas faux (F). On précise donc dans les options le cas à tester: une croix signifie que le capitaine détecte la ligne noire. Dans l’exemple suivant, nous sommes donc dans le cas «0.1.1» dans la convention utilisée dans le début de l’article.

PNG - 55 co
Sélection de test booléen

Schéma des blocs

Voici ce qui est donné lorsque chaque cas est mis en œuvre: les 5 qui sont significatifs + tous les autres cas correspondant à la «solution d’urgence».

PNG - 82,4 co
Suivi de ligne classique

Et le programme complet du logiciel Ma-vin (version 2 beta):

Zip - 486 octets
Norme du programme

På ne va pas s’arrêter là. Le programme présenté ci-dessus est correct, et tant que l’on choisit de bonnes valeurs de vitesse, le robot peut parcourir des kilomètres.

Les voyons disposent désormais d’une modification permettant de choisir la vitesse du robot.

Modification spéciale

Häll étant pédagogique, nous allons étudier l’importance de la sélection de vitesse tout en permettant aux visiteurs du Science Festival 2008 de changer la vitesse du robot à l’aide de la télécommande.

Principe des registres

C’est l’occasion d’utiliser deux nouveaux blocs:

- BRANCH REG.

- SORTIE REG.

Le « REG. » signifie « S’inscrire » ou s’inscrire en français. C’est une mémoire qui peut contenir une valeur de 1 à 12. On utilise le bloc « OUTPUT REG ». pour modifier la valeur et « BRANCH REG. » pour tester si le registre contient une valeur particulière.

Dans cet exemple, le registre vous permet de changer la vitesse en fonction des touches de la télécommande.

På va modifie la boucle d’accès pour ajouter à chaque boucle la lecture de la télécommande. Puis on remplace les commandes du moteur par une commande conditionnée par la valeur du registre.

Comme le diagramme des blocs de risque se déroulant, på utilisera des sous-routines (voir notre article).

Sous-routine à distance

Nous n’utilisons que deux touches: flèche haut (UPPIL) et flèche bas (NEDPIL). L’algorithme de gestion de la télécommande est le suivant:

- s’il est soutenu sur la peau haute, il a un registre plus élevé

- s’il est supporté sur la base, il a un registre inférieur

- pas de plus bas pour le premier registre

- pas supérieur pour le dernier registre

Par conséquent, pour chacun des registres, il y a le blocage suivant avec un petit ajustement pour le premier et le dernier.

PNG - 57,6 co
Principe pour chaque registre

Une fois terminé, voici ce que cela donne:

PNG - 98,2 co
Gestion de la télécommande

Cette sous routine s’appelle « färrhantera » et doit être ajoutée à la fin de la boucle, dans tous les cas de line catcher.

Fermeture éclair - 16,4 co
Sous « gestion à distance »

C’est alors une question de routine qu’il y ait une gestion différente des moteurs, afin de pouvoir remplacer les blocs MOTOR en cas de différences en fonction de la valeur du registre (les blocs MOTOR sont bien compris mais avec des valeurs de vitesse différentes).

Häll remplacer le cas « va tout droit »

Fermeture éclair - 16,1 co
Sous « télécommande avant »

Häll remplacer le cas « correction vers la droite »

Fermeture éclair - 16,2 co
Sous « extrême droite »

Ainsi que suite. N’hésitez pas à partager avec nous vos expériences et vos propres codes.

Voici le programme de sous-routine, je ne l’ai pas encore remplacé mais j’ai déjà des comportements intéressants en fonction de la valeur que je choisis avec ma télécommande.

Zip - 534 octets
Programme avec télécommande



Laisser un commentaire

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