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.
Ich habe mich schon eine Weile gefragt, danke für die Nachfrage!
mskfisher
3
@whoever downvoted this - kannst du zaf wenigstens sagen, warum du das getan hast? Es ist eine völlig vernünftige Frage
stevenvh
Antworten:
36
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. 210
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 von 0111(7) nach 1000(8). Wenn das Bit ganz links etwas schneller ist als die anderen, sehen Sie für einen Moment 1111(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−
Frage: Dieser optische Zweikanal-Encoder kann für Position und Geschwindigkeit verwendet werden. Was ist, wenn Sie die Gesamtentfernung kennen müssen? Was ist zum Beispiel, wenn Sie das Gerät ein paarmal gedreht, ausgeschaltet, später wieder eingeschaltet und ein paarmal gedreht haben? Sicher, Sie könnten die Entfernung zum nichtflüchtigen Speicher jedes Mal aufzeichnen, aber gibt es eine mechanische Möglichkeit, dieses Problem zu lösen? Ich denke in Richtung eines geschickt platzierten dritten Kanals ... aber ich kann mir nichts einfallen lassen.
NickHalden
@stevenvh - Sie arbeiten daran , die URLs werden vom Standard i.imgur.comauf geändert stack.imgur.com.
Kevin Vermeer
@stevenvh Hm, ich frage mich, ob jemand versucht hat, DeBruijn Sequences anstelle von Gray Code zu verwenden ...
NickHalden
1
@stevenvh in Ordnung, im Grunde gibt es zwei Empfänger in einer Einheit untergebracht. Vielen Dank.
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)210
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 .
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
quelle
i.imgur.com
auf geändertstack.imgur.com
.