PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie funktioniert Quadratur?



Corono
26.04.2010, 15:30
Hall Leute

Ich habe mich gerade dran gemacht, die ganze Sensorik von Computermäusen zu verstehen. Da mein Controller die von den Maussensoren geforderte serielle Kommunikation nicht unterstützt, müsste ich ihn über die 4 Quadraturausgänge auslesen. Ich werde aber nicht ganz schlau, wie Quadratur funktioniert und finde auch keine Hilfe im Internet. Was mir klar ist ist, wie man die Bewegungsrichtung mit den beiden Signalen auslesen kann. Wie kann ich aber auf eine Geschwindigkeit schliessen bzw auf die zurückgelegte Strecke? Das wäre nämlich das, was mich interessieren würde uned funktioniert auch, gibt ja so Mausstreckenzähler und so. Werden die Impulse einfach je nach Geschwindigkeit verzögert?

MFG Corono

PicNick
26.04.2010, 18:30
Die Sache bei Kugelmäusen geht mit 2 "inkrementalgebern" die im 90 ° durch die Kugel bewegt werden
gucke da :
http://www.rn-wissen.de/index.php/Sensorarten#Incremental-Geber
http://www.rn-wissen.de/index.php/Maussensor

i_make_it
26.04.2010, 20:12
Zum Verständniss der Strecken- und Geschwindigkeitsmessung ein Gedankenexperiment:
Du sitzt im Auto und und schaust aus dem Fenster während es auf der Autobahn fährt.
Nun zählst du mit einer Stopuhr die Zeit die vergeht zwichen zwei Leitpfosten an denen du vorbeifährst.
Und du zählst die Leitpfosten an den du während der ganzen Fahrt vorbei kommst.
Wenn du den Abstand zwichen den Leitpfosten kennst (auf Autobahnen 50Meter)
Kannst du immer zwichen zwei Leitpfosten die Geschwindigkeit messen (v=s/t) und mit der Summe der Leitpfosten an denen du vorbei gekommen bist, bekommst du die Wegstrecke (Sges= n*Sdelta).

Deine Augen sind der Fototransitor der Gabellichtschranke, Die Stopuhr ein Timer im Controller und das Zählen der Leitpfosten ist ein Counter im Controller in dem die Wegstrecke abgespeichert wird.
Das ist das das Grundprinzip.
Alles Mathe, Physik, etwas Elektronik und Programmieren.

the_muck
27.04.2010, 09:33
http://tinyurl.com/39sfpsk

6ter von oben ;) oder komm ich mach es Direkt :(


https://www.roboternetz.de/phpBB2/viewtopic.php?t=37344

Corono
27.04.2010, 09:54
Hallo Leute

Danke für die Antworten.

@i_make_it: Zu deinem Gedankenexperiment: Ist soweit vom Prinzip her verständlich. Was ich aber nicht ganz verstehe, ist das mit den "Leitpfosten". So weit ich das verstanden habe taktet der Mauschip doch mit eine konstanten Frequenz und vergleicht jeweils die erhaltenen Bilder und liest daraus die Richtung ab. Aber da habe ich ja kein Signal, wie viele Pixel ein Punkt jetzt verschoben wurde, nur in welche Richtung er verschoben wurde. Oder wird jedes Mal quasi ein Interrupt ausgelöst, wenn sich ein Pixel verschiebt?

MFG Corono

i_make_it
27.04.2010, 15:31
Das Beispiel passt auf eine mechanische Maus (Taktscheibe/Lichtschranke)

Bei optischen Mäusen gibt es verschiedene Ansätze.
Am weitesten verbreitet ist:
http://de.wikipedia.org/wiki/Optische_Maus
http://de.wikipedia.org/wiki/Optischer_Fluss
Da der Zeitinterwall kurz und die räumliche Auflösung hoch ist, ist das Schätzen relativ zu den geforderten Genauigkeiten ausreichend präzise.
Bei Lasermäusen kann noch mit interferometrie gearbeitet werden. Das kommt aber höchstens für CAD und 3D-Mäusen für VR Räume zum Einsatz.
Da die Kosten ungleich höher sind (die Auflösung auch).

Corono
28.04.2010, 11:46
Hmm, habe mir die Artikel mal durchgelesen. Das mit dem optischen Fluss wird ja wohl nichts, dass sind da übelste Differenzialgleichungen, darauf habe ich keinen Bock ;-)

Zu dem Schätzen: Finde da nciht wirklich Infos dazu, wie man das schätzt. Geht man eifnach davon aus, dass genug schnell gesamplet wird, dass die Bildpunkte jeweils nur um ein Pixel verschoben werden und daraus kann dann die Strecke berechnet werden?

Waldschrat
28.04.2010, 12:15
hmm warum, wie da drunter steht gibt es erstens die Lucas-Kanade-Methode
http://de.wikipedia.org/wiki/Lucas-Kanade-Methode
und die sieht doch machbar aus und noch ein wenig tiefer steht, dass einige bekannte Algorithmen in der OpenCV Bibliothek implementiert sind. Damit dürfte das doch machbar sein

Gruß
Waldschrat