Vous êtes sur la page 1sur 8

Position par souris optique

Extrait du PoBot
http://www.pobot.org

Position par souris optique


- Composants - Les entres - Capteurs de position -

Date de mise en ligne : dimanche 6 septembre 2009

PoBot

Copyright PoBot Page 1/8


Position par souris optique

Sommaire
Quelques recherches
Par nous-mmes
Image du capteur
Intgration dans un robot
Fte de la Science
Nouveau capteur ADNS-2620

Utiliser une souris optique est une ide rpandue. En effet, on peut esprer une grande prcision (400 points par
pouce soit une prcision thorique de 0,0635 mm entre deux valeurs). Mais elle est aussi souvent vite
abandonne car on commence par essayer avec la souris pose devant soi, on fait 2-3 aller/retour la mme
position et on constate l'cran une sacre diffrence qui fait renoncer.

Souris optique PS/2

Ce phnomne s'explique par l'utilisation de la vitesse de mouvement dans le driver de souris de votre systme
d'exploitation (Bill, Pomme ou Pingouin font pareil car c'est un rel confort pour l'utilisateur, et pas une erreur) afin
que vous puissiez la fois obtenir une bonne prcision vitesse lente et une grande distance parcourue vitesse
rapide. On va donc tester cette ide de positionner un robot en utilisant le capteur d'une souris optique.

Cette ide est facile mettre en oeuvre et peu onreux car certains capteurs disposent d'une interface srie (une
patte pour l'horloge, une patte pour les donnes) qui fonctionne comme une mmoire registres (le capteur de la
souris rpond un numro de registre sur 8 bits en envoyant la valeur du registre octet par octet).

Mais c'est au niveau de la mcanique que c'est plus dlicat, car le capteur a besoin d'une lentille (focale de quelques
mm) et l'ensemble doit tre une certaine hauteur pour avoir des valeurs cohrentes. Or un robot, a vibre et a
sursaute. On verra donc la fois la communication entre un micro-contrleur et ce capteur (la partie "simple" si on
peut dire) et aussi comment on peut intgrer ce capteur un vrai robot qui roule et pas seulement une platine
d'essai.

Le dernier point d'introduction concerne la vitesse. Les capteurs qu'on utilise sont donns pour 12 ips (inches per
second = pouces par seconde) ce qui donne une vitesse de 30 cm par seconde ce qui correspond un petit robot,
pas une bte de comptition. C'est une limite tout fait acceptable pour nous mais il vaut mieux le savoir avant de
raliser votre robot autour de ce capteur. Bien sr il faut vrifier selon le capteur que vous avez trouv si la vitesse
est meilleure ou pire.

Bien sr, il y a des inconvnients et la prcision relle (pas la rsolution du capteur mais l'erreur constate) n'est pas

Copyright PoBot Page 2/8


Position par souris optique
comparable des systmes d'odomtrie plus onreux et plus complexes (a vous tonne ?).

Quelques recherches
Avant-propos, certains visiteurs s'tonnent parfois de la ressemblance de nos articles avec d'autres qu'ils ont pu voir
sur le Net (et que parfois nous ne connaissons mme pas). Ce n'est pas tonnant, le domaine est encore assez
limit et les mmes ides reviennent rgulirement, car on s'inspire de ce qui nous entoure.

Cependant hors de question de faire de la recopie ou de la traduction d'articles mot pour mot. On va donc chercher
ce qui a t fait (surtout si on dcouvre que a ne fonctionne pas chez nous, autant avoir confirmation que a ne
vient pas d'une fausse manip') et le refaire. En esprant l'amliorer.

Ou en tout cas en tant plus clair que certains qui mettent 2 mots sur un forum mais ne donnent pas la petite astuce
qui les a bloqus pendant 2 mois et qu'ils omettent de mentionner alors qu'on va forcment la rencontrer. Ou pire, en
disant qu'ils ont russi mais ont crash leur disque dur (d'o l'intrt de tout publier, mme quand on pense que c'est
simple et que tout le monde pourrait le refaire) :

You can also get the actual image off those mouse sensors too. I did it once using the parallel port on the PC
and a little C# application. Unfortunately I lost all that code after a hard drive crash :(

Donc voici quelques articles traitant du sujet :

Proposition initiale, par un Arduiniste franais [http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1154816099]


