Hallo , Ich bin grade an einem Projekt involviert, wo ich aus einem Bewegungssensor, welches ich von einer Maus rausgeschraucht habe, auslesen. Dabei soll der Sensor, die Geschwindigkeit messen und per Mikrorechner(Audiono Leonardo) verarbeiten. Ich wollte dies per SPI realisieren. Folgendes Problem: Ich habe eine USB Maus mit einem S5008 Chip. Zu diesem Chip habe ich kein Datenblatt gefunden. Kann ich durch USB die Daten auslesen, ohne Linux Kenntnisse zu haben. Ich besitze lediglich VisualBasic, C/C++ und Matlab kennisse.
HP M. schrieb: > Ich wollte dies per SPI realisieren. Ist in der Maus mehr drin als nur dieser eine "S5008"? Wenn nein: Dann kommst Du mit SPI zu keinem Ziel, denn der Chip ist ein USB-Gerät. Das kannst Du nicht an Deinen Arduino anschließen (außer mit einem USB-Host-Shield, und das ist dann einiges an Programmieraufwand). Einfacher dürfte es sein, eine Maus zu besorgen, die man an einem PS/2-Anschluss betreiben kann. Das dafür nötige Protokoll kann man recht problemlos mit einem Arduino erzeugen.
Neben der Optik und paar Widerständen und Kondensatoren ist nur der Chip vorhanden. Was genau ist ein PS/2??
HP M. schrieb: > Ich habe eine USB Maus mit einem S5008 Chip. Zu diesem Chip habe ich > kein Datenblatt gefunden. Ich wette der ist kompatibel mit irgendeinem ADNS-Typ. Wieso nimmst du nicht einfach einen ADNS... ? Sind in jeder Billigts-Maus drin und den Arduino-Sketch bekommst du quasi per copy/paste auf deinen Leonardo > Kann ich durch USB die Daten auslesen, ohne > Linux Kenntnisse zu haben. > Ich besitze lediglich VisualBasic, C/C++ und Matlab kennisse. Klar kannst du die Maus-Signale unter Linux auslesen. Unter Ubuntu 16.04 z.B. mit
1 | sudo cat /dev/input/mouse0 |
Oder ähnlich. Das kannst du dann z.B. in eine fifo pipen oder was auch immer.
:
Bearbeitet durch User
HP M. schrieb: > Neben der Optik und paar Widerständen und Kondensatoren ist nur der Chip > vorhanden. Zeig mal ein Foto. > Was genau ist ein PS/2?? Ach komm.
In welcher Mais z.B. Habe heute versucht aus Datenblätter den Chip rauszusuchen, eher unmöglich. Kannst du eine Maus empfehlen?
Rufus Τ. F. schrieb: > Wenn nein: Dann kommst Du mit SPI zu keinem Ziel, denn der Chip ist ein > USB-Gerät. Ach sorry, du hast natürlich Recht. Dann wird das wohl kein ADNS-Typ sein.
HP M. schrieb: > Kannst du eine Maus empfehlen? Eine Maus direkt empfehlen kann ich nicht. Ich habe eine Kiste voll ausrangierter Mäuse aus einem Großraumbüro gehabt. Das waren alles Logitech-Billig-Mäuse. Ich war da scharf auf den ADNS2610. Es gibt aber auch andere/bessere ADNS-Typen. Google mal, da findest du bestimmt Modelle.
Wenn ich ein RS/2 Adapter verwende, würde das zur Signalverlust führen? Oder würde das richtig arbeiten?
Habe heute mindestens 6h gegooglt. ADNS 6000 wäre eig das Chip, was ich bräuchte, aber in welcher Maus es eingebaut ist, kann ich leider nicht rausfinden
HP M. schrieb: > Das ist das Innere der Maus... Und wo siehst du da die Typen-Bezeichnung? Sieht jedenfalls aus wie ein ADNS. Allerdings sitzt in ADNS-Mäusen noch ein IC, welches USB macht. Was ist denn das für eine Maus? Hersteller/Typ?
Das war eine Maus von HP, aber den genauen Type kann ich jetzt nicht mehr errinern. Die Maus liegt im Büro, deswegen.
Wie so üblich: Zu sparsam mit Informationen! Maus mit Balla-Balla? Optische Maus? Ganze Maus oder Teil (Protokoll am Kabel, Lichtschranke)? USB-Teil oder PS/2? Letzteres erklären Dir Fräulein Bing oder auch Herr Google. Falls beide nicht verzogen sind. Kannst Du aber auch für Dich behalten.
Sebastian S. schrieb: > Maus mit Balla-Balla? > Optische Maus? Das Bild zeigt definitiv einen optischen Sensor. Er sieht sehr nach ADNS aus. Auch diese versetzten Pin-Reihen sind da absolut gängig. Ist PS/2 SPI? Dann wette ich, dass es keine USB-Maus sondern eine PS/2-Maus ist und der Sensor ein ADNS.
Md M. schrieb: > Ist PS/2 SPI? Nein. Aber was PS/2 ist, kannst Du mit wenigen Sekunden Aufwand selbst herausfinden.
Rufus Τ. F. schrieb: > Nein. Aber was PS/2 ist, kannst Du mit wenigen Sekunden Aufwand selbst > herausfinden. Könnte ich. So sehr interessiert es mich dann aber doch nicht, dass ich dafür einen ganzen Wikipedia-Artikel durchlese. War eher als Anregung gedacht für den, den es interessieren könnte. Ich bin auch nicht wirklich davon ausgegangen, ich wollte eigentlich eher bekräftigen, dass ich das aus einem Bauchgefühl heraus für einen dieser Avargo-Chips halte, auch wenn da kein weiteres IC in der Maus ist.
:
Bearbeitet durch User
HP M. schrieb: > Kannst du eine Maus empfehlen? Such mal bei Ebay nach defekten Mäusen (oft 1Euro+ 4-5Euro Versand), schau Dir die Beschreibung an und such dann nach den Maustypen im Netz. Da findest Du dann idR, welcher Sensortyp verbaut wurde. Ich hatte mal vor Jahren eine Liste mit Mäusen/Sensoren, vlt. findest Du ja eine vergleichbare.
Sowohl eine Logitech Maus PS/2 Maus als auch eine HP PS/2 Maus, die ich gerade offen hatte, enthielten beide den ADNS2620 Sensor mit extra MC für die Anbindung an PS/2. Die Logitech müsste die hier gewesen sein: http://www.ebay.de/itm/Logitech-original-M-SBF90-einfache-PS-2-optische-Maus-weiss-unbenutzt-/391733940472 ODer auch die hier: http://www.ebay.de/itm/Logitech-Optical-Mouse-30-Stuck-Optische-Maus-M-SBF96-PS-2-Kabelgebunden-/262921782987
Dass einfachste wäre wohl noch ein paar Nager zu schlachten und den Sensor zu finden den man einfach an den Arduino tüddeln kann und funzt. Eine Logitech RX250 sollte passen - angeblich ist da ein A5020 drin und hier gibts auch ne anleitung dazu: http://strofoland.com/arduino-projects/reading-a5020-optical-sensor-using-arduino-part2/
Bastler schrieb: > Eine Logitech RX250 sollte passen - angeblich ist da ein A5020 drin Bestätige. Habe eine offen vor mir liegen. Aus z.B. der Logitech M-SBF96 habe ich den ADNS2610.
HP M. schrieb: > Das ist das Innere der Maus... Könnte der Avago ADNS-2700 sein: https://www.broadcom.com/news/press-release/adns-2700
Hallo, hatten sowas mal gemacht hier im Institut mit Arduino. Muss mal sehen wo die Software ist.... Ist ein Wegmesser geworden. Auch mit den ADNS Chips. Ich habe da auch noch welche. Muss nur erst suchen wenn interesse besteht. Bernd
Hallo Im Computerclub 2 gabe es mal so ein Projekt, indem mit einem AVR ein Maussensor ausgelesen wurde. Geht ziemlich gut weil angeblich in den älterne Mäusen meistens der gleiche Sensor verbaut wurde. Gruss
Ich kann auch die ADNSxxxx empfehlen. Ich habe den ADNS3090 für Optical-Flow-Messungen verwendet. Aber es kommt immer auf die Anwendung an. Die Programmierung war ein bisschen tricky. Der Bus wird SPI sein. Schau mal bei Alibaba, da bekommste solche ICs hinterhergeschmissen. Achte aber auch auf die richtige LED-Wellenlänge, da i.d.R. der CMOS hier am emfindlichsten reagiert. Auch die Linse sollte nicht unterschätzt werden. Gruß Daniel
:
Bearbeitet durch User
Daniel V. schrieb: > Die Programmierung war ein bisschen tricky. Lässt sich (für Arduino) auf das hier runterbechen:
1 | byte opticalRead(byte address) |
2 | {
|
3 | pinMode (SDIO, OUTPUT); |
4 | for (byte i = 128; i > 0 ; i >>= 1) |
5 | {
|
6 | digitalWrite (SCLK, LOW); |
7 | delayMicroseconds(10); |
8 | digitalWrite (SDIO, (address & i) != 0 ? HIGH : LOW); |
9 | delayMicroseconds(10); |
10 | digitalWrite (SCLK, HIGH); |
11 | delayMicroseconds(10); |
12 | }
|
13 | delayMicroseconds(120); |
14 | pinMode (SDIO, INPUT); |
15 | byte res = 0; |
16 | for (byte i = 128; i > 0 ; i >>= 1) |
17 | {
|
18 | digitalWrite (SCLK, LOW); |
19 | delayMicroseconds(10); |
20 | digitalWrite (SCLK, HIGH); |
21 | delayMicroseconds(10); |
22 | if ( digitalRead (SDIO) == HIGH ) |
23 | {
|
24 | res |= i; |
25 | }
|
26 | }
|
27 | delayMicroseconds(100); |
28 | return res; |
29 | }
|
30 | |
31 | void opticalWrite(byte address, byte data) |
32 | {
|
33 | address |= 0x80; |
34 | pinMode (SDIO, OUTPUT); |
35 | for (byte i = 128; i > 0 ; i >>= 1) |
36 | {
|
37 | digitalWrite (SCLK, LOW); |
38 | delayMicroseconds(10); |
39 | digitalWrite (SDIO, (address & i) != 0 ? HIGH : LOW); |
40 | delayMicroseconds(10); |
41 | digitalWrite (SCLK, HIGH); |
42 | delayMicroseconds(10); |
43 | }
|
44 | delayMicroseconds(120); |
45 | for (byte i = 128; i > 0 ; i >>= 1) |
46 | {
|
47 | digitalWrite (SCLK, LOW); |
48 | delayMicroseconds(10); |
49 | digitalWrite (SDIO, (data & i) != 0 ? HIGH : LOW); |
50 | delayMicroseconds(10); |
51 | digitalWrite (SCLK, HIGH); |
52 | delayMicroseconds(10); |
53 | }
|
54 | delayMicroseconds(100); |
55 | }
|
56 | |
57 | void opticalInit() |
58 | {
|
59 | pinMode(SCLK, OUTPUT); |
60 | pinMode(SDIO, OUTPUT); |
61 | digitalWrite(SCLK, HIGH); |
62 | delayMicroseconds(5); |
63 | digitalWrite(SCLK, LOW); |
64 | delayMicroseconds(1); |
65 | digitalWrite(SCLK, HIGH); |
66 | delay(1025); |
67 | opticalWrite(0x00, 0x01); |
68 | // delay(3000);
|
69 | }
|
Pins für SDIO und SCLK definieren und fertig. Die entsprechenden Adressen steehn ja im Datenblatt. Beim ADNS2610 für den optischen Flow z.B.
1 | opticalRead(0x3); // X |
2 | opticalRead(0x2); // Y |
Einen kompletten Frame zu holen ist etwas aufwändiger, weil man da synchronisieren muss. > Auch die Linse sollte nicht > unterschätzt werden. Es gibt die Teile auch als fix und fertige Moduel mit brauchbarer Optik antstat diese HDNS-Linse, die in den Mäusen verwendet wird. Ich persönlich habe da einfach ein 12mm-Objektiv vorgesetzt, um den Fokus auf einen Abstand von einigen cm zu erhöhen.
Md M. schrieb: > Lässt sich (für Arduino) auf das hier runterbechen: Naja ich habe es auf einem STM32 gemacht, mit der SPL Md M. schrieb: > Einen kompletten Frame zu holen ist etwas aufwändiger, weil man da > synchronisieren muss. Ja, da habe ich doch ein paar Tage dran gesessen. Hier im Forum wurde mir aber gut geholfen ;) Md M. schrieb: > Es gibt die Teile auch als fix und fertige Moduel mit brauchbarer Optik > antstat diese HDNS-Linse, die in den Mäusen verwendet wird. Ich > persönlich habe da einfach ein 12mm-Objektiv vorgesetzt, um den Fokus > auf einen Abstand von einigen cm zu erhöhen. Ja, gerade für Drohnen gibt es die ADNS3090 mit veränderter Optik. Mir war aber der Nahbereich sehr wichtig und vor allem die Frames. Gruß Daniel
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.