vendredi 10 mai 2013

Codeur optique linéaire

Pour mesurer le mouvement ou la position du traceur j'utilise un codeur optique linéaire, il fournit des impulsions électriques suivant un déplacement. On le trouve facilement dans les imprimantes jet d'encre juste derrière les cartouches d'impression. 
La piste de code est une bande de plastique striée finement espacée de 0,1 mm. Le capteur est composé d'une diode électroluminescente qui émet une lumière infrarouge à travers la piste et de deux photodiodes qui reçoivent la lumière à chaque passage d'un trait transparent.


Les deux signaux mesurés sont en quadrature de phase ce qui permet de déterminer quand la piste se déplace dans un sens ou dans l'autre selon que l'un des signaux soit en avance ou en retard par rapport à l'autre. Ce signal est ensuite transmis au FPGA et traité grâce à un programme qui déterminera la longueur des déplacements.
Pour plus de détail sur les signaux et le programme en vhdl cliquez ici.

La vidéo si dessous présente le montage réalisé. On remarque bien le comptage sur l'afficheur 7 segments.


Ainsi quand je déplace le chariot on voit apparaître sur l'écran de l'oscilloscope les créneaux de tension. En regardant plus en détail par rapport au déplacement, ce qui n'est pas très évident je l'admets, on peu distinguer la voie en avance.
Ce montage permettra donc de positionner le chariot de manière précise. Pour l'instant il est appliqué qu'a un seul axe, il suffira simplement de le dupliquer pour l'appliquer à l'autre. Je reviendrai plus tard sur le schéma électrique car je n'est pas encore fait l'acquisition du driver pour le moteur, j'ai simplement utiliser un relais pour inverser le sens.

La prochaine étape consistera à mettre en place un protocole de communication particulier entre l'ordinateur et la carte pour piloter le dispositif avec un logiciel, LabView pour l'instant, via le port RS-232 pour effectuer des déplacements de longueur désirée.