Yes you understand about the ADNS-2030.
I post pictures of the s2083 circuit tomorrow.
Thanks
Yes you understand about the ADNS-2030.
I post pictures of the s2083 circuit tomorrow.
Thanks
Voici les photos du s2083:
Dis moi si tu veux plus de détails.
This is what I make of it:
So I compared it to the example circuit in the datasheet of the ADNS-2610 (You can download it here: http://www.avagotech.com/products/optical_navigation_sensors/led-based_sensors/a dns-2610/ )
And it's very much alike. I can't be 100% sure if it's right, but I'm pretty sure
As I suggested before, I would measure the voltage over the GND (pin 6) and the Vdd (pin 7) of the S2083 when the mouse is plugged in. You can do this with any simple household voltage meter (multi meter).
It should measure around 5V between these two pins (6 & 7) when the mouse is connected to your computer.
Then I'd just follow my tutorial from Step 4 (http://www.martijnthe.nl/optimouse/arduino-optical-mouse.html ).
Probably you can skip cutting the connection to the mouse controller (Step 3).
I would try the ADNS-2610 driver in the library on my site. (see instructions in the examples in the library)
If you have more questions, you know where to pose them
Bonne chance
merci mthe,
je fais le test dès que possible et je te tiens au courant.
Je viens de faire le test.
j'ai utilisé le code de Benoît ROUSSEAU , mais pour l'image j'ai une suite de 0 et pour les coordonnées j'ai rien, si le if avant l'affichage j'ai quelque chose du genre 255-255-255-255, 0-255-255-255...
J'ai rebranché la souris sur le PC elle marche très bien.
C'est du a quoi? SDIO et SCLK ne sont peu être pas placés en 3 et 4...
bonjour,
j'ai une souris qui comporte un capteur PAN3501
d'après le site du constructeur (et ma souris) c'est un interface USB.
est-ce possible de faire communiquer de l'USB sur les entrées de l'arduino ?
je voudrais détecter les déplacements d'une plaque de plexiglass avec 2 capteur de ce type (= laser IR, excellent même sur les marières transparentes)
merci
About the S2083 chip, I found the datasheet on avagotech website. It's a SDNS2083.
I'll give it a try soon, but if anyone makes some progress with this chip, it will be reaaaal good stuff ^^
Hi,
I made this "turntable" with a the PAN3101 (similar to the ADNS-20xx) and Arduino: http://pleereef.nl/videos/PleeStation-Scratch.m4v
Here's the driver library for the chips:
http://www.martijnthe.nl/optimouse/arduino-optical-mouse.html
Best,
M
Hi mthe
I just tested it and it seems to work. For the ADNS-2083, I changed the registers as follow
#define Delta_Y 0x42
#define Delta_X 0x43
But I didn't find an equivalent in the datasheet for the Motion Status Register. There's a Status register at 0x41, but it's not quite the
same as for the ADNS-2051 so I'm not sure it works with your library...
Anyway, I can retrieve dX and dY, the most important ^^
Thanks to you and to Benoit
You can download the modified files for the 2083 here > http://play-collective.net/blog/wp-content/uploads/2008/06/optimouse.rar
Cheers
@Glopp76 : the problem is that the data stored on the chips are not stored on the same registers. you have to change a few things. If you want to use Martijn library, you can use the files I modified, I changed the registers. You have also to edit the code in your sketch in order to use ADNS2083 instead of ADNS2051. That's all. If you want to use Benoit's sketch, then you have to modify a lot of things as a lot of values are not stored with the same scheme.
Hi melka,
Perhaps the chip is similar to the ADNS-2610.
That one doesn't have a status register like the 2051.
It has some other functions though, check out the datasheet of the ADNS-2610.
Can I append your adjustments to the library?
PS: great motion graphics work!!!
Martijn
Hi martijn
I looked quickly on the 2610 datasheet and it seems that they share the same kind of memory usage with the 2083. The registers adresses are different though.
You can definitely add my little modifications to the lib, yeah ^^
I tried to add a pixelData method returning an 18x18 array but I'm bad with C. I can return something but it's definitely not an array. Would you help me? I have a sketch working for reading the pixeldata register, I just don't understand how I can turn this into a library ^^.
void EnvoiImage()
{
byte val;
EcritureRegistre (0x40, 0x01);
EcritureRegistre (0x48, 0x00);
for (int i=0; i<325; i++)
{
val = LectureRegistre(0x48);
if (i!=0) { // First read will return 0, we don't want it
Serial.print(i);
Serial.print("\t");
Serial.print(val&63, DEC); // Cleans the value, so that you don't have the Start_of_Frame & Valid_data bits
Serial.println();
}
}
Serial.println ();
EcritureRegistre (0x40, 0x00);
}
I added some datasheets to the zip archive.
http://melka.one.free.fr/temp/OptiMouse.rar
Thanks ^^
PS : Thanks again ^^
Martijn, Benoit, do you think it's possible to unsolder the sensor from it's PCB ? My PCB is the same as the one in the pictures above, and I wonder what I have to keep beside the sensor. Certainly the Xtal but what else? I'd like to use it on some kind of "robot"...
^^
Mais il se passe des choses vraiment interessantes dans la partie Gauloise du site!
bonjour :
actuellement élève en classe CPGE , je souhaite faire mon TIPE sur les souris optique , et je suis tombé sur ce forum super interresant
mais j'aimerai avoir des details sur le transfere des images souris ->Arduno , plus exactement le programme necessaire pour visualiser l'image sur l'ecran d'un pc
Pourriez vous me donner 1 coup de main ? merci BCP !!
Hi all,
As previous poster I too must appologize for not writing in French. I hope someone can help me anyways.
I have a ADNS 5020E that I try to read DeltaX and DeltaY from. But all I get is 255-255 from those registers. What do I do wrong. I have included a modified version of Benoît Rousseau's example. Please if soneone knows why I wont get this working please tell me... The code compiles allright. I have connected +5V and GND as well as SCK and SDIO to the Arduino.
#define CLOCK_PIN 2 //BROCHE_HORLOGE
#define PIN_DATA 3 //BROCHE_DONNEES
#define _BV(bit) (1 << (bit))
byte ReadRegister (byte adress) //LectureRegistre
{
int i = 7;
byte returnRead = 0;
pinMode (PIN_DATA, OUTPUT);
for (; i>=0; i--)
{
digitalWrite (CLOCK_PIN, LOW);
digitalWrite (PIN_DATA, adress & (1 << i));
digitalWrite (CLOCK_PIN, HIGH);
}
pinMode (PIN_DATA, INPUT);
delayMicroseconds(150);
for (i=7; i>=0; i--)
{
digitalWrite (CLOCK_PIN, LOW);
digitalWrite (CLOCK_PIN, HIGH);
returnRead |= (digitalRead (PIN_DATA) << i);
}
delayMicroseconds(150);
return returnRead;
}
void setup()
{
pinMode (CLOCK_PIN, OUTPUT);
pinMode (PIN_DATA, INPUT);
Serial.begin(19200);
}
void loop ()
{
if (ReadRegister (0x02))
{
Serial.print ('>');
Serial.print (ReadRegister (0x03), DEC);
Serial.print ('-');
Serial.print (ReadRegister (0x04), DEC);
Serial.println ();
}
if (Serial.available())
{
Serial.read();
}
}
Once again, sorry for the English.
Has anyone tried interfacing with the A2050 chip? It is supposed to be compatible with the A2051, but I am having trouble. The motion status register is always false. Any suggestions?
sorry for the english, but i just can't find how to interface with optical mouse in other thread so I think I will post it here..
I`m using ADNS 5020E and get the same result as Magnusg..
can anyone help?
I will try to translate it into french with google, I hope you guys understand what I am asking.. thank you very much..
désolé pour l'anglais, mais je n'arrive pas à trouver comment faire l'interface avec la souris optique à fil d'autres donc je pense que je vais le poster ici ..
Je m `en utilisant 5020E ADNS et obtenir le même résultat que Magnusg ..
quelqu'un peut-il aider?
Je vais essayer de le traduire en français avec google, j'espère que vous allez comprendre ce que je demande .. je vous remercie beaucoup ..