Roues codeuses

De Wiki INTech
Aller à : navigation, rechercher

Fonction

Les roues codeuses sont des roues qui permettent de mesurer la distance parcourue par le robot.

Description

Une roue codeuse peut-être basée sur plusieurs principes physiques différents. Nous proposons de présenter ici les roues codeuses optiques, basées sur un encodeur incrémental.

Incremental-Encoder-Square-Wave.jpg


Un encodeur incrémental est constitué d'un disque régulièrement percé de fentes le long de sa bordure et dont le centre est solidaire d'un arbre de rotation. Un système d'émetteur-récepteur de lumière est placé de par et d'autre de la roue (constitué par exemple d'une LED et d'un capteur infrarouge). Lorsque la lumière émise par la LED franchie une des fentes du disque lors de sa rotation, le récepteur génère un signal témoignant du déplacement de la roue. Lorsque la lumière heurte le disque plein, le récepteur n'émet aucun signal. Ainsi lorsque la roue tourne en continu, le récepteur génère un train d'impulsion soit un signal carré.

Codeur incrémental..jpg

Dans les systèmes actuels, les encodeurs incrémentaux présentent deux pistes de fentes légèrement décalées l'une de l'autre. De cette façon, l'encodeur génère deux signaux en quadrature de phase, indiquant dans quel sens la roue tourne. Si le canal A est en avance de phase sur le canal B, la roue tourne dans le sens horaire. Sinon, dans le sens antihoraire.

Applications

Notons le rayon de la roue codeuse r et supposons qu'on ne s'intéresse qu'à un seul canal (A ou B). Dans ce cas, chaque impulsion, ou "tick", généré par la codeuse témoigne d'un déplacement d égal à d=2*π*r/n, où n correspond au nombre total de fentes le long du contour de la roue. Prenons par exemple une roue de rayon r = 5 cm possédant 100 fentes. Chaque tick de codeuse généré indique un déplacement d = 2*π*5/100 = 3 mm. Si N ticks sont générés par la codeuse, on trouve d = 2*π*r*N/100. Si maintenant nous prenons en compte le deuxième canal de la roue codeuse, il faut déterminer lequel des deux canaux est en avance de phase pour connaître le sens de rotation de la roue.

En plus de connaître un déplacement (et donc un position si l'on connaît la position initiale de la roue), nous pouvons également estimer la vitesse de rotation de la roue codeuse. Notons toujours N le nombre de ticks générés par la roue pendant un temps T et n le nombre total de fentes. On obtient une vitesse de rotation v = N/(n*T). Par exemple si en une seconde la roue de 100 fentes génère 50 ticks, on trouve une vitesse de v = 50/(100*1) = 0,5 tours/s. Vitesse que l'on peut convertir en vitesse de déplacement linéaire par la formule vlin = v*2*π*r. Dans l'exemple précédent, on trouve une vitesse moyenne de vlin = 0,5 * 2*π*5 = 15,7 cm/s.

Autre application simple, la roue codeuse permet de mesurer un déplacement angulaire. Avec les mêmes notations que précédemment, on a un déplacement angulaire θ = N*360/n. Prenons par exemple une roue de 100 fentes générant 25 ticks, on en déduit un déplacement angulaire de θ = 25*360/100 = 90 °.

Remarques

Dans les précédentes applications, on remarque que la résolution des mesures dépend uniquement du nombre total de fentes présentes sur la roue. En effet, une roue possédant 100 fentes est moins précise qu'une roue possédant 1000 fentes, puisqu'elle ne détecte que le mouvement d'un centième de la roue alors que la seconde détecte le mouvement d'un millième de roue. Selon la précision requise par votre application, le coût de la roue sera différent car directement lié aux nombre de ses fentes.

D'un point de vue pratique, il faut faire attention aux spécificités d'une roue codeuse et du matériel relevant les ticks générés. Notamment que l'amplitude du créneau peut-être lu par votre matériel. Si la roue génère des créneaux de 5 volts, assurez-vous que votre matériel puisse lire une telle tension. Si ce n'est pas le cas, il faut soit changer de roue, soit changer de matériel, soit insérer entre les deux un circuit de conditionnement du signal.