Für jede Achse einer mechanischen (Kugel-) Maus gibt es ein IR-Sender- und -Empfängerpaar mit einem Rad, das aussieht, als hätte es nur einfache Schlitze.
Wie berechnet sich die Richtung?
Für jede Achse einer mechanischen (Kugel-) Maus gibt es ein IR-Sender- und -Empfängerpaar mit einem Rad, das aussieht, als hätte es nur einfache Schlitze.
Wie berechnet sich die Richtung?
Antworten:
Es gibt nicht nur ein IR-Sender / Empfänger-Paar, es gibt zwei davon. Zwischen Sender und Empfänger befindet sich ein Schlitzrad, das beim Drehen eine Impulsfolge im Empfänger verursacht. (Das Licht vom Sender ist blockiert, kann passieren, wieder blockiert und so weiter.)
Der Trick ist, wie die beiden Empfänger platziert werden, und zwar in Quadratur.
Dies bedeutet, dass die Impulse eines Empfängers den Impulsen des anderen Empfängers um einige Grad (idealerweise 90 °) vorausgehen. Wenn das Rad in die andere Richtung dreht, hinken die gleichen Impulse den anderen nach.
Beachten Sie, dass bei einer ansteigenden Flanke von Kanal A der B-Kanal beim Drehen in die eine Richtung auf einem hohen Pegel und beim Drehen in die andere Richtung auf einem niedrigen Pegel liegt.
edit (über absolute Encoder)
Ich war nicht ganz zufrieden mit meiner Antwort auf JGords Kommentar (einige Ungenauigkeiten), daher diese Wiederholung.
Das oben beschriebene System ist als Inkremental-Encoder bekannt, da es relative Änderungen von einer Position zur nächsten erkennt. Während einer vollen Umdrehung werden die Codes mehrmals wiederholt, sodass Sie Ihre absolute Position nicht einfach anhand des Codes erkennen können.
Um dies zu überwinden, gibt es Absolutwertgeber . Anstelle von zwei Quadraturkanälen haben sie viel mehr Kanäle, wodurch für jede Rotationsposition ein eindeutiges Muster erstellt wird. Ein 10-Kanal-Encoder kann oder 1024 verschiedene Positionen unterscheiden. Drehgeber in Robotern sind noch genauer.
Das spezifische Muster ist typisch für die Gray-Codierung .
Über Gray-Codierung
Gewöhnliche Binärdateien haben den Nachteil, dass Codeübergänge während des Übergangs fehlerhafte Codes erzeugen können. Nehmen Sie zum Beispiel den Wechsel von0111
(7) nach1000
(8). Wenn das Bit ganz links etwas schneller ist als die anderen, sehen Sie für einen Moment1111
(15), was völlig ausfällt.
Gray-Code überwindet dies, indem er die Codes so anordnet, dass sich jeweils nur 1 Bit ändert.
Absolute Encoder helfen Ihnen jedoch nicht, die absolute Mausposition zu finden, da sich das Rad mehrmals dreht, während Sie die Maus bewegen. Das "einzigartige" Muster wiederholt sich alle paar mm und ist doch nicht so einzigartig. Außerdem ist es immer möglich, die Maus zu bewegen, wenn der Computer ausgeschaltet ist, oder Sie können die Maus anheben und etwas weiter nach unten legen. Beide Aktionen bleiben unentdeckt.
Weiterführende Literatur
"Control Shaft Encoder" Circuit Cellar Ausgabe 250, Mai 2011, S. 28 ff
i.imgur.com
auf geändert stack.imgur.com
.