Forum: Mikrocontroller und Digitale Elektronik Funktionsweise optische Maus


von Thomas H. (Gast)


Lesenswert?

Hallo,

hat jemand einen Tipp, wo man etwas mehr ueber die Funktionsweise 
optische Mäuse erfährt?

Mir ist klar, dass dort Bilder aufgenommen werden und durch Vergleich 
eine Bewegung detektiert werden kann. Mich interessieren Algorithmen und 
technische Details. Beim Googeln habe ich nichts brauchbares gefunden.

Danke und ade,

Thomas H.

von Markus Kaufmann (Gast)


Lesenswert?

Wenn man bei google nach "Funktionsweise optische Maus" sucht, dann 
stößt man u.a. auf diesen Artikel,
http://www.de.tomshardware.com/consumer/20030131/logitech-mx-01.html
in dem u.a. Auflösung und Geschwindigkeit der Bildsensoren erwähnt 
werden. Außerdem wird da als Chiphersteller Agilent erwähnt. Suche bei 
Agilent nach "optical mice" ergibt u.a. das Whitepaper 
http://literature.agilent.com/litweb/pdf/5988-4554EN.pdf
und außerdem ein Datenblatt zu so einem Sensor: 
http://literature.agilent.com/litweb/pdf/5988-9164EN.pdf

bye
  Markus

von Thomas H. (Gast)


Lesenswert?

Hallo Markus,

das ist so eine Sache mit dem "richtigen" Suchen. Du hast mir auf jeden 
Fall sehr weitergeholfen.

Thomas H.

von Silverscene (Gast)


Lesenswert?

und mir grad auch...vielen dank!


btw: thread found with yahoo...bei google war nur werbung

von Matte (Gast)


Lesenswert?

Und mir auch - endlich mal jemand, der nicht immer nur dumm schreibt:
"Such doch in google".
Vielen Dank!

von Florian Scharf (Gast)


Lesenswert?

Hi .. ich hab mal in ner Projektarbeit an der Uni mit solchen Chips
rumgespielt. Die von Agilent haben je zwei x/y Ausgänge, bei denen ein
inkrementelles Signal anliegt, je nachdem wohin geschoben wird. Also ne
integrierte Standalone Lösung zum fertigen verbasteln. Anders wirds in
den Mäusen auch nicht mehr gemacht, das passiert alles auf dem Chip.

der Flo

von Thomas Winkel (Gast)


Lesenswert?

Tach die Damen!
Wenn du dich für die Algorithmen interessierst solltest du dich mal mit
der "Kreuzkorrelation" beschäftigen:
http://de.wikipedia.org/wiki/Korrelation
Sehr interessantes Thema!

Gute Nacht,
Thomas

von Stefan R. (Gast)


Lesenswert?

Hallo,

ich hab mir so nen Algorithmus mal rein theoretisch überlegt:
Gegeben ist ein ständig aktualisiertes Bild der "Kamera" von z.B.
16x16 Pixel, wobei jedes Pixel z.B. 8Bit-genau gespeichert wird
(Helligkeit).
Wir nehmen an, dass durch eine genügend hohe Abtastfrequenz das
jeweilige Folgebild nur max. 2 Pixel nach rechts/links/oben/unten
verschoben werden kann.
Wir speichern immer das letzte Bild als Referenz.
Wir vergleichen bei jeder Abstastung das Bild mit der Referenz, mit der
Referenz um 1 Pixel nach links verschoben, mit der Referenz um 2 Pixel
nach links verschoben, mit der Referenz um 1 Pixel nach links und 1
Pixel nach oben usw (bei einer maximalen Verschiebung um 2 Pixel in
alle möglichen Richtungen sind das dann insgesamt 16 Vergleiche).
Für den Vergleich wird einfach pixelweise der Betrag der
Helligkeitsdifferenz genommen und dieser aufaddiert.
Der Vergleich mit der kleinsten Summe ist dann der
"wahrscheinlichste". Nun muss nur noch ein X/Y-Zähler entsprechend
inkrementiert/dekrementiert werden und das Signal ausgegeben werden.

Stefan

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Gratulation, du hast soeben die Kreuzkorrelation erfunden ;)

von Patrick Brinkers (Gast)


Lesenswert?

hallo!!
ich habe ein problem, mit der maus! D.h. eigentlich.
ich Arbeite in einer firma die kunstoff rohre herstellt.
so weit so gut! nur wir messen die länge bzw. die geschwindigkeit
mit einem inkrementengeber. jetzt sind mein meister und ich (wegen der
genauichkeit) auf die idee gekommen eine optische maus auf das rohr
zulegen! hört sich dumm an ist aber wen es klappt gut und günstigt! wir
müssten nur wissen wie das signal für die bewegung aus der maus kommt,
d.h. bis ins kable!
ich würde mich sehr über eine andwort freuen!
Danke schon mal an jeden der mir (und) helfen kann!

von Thomas O. (Gast)


Lesenswert?

Hallo,

dieses System wird übrigens auch in der Formel 1 eingesetzt, hier wird
der Querversatz, Beschleunigung, Verzögerung und vieles mehr mit
gemessen. Habe mal auf ner Messe das System begutachtet und mal in so
nem Fahrzeug mitgefahren das damit ausgerüstet war.Als Leuchtmittel kam
da eine normale Autoglühbirne zum Einsatz allerdings mit einer Optik die
das Licht etwas gebündelt auf die Straße warf, gab also nen Lichtkegel
mit ca. 15cm Durchmesser. Auflösung laut Mitarbeiter geringe 300x300
Punkte aber eien sehr hohe Abtastrate.
http://people.freenet.de/Thomasoly/Korrelation/Korrelation1.JPG
http://people.freenet.de/Thomasoly/Korrelation/Korrelation2.JPG

