Die optische Maus
Immer wenn ich eine defekte Computer-Maus in die Finger bekomme,
schraube ich sie auf und sinniere, was man damit alles anfangen
könnte. Kürzlich war es wieder so weit. Eine optische
USB-Maus mit angefressenem Kabel kam in meine Reichweite. Das
Innenleben ist sehr spartanisch. Es gibt hier einen USB-Controller und
den optischen Maus-Sensor OM02. Etwas Suche im Internet zeigte, dass
der Sender ein Abkömmling des
Agilent-Sensors ADNS-2051 ist. Der Chip hat je zwei X- und
Y-Ausgänge,
die einen optischen Encoder wie in einer alten Maus simulieren. Das hat
für den Maus-Hersteller den Vorteil, dass er alte Maus-Chips
direkt
anschließen kann.
Etwas
rumgestochert, dann ließ sich ein kleiner Deckel lösen, und
die volle Pracht des ICs kam zum Vorschein. Mit einer Lupe kann ich
dass Sensorfeld mit 16 x 16 Pixeln erkennen. Noch mehr Fläche ist
für den DSP-Chip reserviert. Er hat ja auch einiges zu tun. Ein
Bild aus 256 Pixeln muss permanent analysiert werden, um eine
Verschiebung in X- und Y-Richtung auszumachen. Und das bei mehreren
tausend Vollbildern pro Sekunde!
Das
Kabel ließ sich reparieren. Ganz ohne die optische Linse
ließ sich die Platine am USB als Zweitmaus betrieben. Die
Maustasten funktionieren, ebenfalls das Mausrad. Der optische Sensor
arbeitet ohne Linse, aber mit der aufgesetzten Schutzkappe als
Lochkamera.
Einige
Versuche zeigen: Wenn ich die Kamera gegen das Fenster richte und etwas
bewege, dann wackelt der Mauszeiger auf dem Bildschirm. Es funktioniert
also noch ansatzweise. Auch das Herumfuchteln mit einer Taschenlampe
hat eine Wirkung. Aber lässt sich das ganze auch irgendwie
systematisch als Maus einsetzen? Ja, man braucht nur fünf Finger,
die man gespreizt in einigem Abstand von z.B. 20 cm vor dem Sensor
vorbei bewegt. Der Sensor sieht offensichtlich ein bewegtes
hell-dunkel-Schreifenmuster, der Mauszeiger kann nun systematisch
bewegt werden. Um den Zeiger kontinuierlich zu bewegen, muss die Hand
außerhalb des Sichtfeldes immer wieder an die Ausgangsposition
geführt werden, damit die erkannte Bewegung immer in die gleiche
Richtung geht.
Der Sensor eröffnet noch unendliche Möglichkeiten:
- Auswertung der X/Y-Bewegung mit einem Mikrocontroller
- Direktes Auslesen des Sensors über seine ISP-Schnittstelle
- Einsatz als Minikamera mit 256 Pixeln
Link-Hinweise von Michael Weinl
Im Zusammenhang mit Ihrem Beitrag über den Maussensor möchte ich auf
einige Seiten aufmerksam machen, die sich ebenfalls mit diesen Sensoren
befassen:
http://www.mikrocontroller.net/topic/91395
http://www.mikrocontroller.net/articles/Maussensor
http://home.comcast.net/~richardlowens/OpticalMouse/
Zur Erkennung der Bewegung wird übrigens der sog. optische Fluss
ausgewertet;
http://de.wikipedia.org/wiki/Optischer_Fluss
Ganz besonders interessant wäre sicherlich auch der PLN 2032, der wohl auf
dem Dopplereffekt und nicht auf dem optischen Fluss beruht. Leider sind für
diese Sensoren die Datenblätter nur schwerlich verfügbar.
Weitere Hinweise von Sascha Bader
Bei bestimmten Chips kann man das Bild auslesen:
http://www.bidouille.org/hack/mousecam
http://spritesmods.com/?art=mouseeye
... nnd versuchen dafür eine "Anwendung" zu finden:
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1253185032/30
An der Stelle fällt mir ein, dass ich mal gelesen habe wie jemand mit
einem geöffneten RAM-Chip Bilder aufgenommen hat. Teile der Arbeit zum 64K RAM Chip als Kamera kann man bei Google Books
einsehen:
http://books.google.de/books?id=fBuiNpYlyHcC&pg=RA1-PA20&lpg=RA1-PA20&dq=A+low-resolution+camera+system+based+on+a+64k+dynamic+RAM&source=bl&ots=9wwHyQgT_L&sig=NGJQlJrpDTsLzSBb_Ng8kLqkCc4&hl=de&ei=OSLnTYuYPIroOcTv-L0J&sa=X&oi=book_result&ct=result&resnum=3&ved=0CDIQ6AEwAg#v=onepage&q&f=false
Elektronik-Labor Bastelecke Projekte Notizen