Sujet : Hack logitech LS1

Bonjour,
Je suis actuellement sur un projet de robotique et une des parties consiste à hacker une souris comme capteur pour détecter les erreurs de mouvements pour rectifier la trajectoire de notre robot.

Nous avons suivi un tutoriel Arduino sur une souris muni d'un sensor ADNS2051 :
http://lightmouton.free.fr/TIPE%20V2/Document%20texte/Souris%20Optique/Arduino%20Forum%20-%20%5BAPL%5D%20Voir%20au%20travers%20d'une%20souris.htm

Le résultat fut concluant et opérationnel.

La souris ne marchant, malheureusement, pas sur feuille blanche, nous nous sommes rabattus sur la Logitech LS1, munie d'un sensor ADNS7550.

http://img15.hostingpics.net/pics/550351datasheet.png

Pour les soudures nous avons relié SCLK à la pin 2, MISO (output) à la pin 3 ; GND sur GND et VDD5 sur VDD5 de la Arduino.

Le code utilisé, est un dérivé de celui-ci afin qu'il soit compatible avec notre sensor :
http://www.martijnthe.nl/2009/07/interf … r-arduino/

Nous avons juste eu à changer les adresses de registres.

Par contre, sur ce test là, nous avons des valeurs incohérentes.

Nous avons des doutes sur les soudures, en effet, sur la ADNS2051 il n'y avait qu'une patte du capteur qui s'occupait de l'entrée et de la sortie tandis que sur l'ADN7550 il y a un MISO et un MOSI.

Est-ce que vous auriez une idée sur le problème ? Et sur comment le rectifier ?

Merci d'avance !

2

Re : Hack logitech LS1

Bonjour,

Ce n'est pas du tout le même protocole : MISO, MOSI c'est du SPI, pas de la liaison série. Mais l'Arduino dispose d'une lib SPI donc si vous reliez ces pattes (avec SCK et MCS) aux bonnes pattes Arduino, et que vous implémentez le protocole, ce sera OK :

http://arduino.cc/en/Reference/SPI

3

Re : Hack logitech LS1

Tout d'abord merci beaucoup ! Je commence à y voir plus clair.

Par contre, je commence à être prise d'un doute. A la base, je souhaitais connecter deux souris à la Arduino Uno que je possède afin de les mettre aux deux extrémités d'un robot pour une question de recalibrage.

D'après ce que j'ai pu lire sur la documentation SPI :
« the SPI bus uses pins 10 (SS), 11 (MOSI), 12 (MISO), and 13 (SCK) »

Si ce sont des pins dédiées au spi, comment connecter une deuxième souris ?

http://img15.hostingpics.net/pics/907935spi.png
Il faudrait donc un montage comme celui-ci ?

Si j'ai bien compris, je soude quatre câbles sur le sensor de la souris : un sur la CLK, un sur le NCS, et les deux derniers sur les MISO et MOSI.

Les câbles CLK vont sur la pin 13, MISO sur 12, MOSI sur 11 et je connecte un slave à la pin 10 et l'autre à une autre pin (la 9 par exemple ?) ?

4

Re : Hack logitech LS1

Nous avons effectué tout de même des tests avec un branchement tel que je l'ai décris avec une seule souris.

Toujours aussi peu concluant.

Pour ce qui est du code, nous sommes bien d'accord que  ce code demande le résultat du registre à l'adresse 0x04 et en récupère bien son résultat ?

int SS = 10; //SPI Slave Select
.
.
.
{
    digitalWrite(SS, LOW);
    res = SPI.transfer(0x04); //get the delta_y register (0x04) value
    digitalWrite(SS, HIGH); 
}

Pour le moment, même en mouvement, la souris indique des delta à zéro.

Après une relecture plus soutenue la datasheet (http://www.avagotech.com/pages/en/navigation_interface_devices/navigation_sensors/laserstream/adns-7550/ ) il semblerait que nous soyons très loin de la simplicité de hack d'une souris optique.

En effet, on demande une longue série de commande afin d'initialiser la puce.

Nous sommes un peu dépassés, n'ayant jamais développé sur Arduino au préalable et nous n'avons rien trouvé sur les souris laser (et non optique) sur internet.

Est-ce déjà la bonne direction à prendre ou alors nous allons droit dans le mur ? Des conseils ? Des liens à suivre ?

Merci, d'avance.