von Johannes Raschke (Gast)


Lesenswert?

Hi, Patrick,

die Mäuse haben doch meist einen Adapter auf PS/2 dabei. Das Protokoll
dafür wirst Du sicher leicht im Netz finden! Die Funktionsweise der
Maus ist dafür vollkommen egal...

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

Na da werd ich mir doch an mein Auto gleich mal eine Maus dran schrauben
als "Pfadfinder". Dann noch im Navi, das Ziel einprogrammiert, und
schon kann ich mich auf die Rückbank setzen, udn der Wagen fährt
alleine sonstewo hin

Ne, aber mal im Ernst: kann man das irgendwie in der "Robotik"
verwursten mit den Chips bzw. dem Grundprinzip der optischen Mäuse?

von Patrick Brinkers (Gast)


Lesenswert?

re. johannea raschke?
???? ich weis mit deine antwort leider nichts anzufangen, vieleicht
hast du (die anderen) mich ja falsch verstanden. also die maus soll den
weg messen. da stellt sich die frage, wen sich die maus bewegt, was
kommt für ein signal aus dem kable! das heist ich bräuchte ein
getaktetes signal bzw impulse die ich auf eine sbs legen kann, und über
mein programm in der sbs erechne ich mir dann die länge und
geschwindigeit!

ich stelle mir das halt so vor das die maus 3 anschlüsse bzw. 3 adern
hat 5V + ; 0V - ; und halt den für die impulse wen es über haubt
impulse sind?!?!

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Nein, so einfach ist das von einer Maus gelieferte Signal nicht. Die
"PS/2-Schnittstelle" ist eine synchrone serielle Schnittstelle
(besteht aus einer Takt- und einer Datenleitung) und auf dieser
Schnittstelle wird ein -je nach Maushersteller- unterschiedliches
Protokoll ausgegeben. Das sind mehrere Bytes, die einerseits relative
Bewegungsinformationen in X- und Y-Richtung enthalten und andererseits
den Zustand der Maustasten beschreiben. Wenn die Maus ein Mausrad hat,
wird auch dessen relative Bewegung ausgegeben. Die relative
Bewegungsinformation bezieht sich immer auf den vorhergehenden
Datensatz (wie weit hat sie sich seitdem bewegt), und die Maus erzeugt
immer dann einen Datensatz, wenn etwas geschieht, also eine Taste
gedrückt wird oder die Maus bewegt wird.

Für Deine Anwendung benötigst Du einen Microcontroller, der die
"PS/2-Schnittstelle" zur Verfügung stellt und das serielle Protokoll
der Maus auswertet, die für Dich unnötigen Informationen verwirft und
die anderen Daten für Dein Steuergerät aufbereitet beispielsweise an
einer seriellen Schnittstelle ausgibt.

Betr. "Adapter auf PS/2": Einige verkaufte Mäuse sind "bilingual",
sie können sowohl an einer USB-Schnittstelle betrieben werden als auch
mit einem einfachen Adapter an einer "PS/2"-Schnittstelle. Das
bedeutet aber nicht, daß das mit beliebigen USB-Mäusen funktioniert!
Besorge Dir daher besser eine Maus, die von vornherein nur eine
"PS/2"-Maus und keine USB-Maus ist.

Es ist zwar theoretisch möglich, mit einem Microcontroller auch eine
USB-Maus anszusteuern (Forensuche: "verrückter Japaner"), das aber
ist extrem aufwendig ...

Wie auch immer: Viel Erfolg!

von Sssssss (Gast)


Lesenswert?

Hi!

Du könntest aber auch die Signale direkt in der Maus abgreifen.
Da ist quasi nur ein IC drin das die otpische auswertung macht.
Das liefert direkt X und Y QEP (?) Signal.

Sollte einfach auszuwerten sein ;)

Meist sind Sensoren von Agilent drin, evtl findest nen datasheet.
Sonst einfach messen, sollten leicht zu erkennen sein mit nem Oszi ;)

von Johannes Raschke (Gast)


Lesenswert?

@Rufus
Schöner hätte ich es auch nicht ausdrücken können. Vielleicht hilft
Patrick auch dieser Thread weiter:
http://www.mikrocontroller.net/forum/read-1-83132.html

Gruß

Johannes

von Patrick Brinkers (Gast)


Lesenswert?

danke alle die sich um infos bemüht haben. ein wunder bares forum wo mal
echte kenner einem helfen, und nicht müll gepostet wird!!!!!
DAnke noch mal an alle!!!!!!!

von Dman (Gast)


Lesenswert?

@Patrick
Aber vergiss nicht, dass die Mäuse (durch die Funktionsweise des
Vergleichsalgorithmus) eine bedingte maximale Geschwindigkeit haben,
die Du messen kannst. Du müsstest anhand eines Datasheets bestimmen,
wie schnell das Rohr denn überhaupt sein darf, damit die Maus überhaupt
Werte aufnimmt, ausserdem wirst Du wahrscheinlich die Maus nicht 100%
positionieren können, so dass u.U. nicht 100% der Bewegung in X oder Y
Richtung des Maussensors stattfinden, sondern verteilt, also z.B. 95% X
und 5% Y richtung. In dem Fall sollte Dein MC ein wenig Vektorrechnung
drauf haben ;) Weisst ja, Wurzel aus VX² + VY².
Grüße

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
Noch kein Account? Hier anmelden.