lundi 13 avril 2020

Robot suiveur de ligne, version Raspberry Pi (2): Assemblage et programmation

Le classique robot suiveur de ligne est souvent une des premières réalisations d'un roboticien amateur: vous tracez une trajectoire sombre sur fond clair (ou une trajectoire claire sur fond sombre), et un véhicule autonome suit docilement cette trajectoire grâce à des capteurs optiques.

Un robot de ce genre peut être réalisé avec un Arduino, ou avec un autre microcontrôleur, ou sans microcontrôleur du tout. Dans ce tutoriel, j'utilise un Raspberry Pi programmé en Python.

Voici tout d'abord une courte vidéo montrant le robot suiveur de ligne en pleine action.


Assemblage du châssis, connexion des moteurs

Nous réutilisons la plate-forme robotique mise au point dans l'article Robot Raspberry Pi; il s'agissait d'un robot contrôlable par Wi-Fi, et nous n'aurons qu'à lui ajouter des capteurs et à le programmer différemment.  Je vous invite donc à consulter cet article pour plus d'informations sur la façon de brancher les moteurs au Raspberry Pi.


Connexion des capteurs optiques

Dans mon précédent article (Robot suiveur de ligne, version Raspberry Pi (1): fabrication du capteur), j'ai conçu un capteur double qui produit un signal logique de 3,3 V lorsque la surface est blanche, et de 0 V lorsque la surface est noire. Notez qu'il est également possible de vous procurer un capteur prêt à l'emploi, spécialement conçu pour ce genre d'utilisation.



J'ai branché la sortie du capteur de gauche à la broche BCM 17 (BOARD 11) du Raspberry Pi et la sortie du capteur de droite à la broche BCM 27 (BOARD 13). Il faut bien sûr alimenter les capteurs (broches GND et 3,3 V). J'ai conçu mon capteur pour que les LEDs soient alimentées en 5 V, ce qui n'est pas nécessairement le cas si vous utilisez un autre modèle de capteur.


Les capteurs sont placés à l'avant du robot, et orientés vers le sol.



Script en langage Python

Au démarrage du script, le robot doit être positionné de façon à ce qu'aucun des deux capteurs ne soit sur la ligne: l'état initial de chaque capteur est alors déterminé (lignes 41 et 42).

Ensuite, le sketch vérifie continuellement l'état des capteurs (lignes 46 et 47).
  • Si les deux capteurs sont dans leur état initial, le robot continue tout droit.
  • Si le capteur de gauche n'est plus dans son état initial (il est donc au-dessus de la ligne), le robot tourne à gauche.
  • Si le capteur de droite n'est plus dans son état initial (il est donc au-dessus de la ligne), le robot tourne à droite.
  • Si les deux capteurs ne sont pas dans leur était initial (ils sont tous les deux sur la ligne), le robot s'arrête (on peut mettre une ligne perpendiculaire pour indiquer la fin du parcours).
-

-

À lire aussi:



Yves Pelletier (TwitterFacebook)

Aucun commentaire:

Enregistrer un commentaire