Librairie de code Arduino
[http://www.martijnthe.nl/2009/07/interfacing-an-optical-mouse-sensor-to-your-arduino/]
Un autre capteur [http://www.gurulib.com/_project/optical_mouse_hack_files/optical_mouse_hack.htm]

D'autres liens proposs par Laurent qui avait tudi la question :

Interface to Optical Mouse Sensor


[http://www.kronosrobotics.com/Anotes/Athena%20to%20Optical%20Mouse.pdf]
Optical Mouse Cam [http://www.bidouille.org/hack/mousecam/index.php]
BTC Optical Mouse Hack [http://home.roadrunner.com/~maccody/robotics/mouse_hack/mouse_hack.html]
Cody's Robot Optical Motion Sensor #1 [http://home.roadrunner.com/~maccody/robotics/croms-1/croms-1.html]
Article scientifique, sur le pilotage de robot par souris optique +++
[http://books.google.fr/books?id=RZ7QeIoygtIC&pg=PA146&lpg=PA146&dq=Optical+mouse+sensor+robot&sou
rce=bl&ots=OqH7Iy6jk2&sig=BnBSWvD-UHoFkoTmLXXd8aVnt9E&hl=fr&ei=xwWGSqQ-5MyMB5qjjKML&sa=X
&oi=book_result&ct=result&resnum=5#v=onepage&q=Optical%20mouse%20sensor%20robot&f=false]
En allemand [http://www.rn-wissen.de/index.php/Maussensor]
Liens vers des hacks de mouse [http://www.opensourcemouse.org/wiki/Mouse_Hacks]
Optical Mouse Hack [http://www.gurulib.com/_project/optical_mouse_hack_files/optical_mouse_hack.htm]
Photos PAN3101 [http://www.flickr.com/photos/martijn_the/2314789356/]
Optical mouse cam [http://spritesmods.com/?art=mouseeye]
Using the Avago ADNS-2610 Optical Sensor [http://pwc.theclarkwebsite.com/adns2610.php]

Copyright PoBot Page 3/8


Position par souris optique

Par nous-mmes
Voici quelques images d'une souris optique ouverte pour rcuprer le capteur ncessaire la mesure du
dplacement d'un robot mobile.

Souris optique PS/2

Electronique complte

Support indispensable

Il est important de choisir une souris plutt ancienne, par exemple avec un cble PS/2. Tout simplement car les
souris modernes ont un capteur "tout en un" qui fait la capture et le traitement optique, mais galement la
communication USB, qui ne nous intresse pas.

Copyright PoBot Page 4/8


Position par souris optique
Camra du capteur

Capteur ADNS-2610

Electronique suffisante

La datasheet du composant : ADNS-2610 (mais il en existe d'autres, sur le mme principe de mmoire registres).

Datasheet ADNS-2610

Voici le code source pour Arduino issu de la librairie de Martijn.

Code source Arduino simple

On le modifie pour pouvoir envoyer une trame sur le PC qui sera rcupre dans une feuille Excel pour tracer le
parcours ralis.

Appli Arduino pour Excel

Copyright PoBot Page 5/8


Position par souris optique

Appli Processing pour Excel

Et voici le rsultat (l'appli Processing contient la feuille Excel des valeurs brutes ainsi que la feuille Excel de
traitement, qui permettra galement de tracer la vitesse, etc..). Il s'agit d'un carr ralis main leve en suivant un
cadre dessin. Comme le manipulateur (votre serviteur) n'tait pas trs dou, il y a des erreurs qui lui sont
entirement imputables. En tout cas les horizontales montrent la bonne rptabilit.

Carrs main leve


L'unit est le mm.

Voici une autre ide de manip' propose par Eric pour liminer les problmes d'imprcision dues l'excution
manuelle des mouvements. Il s'agit de faire un mcanisme (en LEGO par exemple) de volant et bielle. Le capteur
serait plac l'extrmit de la bielle et se dplacerait ainsi sur un segment de droite toujours identique. De plus cela
permettrait de tester ce qui se passe au niveau acclration, puisque la position curviligne du mobile aurait une
quation en sin(t).

Un petit crobar valant mieux qu'un long monologue, voici ce que a donnerait :

Image du capteur
Guilhem a ralis une interface permettant de rcuprer l'image que voit le capteur de la souris, puis que le
calculateur DSP (data signal processing) va interprter pour nous envoyer le dcalage en x et en y.

Voici le rsultat :

Copyright PoBot Page 6/8


Position par souris optique

Intgration dans un robot


Aprs tests, on peut intgrer le capteur et son support sur un robot.

Intgration dans le robot

... la suite bientt !

Fte de la Science
Cette dmonstration a t propose sous forme d'atelier lors de la Fte de la Science 2009 Sophia-Antipolis.

Nouveau capteur ADNS-2620

Copyright PoBot Page 7/8


Position par souris optique
Sparkfun propose ce capteur (et les pices mcaniques et optiques ncessaires) pour une quinzaine de dollars, sous
une forme beaucoup plus pratique installer dans un robot qu'une souris dmonte :

Platine pour ADNS2620 [http://www.sparkfun.com/commerce/product_info.php?products_id=10105]

Copyright PoBot Page 8/8