samedi 11 avril 2020

Robot suiveur de ligne, version Raspberry Pi (1): fabrication du capteur

Le robot suiveur de ligne est un grand classique de la robotique: vous tracez un trajet foncé sur fond pâle (ou un trajet pâle sur fond foncé) et un véhicule autonome suit docilement le parcours, sans jamais traverser la ligne.

Pour obtenir ce résultat, deux photorésistances sont placées à l'avant du véhicule de façon à capter la lumière réfléchie par le plancher: les surfaces pâles réfléchissent plus de lumière que les surfaces foncées, ce qui modifie la valeur de la photorésistance.



Tout ça est relativement simple si le cerveau de votre robot suiveur de ligne est un Arduino: chaque photorésistance produit une tension variable qu'il s'agit de mesurer sur une entrée analogique de l'Arduino. Mais si vous utilisez un Raspberry Pi, les choses se compliquent un peu: le Raspberry Pi ne comporte pas d'entrée analogique.

Une solution possible consiste à ajouter un convertisseur analogique-numérique à votre Raspberry Pi (comme par exemple  le MCP3008 ou le PCF8591). J'ai plutôt choisi de fabriquer un capteur qui retourne un signal numérique: 3,3 V si la surface est pâle, 0 V si la surface est foncée.



La source d'éclairage

Mon capteur est muni de deux LEDs qui produisent de la lumière blanche (une LED de chaque côté de la ligne qui sera suivie par le robot). Chaque LED est alimentée par une tension de 5 V et protégée par une résistance de 120 Ω. La lumière produite par ces LEDs est réfléchie par le plancher.



Le capteur de lumière

Chaque photorésistance est placée juste à côté de la LED, et orienté de façon à capter la lumière réfléchie par le plancher plutôt que celle qui provient directement de la LED.  La photorésistance est associée à une résistance fixe de façon à former un diviseur de tension.

La valeur optimale de la résistance fixe est obtenue en effectuant ce calcul:

Rfixe = (Rmin + Rmax )1/2

...où Rmin est la valeur de la photorésistance quand la lumière de la LED est réfléchie par une surface noire, et Rmax est la valeur de la photorésistance quand la lumière de la LED est réfléchie par une surface blanche.

Le signal de sortie de dispositif (une tension qui varie en fonction de l'intensité lumineuse captée) est acheminé à l'entrée "V+" d'un comparateur LM393.

Résistances de référence (potentiomètres)

Deux potentiomètres seront réglés à une résistance se situant entre Rmin et Rmax , de façon à produire une tension de référence plus grande que la tension de la photorésistance quand la lumière est réfléchie par une surface noire, et plus petite que la tension de la photorésistance quand la lumière est réfléchie par une surface blanche.

La tension de sortie de chaque potentiomètre est acheminée à l'entrée "V-" du comparateur LM393.

Comparateur LM393

Finalement, un circuit intégré LM393 compare la tension de la photorésistance avec la tension du potentiomètre. La tension de sortie du LM393 est de 3,3 V si la tension de la photorésistance est supérieure à celle du potentiomètre, alors qu'elle est nulle si la tension de la photorésistance est inférieure à celle du potentiomètre.

C'est important d'alimenter le LM393 avec une tension de 3,3 V (et non 5 V) afin que son signal de sortie soit 3,3 V, le niveau logique approprié pour les broches du Raspberry Pi. Une résistance de tirage est nécessaire à chacune des deux sorties du LM393. Les tensions de sorties seront acheminées à des broches GPIO du Raspberry Pi.

Notre capteur est maintenant prêt à être installé sur notre robot (ce sera le sujet du prochain article).

Yves Pelletier (TwitterFacebook)

Aucun commentaire:

Enregistrer un commentaire