Cours et méthode. Leçon n°4: L'électronique Lego(suite et fin)
Suite et fin du quatrième chapitre. Nous nous étions arrêté au 4.4
4.4 Le détecteur de lumière
Le détecteur de lumière se présente sous la forme d’une brique Lego 2 x 4 avec une LED (Diode Electroluminescente, DEL) rouge et d’un phototransistor. La LED rouge éclaire la zone se situant devant la brique et le phototransistor mesure l’intensité de la lumière réfléchie. Le détecteur de lumière renvoie une valeur entre 0 et 100%. La valeur la plus faible que je n’ai jamais mesuré est 20%, mesure que j’ai effectuée à minuit au milieu de mon sous-sol avec les lumières éteintes. Vous pouvez atteindre 100% en visant le soleil un jour clair ou en tenant le détecteur à quelques cm d’une ampoule de 100W. Dans des conditions plus classiques, les valeurs varient plutôt entre 30 et 60%.
Une de mes plus anciennes expériences avec le détecteur de lumière c’est celle où je l’ai utilisé pour faire une machine à trier les bonbons. Je voulais tirer des M&Ms en fonction de leur couleur (les marrons sont mes préférés). L’idée est simple. Utiliser le détecteur de couleur puis déplacer le robot pour le positionner au-dessus du bon paquet.
J’ai fait un robot pivotant du type table tournante autour duquel je pouvais placer des bacs pour stocker les bonbons. La chenille caoutchouc faisait un joli tapis roulant et j’ai trouvé une idée pour faire ce que j’appelais une « pompe à bonbons » qui marchait plutôt bien pour délivrer un bonbon à la fois depuis la réserve. Toute la mécanique étant en
place, il ne me restait plus qu’à rentrer les valeurs du détecteur de lumière pour chaque couleur dans le programme. Je me prenais à rêver de robots de combat mâchouillant des M&Ms marron…
(cliquez pour agrandir)
Je n’ai jamais pu faire marcher très bien cette trieuse car les valeurs pour les différentes couleurs de M&Ms sont très proches. Après avoir cherché un peu et essayé deux trois
trucs, j’ai pu trier en trois groupes : les jaunes dans un bol, les oranges et rouges dans un autre, les bleus, verts et marrons dans un troisième. Sans doute en ai-je eu assez de jouer avec ce robot, aussi l’ai-je démonté afin de récupérer les pièces. Je pense que c’est aussi ce qui arrive à de nombreuses équipes FLL quand elles essayent d’utiliser le détecteur de lumière pour leur robot. Ils songent à une idée vraiment bonne, la mettent en oeuvre pour la tester. Durant les essais, le robot ne fonctionne pas très bien ou pas de façon fiable. L’équipe réfléchit un peu, n’arrive pas à faire mieux et renvoie le détecteur dans le vrac de pièces.
Le problème que j’ai eu avec la trieuse à bonbons n’est pas la faute du détecteur de lumière. Le projet était voué à l’échec dès le départ car j’ai choisi le détecteur de lumière alors qu’il n’était pas approprié pour cette application. J’avais besoin d’une meilleure compréhension du détecteur de lumière avant de l’utiliser dans d’autres projets et pour accroître mes connaissances j’ai donc décidé de réaliser une série d’expériences.
4.4.1 Expérience n°1
Grâce à ma tentative de réalisation d’une trieuse de bonbons, je savais que la valeur du détecteur de lumière dépend de la couleur de l’objet visé. Mais il apparaît aussi que cette valeur dépend aussi de la distance au détecteur de l’objet, des écarts de taille et de forme de l’objet et des conditions de lumière ambiante. Si je voulais apprendre quelque chose au sujet du détecteur de lumière, il fallait que je limite le nombre de variables. Pour ma première expérience, je décidais d’étudier la corrélation entre la valeur lue, la couleur et la distance.
4.4.1.1 Couleur
Alors que je faisais mon expérience sur les couleurs, il m’a paru évident que le détecteur de lumière ne percevait pas les couleurs comme moi. Pour moi, les briques vertes semblaient plus brillantes que les briques rouges, alors que les valeurs du détecteur étaient toujours plus faibles pour les briques vertes. En fait, les mesures pour les briques vertes, les bleues, les gris foncé et noires étaient sensiblement identiques.
La lumière est faite d’ondes électromagnétiques - vibrations de champs électrique et magnétique à travers l’espace. Il y a plusieurs sortes d’ondes électromagnétiques : certaines peuvent être ressenties (la chaleur), d’autres peuvent être vues (lumière), et certaines nous sont utiles (télévision et radio). Nos yeux perçoivent les ondes de longueurs d’ondes de 400nm (violet) à 700nm (rouge). Nous appelons cette petite partie du spectre électromagnétique la lumière visible. Notre oeil perçoit chacune des longueurs d’onde du spectre lumineux comme une couleur différente. La lumière de longueur d’onde de 700nm est le rouge; la lumière bleue a une longueur d’onde d’environ 460nm.
4.4.1.2 Distance
La loi de l’inverse du carré est une brillante formule mathématique que l’on rencontre dans de nombreux domaines de la physique. Elle définit une relation entre la valeur d’une grandeur physique comme la force de gravité ou la puissance d’un son et la distance à laquelle vous vous situez de la source à l’origine de cette grandeur. La loi de l’inverse du carré pour l’intensité lumineuse signifie que l’intensité lumineuse d’une source de lumière constante décroît comme le carré de la distance à la source lumineuse. On l’exprime généralement par le rapport des intensités lumineuses l1 et l2 aux carrés des distances d1 et d2.
Cela signifie que si vous doublez la distance à une source de lumière, l’intensité observée décroît de (1/2)2 ou ¼ de sa valeur initiale. A 3, 4, et 5 fois la distance, l’intensité décroît de 1/9, 1/16, et 1/25 de la valeur initiale. En pratique, l’intensité chute dès que vous vous éloignez de la source. Puis, plus vous vous éloignez, moins le changement devient sensible.
On comprend sans surprise que les valeurs mesurées via le détecteur de lumière décroissent rapidement alors que la distance à la cible augmente. Je ne suis pas certain de savoir pourquoi les valeurs ne décroissent pas aussi rapidement que le prévoit la loi de l’inverse des carrés, mais je suppose que c’est à cause de la proximité de la LED au phototransistor (une bonne part de la lumière mesurée provient directement du voisinage de la LED). A regarder les mesures du tableau, je comprends pourquoi je n’ai jamais pu faire marcher correctement ma trieuse de bonbons. Une modification de la distance aussi faible qu’½ tenon est suffisant pour que le détecteur confonde rouge et jaune ou bleu et vert, et si une brique rouge est placée deux tenons plus loin qu’une verte, le détecteur ne peut pas les différencier.
De cette expérience, j’ai dressé quelques conclusions à propos du détecteur de lumière. Le plus important est que vous pouvez utiliser le détecteur pour mesurer une distance si vous connaissez la couleur de la surface réfléchissante ou que vous pouvez dire la couleur si vous connaissez la distance de la surface, mais que vous ne pouvez pas faire les deux en même temps. Pour de meilleurs résultats, le détecteur doit être employé dans des conditions contrôlées avec précautions. Une attention particulière doit être apportée à la limitation du nombre de variables.
Le détecteur ne voit pas la lumière comme les être humains. La sensibilité du détecteur ne correspond pas à la vision humaine. Ce qui vous apparaît brillant peut paraître sombre au
détecteur et la lumière qui se situe en dehors du visible peut facilement conduire le détecteur à des valeurs de 100%. Il est toujours de bon aloi de faire et d’analyser des mesures avec un détecteur avant de développer une stratégie d’exploitation de celui-ci.
J’ai aussi appris que le détecteur de lumière est très sensible à la distance entre lui et la surface réfléchissante. Quand on utilise le détecteur pour mesure des différences il doit être placé à une distance fixe de la surface réfléchissante. Même de petites variations de distances peuvent rendre les mesures inexploitables. Souvenez-vous de ça quand vous planifiez l’utilisation d’un détecteur de lumière sur votre robot.
4.4.2 Expérience n°2, lumière ambiante
Dans ma première expérience, j’ai étudié la relation entre couleur, distance et valeur de luminosité mesurée. D’après les données recueillies, j’ai déduit que le détecteur est
sensible non seulement à la couleur des objets observés mais aussi à la longueur d’onde de la lumière éclairant l’objet. Lors d’un usage normal, le détecteur et la cible ne se trouvent pas dans un boîtier fermé. Des lumières extérieures et la lumière ambiante auront des effets sur les mesures fournies par le détecteur. Pour mieux comprendre les effets de la lumière ambiante j’ai réalisé une seconde expérience.
Pour cette expérience, j’ai construit en guise de cible un mur composé de différentes couleurs et un support réglable pour poser le détecteur à des distances connues des briques. Le support est conçu de manière à minimiser son ombre portée. J’ai alors mesuré les valeurs pour chaque couleur de briques pour différentes distances sous différentes conditions d’éclairages. D’abord, en guise d’étalonnage, j’ai pris les mesures dans une pièce non éclairée de mon sous-sol (mesure à 22%). J’ai refait cette expérience dans les conditions d’éclairage d’un sous-sol « normales » (mesure à 46%) puis dans des conditions « lumineuses » que l’on rencontre en compétition (mesure à 65%). Toutes les mesures sont réunies dans la Table 4-3 .
D’autre part, il est très intéressant et important de noter comment l’éclairage ambian modifie la relation entre distance et valeur de la mesure. L’Illustration 4-24 est un graphique concernant les mesures sur la brique grise suivant les trois conditions de lumière. Sans éclairage, les mesures sont semblables à celles mesurées dans le boîtier fermé de l’expérience n°1. Le graphique est quasiment plat dans des conditions d’éclairage « faible ». La lumière rouge de la LED est submergée par la lumière de la lampe 100W utilisé dans les conditions de fort éclairage. Dans les conditions d’éclairage fort, les valeurs croissent avec l’éloignement du détecteur à la cible. Aux distances plus faibles, le corps du détecteur et son support créent de l’ombre diffuse qui diminue la quantité de lumière qui vient effectivement éclairer la cible.
Nous concluons que le détecteur de lumière est très sensible à la lumière ambiante, ce qui est gênant car on a rarement le contrôle de ce facteur. Ce fait a paru flagrant lorsque j’ai fait une démonstration de mes robots lors d’une exposition en extérieur. Même si la démonstration avait lieu sous un parasol, j’ai passé beaucoup de temps à essayer de faire fonctionner correctement les robots avec détecteur de lumière. Et pourtant je pensais que j’avais bien protégé les détecteurs. J’aurais du tester mes robots dans les conditions de lumière prévues. Souvenez-vous de cela quand vous faites vos essais dans votre sous-sol. Il se pourrait que tout se passe très différemment lorsque vous vous trouverez sous les lumières d’une salle de tournoi.
4.5 Le détecteur de rotation
Le détecteur de rotation est utilisé pour connaître de combien a tourné un axe. Il a un manchon interne qui tourne librement et qui peut recevoir un axe. Lorsque le manchon tourne, un compteur dans le RCX s’incrémente ou se décrémente. Chaque rotation complète compte pour 16 unités, ce qui donne pour le détecteur de rotation une résolution de 22.5 degrés.
La résolution du détecteur de rotation est habituellement bien adaptée à la mesure des distances. En utilisant la plus grande des roues Lego (la roue ballon de 81.6 mm), 22,5°
représentent un parcours de seulement 1,5 cm. Pour la petite roue ballon, le chiffre est de 6 mm. Mais cette précision peut s’avérer trop faible pour des rotations fines. Pour un robot à conduite différentielle de 10 tenons de large, un parcours de 6 mm correspond à 8 degrés d’angle.
4.5.2 Mécanique interne
Le détecteur de rotation est un intéressant petit objet. Si vous aviez la vision rayons X de Superman vous pourriez voir qu’il est constitué de deux petits opto-interrupteurs. Il s’agit
d’une petite LED qui fait face à un photo-transistor. Le photo-transistor détecte la rotation par l’intermédiaire d’une obstruction de l’espace qui le sépare de la LED.
4.5.3 Erreur de décompte
Il y a eu des dizaines de messages sur LUGNET (LEGO Users Group Network) à propos d’un problème mystérieux concernant le détecteur de rotation. Il y a une croyance répandue que des erreurs de décompte se produisent si la vitesse de rotation est trop faible ou trop rapide. Les vitesses exactes sont mal définies, mais on parle de vitesses au minimum de 10 à 20 tr/min et au maximum de 1200 à 1400 tr/min. Les quantités importantes de données expérimentales disponibles sur le web semblent corroborer les faits que le détecteur de rotation est fiable dans la fourchette de vitesses comprises entre 60 et 1000 tr/min(Concernant les problèmes du capteur de rotation à faible vitesse, voir http://philohome.com/sensors/legorot.htm ).
Le repère étalon est un détecteur secondaire que l’on va utiliser pour vérifier ou caler la valeur par défaut du détecteur principal. Le chercheur de lumière de l’iIllustration 4-29 est épaulé par un détecteur de contact en guise de repère étalon. La came liée au détecteur de lumière pivotant presse le bouton poussoir quand le détecteur de lumière se présente de face. Le contact indique au RCX qu’il lui faut vérifier la valeur du détecteur de rotation et le remettre à zéro si toutefois elle était incorrecte (le compteur devrait être à zéro dans la position « de face »).
4.6 Le multiplexage de détecteurs
Le RCX a trois sorties moteurs et trois entrées pour les détecteurs, alors même que le « kit défi » inclut deux détecteurs de contact, deux capteurs de lumière et un détecteur de rotation. Que faire de ces détecteurs en surnombre? De nombreuses équipes FLL n’utilisent simplement pas ces détecteurs surnuméraires dans leur robot. Une équipe avait eu l’idée d’utiliser un détecteur de contact pour représenter un oeil. L’oeil était sympa mais pas d’une grande aide. La solution la plus utile est de multiplexer les détecteurs.
Multiplexer consiste à relier plusieurs détecteurs au même port d’entrée du RCX. Quand cela est fait correctement, le RCX est en mesure de lire la valeur en provenance de ce port et de déterminer duquel des détecteurs elle provient. Les détecteurs de contact sont les meilleurs candidats au multiplexage. Ils peuvent être multiplexés aussi bien avec un détecteur de lumière qu’avec un autre détecteur de contact. En théorie, deux capteurs de lumière peuvent être multiplexés mais je ne saurais comment interpréter les valeurs mesurées. Les détecteurs de rotation ne peuvent pas être multiplexés à cause de la nature du signal qu’ils renvoient.
D’après la Table 4-4, nous voyons l’importance de prévoir le multiplexage dès les premières étapes de la construction du robot. Quand un détecteur de contact est fermé, aucune valeur sur un des autres détecteurs multiplexés ne peut être lue. Tous les pare-chocs ou contacteur de position ou de butée utilisant un détecteur de contact doivent être de conception « contact normalement ouvert » (à zéro).
Electronique terminée, sacré pavé n'est-ce pas?
Dans 7 jours, le dernier tenant, le chapitre cinq, qui porte le doux nom de "la conduite d'un robot".
M'sieurs dames!
Moune
Aucun commentaire:
Enregistrer un commentaire