Forum: Mikrocontroller und Digitale Elektronik Mausrad auslesen


von Marco S. (sharkman)


Lesenswert?

Hi.

Wahrscheinlch stell ich mich grade nur ein bisschen dumm an, aber in 
ermangelung eines Oszis (heute grade raus zum Update), kann ich mir die 
Signale leider nicht mehr anschauen.

Wir haben hier eine Logitech B110. Bei der wollen wir die Lichtschranke 
vom Mausrad nutzen. Die Frage ist nun, was sitzt da für ein Sensor 
drauf? Und vor allem wie schließe ich ihm an, um ihn wie auszulesen.

Besten dank

von Εrnst B. (ernst)


Lesenswert?

Vermutlich ein ==> Drehgeber <== (click)

von Marco S. (sharkman)


Lesenswert?

ja soweit komm ich auch noch, aber es muss ja ein optischer Drehgeber 
sein. Soweit ich das nachvollziehen kann, möchte ich behaupten, dass der 
eine Pin Sensors an Masse liegt, einer an Vdd und einer geht zum 
Mauschip.

von Tiertrainer (Gast)


Lesenswert?

Nimm anstelle des Mausrads ein Hamsterrad. Das hab ich auch so gemacht. 
Geht viel besser!

von Sascha W. (sascha-w)


Lesenswert?

Marco Schulze schrieb:
> ja soweit komm ich auch noch, aber es muss ja ein optischer Drehgeber
> sein. Soweit ich das nachvollziehen kann, möchte ich behaupten, dass der
> eine Pin Sensors an Masse liegt, einer an Vdd und einer geht zum
> Mauschip.
so einfach auch wieder nicht!
auf der einen Seite hat du zwei Pin's für die Lichtquelle (IR-LED),
auf der anderen Seite drei Pin's für zwei Fototransistoren
-> ein gemeinsamer (meist Emitter) und für jeden Fototransistor einen 
(Kollektor)


Sascha

von Marco S. (sharkman)


Lesenswert?

ah ok, dann macht die welt langsam wieder einen sinn, dann ist der doch 
nicht direkt auf masse gelegt. Ok, dann ahne ich langsam warum es nicht 
geht

von Malte S. (maltest)


Lesenswert?

Sorry, dass ich den Thread jetzt nochmal ausgrabe, hoffe das ist gerade 
noch im Rahmen. Ich stehe vor der selben Frage, hier mit einer Logitech 
M-BT58. Und von dem dreibeinigen Empfänger sind definitiv eins auf GND 
und eins auf +5V (na gut, +5V nach 1,5Ω).
Am dritten Pin, der zum Controller geht, scheinen bei Drehung Impulse 
gegeben zu werden, die sich möglicherweise je nach Richtung in der Länge 
unterscheiden? Leider kann ich das Signal bei "Abwärts"drehung mit 
meinem 1956er Oszi nicht auflösen, in der anderen Richtung sind die 
Impulse sehr deutlich.
Vielleich hilft es ja auch jetzt noch oder andersrum kannst Du 
vielleicht dieses Verhalten bestätigen. Evtl. handelt es sich ja um den 
selben/einen ähnlichen Sensor.

von Malte S. (maltest)


Angehängte Dateien:

Lesenswert?

...Quatsch...man sollte sich nur die Hände frei machen und das Entfernen 
der Einrastfeder ist auch praktisch, eine kontinuierliche Drehung 
hilft...

Bild #1 ist im Ruhezustand. Die Spitzen entsprechen den Pulsen, mit 
denen die LED angesteuert wird. Müsste ca. 4kHz sein, wenn mich nicht 
alles täuscht.

Bild #2 zeigt eine "Aufwärts"drehung mit Langen Impulsen am 
Sensorausgang, die jeweils einen Taktzyklus überdauern.

Bild #3 ist entsprechend die "Abwärtsdrehung" mit mäßig erkennbaren 
kurzen Impulsen auf dem gleichen Pegel wie die längeren in Bild #2.

Vielleicht könnte man einen Interrupt triggern lassen und im ISR den 
Pegel abfragen? Werde das bei Gelegenheit mal antesten.

von Malte S. (maltest)


Lesenswert?

Hach, dann antworte ich mir nochmal selbst, und wenn es nur der 
Dokumentation dient. Ich hoffe, es hilft jemandem, da die Informationen 
zu diesen Teilen im Netz echt spärlich zu sein scheinen, besonders im 
deutschsprachigen Raum. Schade eigentlich, die Dinger sind sehr 
zuverlässig und kompakt, verbrauchen nur einen GPIO-Pin. In den 
optischen Logitech-Mäusen befindet sich einer davon am Mausrad, in den 
Kugelmäusen kommen noch zwei für X/Y dazu, sind also auch in größeren 
Mengen sehr leicht zu beschaffen.

Nach anfänglicher Skepsis kam mir ein Verdacht, der sich dann hier 
bestätigt hat: http://forums.hackaday.com/viewtopic.php?f=4&t=2091 bzw. 
in der üblich blumigen Art beschrieben in dieser Patentschrift: 
http://www.google.com/patents/US6552716.pdf

Es handelt sich in der Tat nicht um einen einfachen 
doppel-Phototransistor, sondern um ein IC aus (vermutlich) vier 
Photodioden, Komparatoren, Flip-Flops und serieller I/O-Logik. Ein Puls 
an der IRED synchronisiert den Sensor, wenn dann der µC einen Takt am 
I/O-Pin liefert und anschließend hochohmig schaltet, liefert der Sensor 
die Bewegungsrichtung.

In einem Test war ich denn auch mit dieser Sequenz erfolgreich:
Zeit Aktion
 0   IRED an
 1   IRED aus
 2   Sensor als Ausgang auf 1
 3   Sensor als Ausgang auf 0
 4   Sensor als Eingang mit Pull-Up
 5   Sensor auslesen, er liefert den Wert "B"
 6   Sensor als Ausgang auf 1
 7   Sensor als Ausgang auf 0
 8   Sensor als Eingang mit Pull-Up
 9   Sensor auslesen, er liefert den Wert "A"
20   goto 0

Es gilt:
A B Bedeutung
0 0 Stillstand
1 0 Bewegung in Richtung A
0 1 Bewegung in Richtung B
1 1 schnelle Bewegung (soll wohl heißen in der zuletzt gemeldeten)

ein Zeitschritt = 12,5µS, so dass der Gesamtzyklus mit 4 kHz läuft. 
Timing etc. sind sicherlich optimierungsfähig, aber das hebe ich mir für 
später auf.

von Martin S. (der_nachbauer)


Lesenswert?

Den HaD-Thread, den Du da ausgegraben hast, hatte ich seinerzeit mal 
gestartet. Habe das ganze irgendwann einmal mangels Zeit aufgegeben.

Würde mich sehr freuen, wenn Du diese Arbeit fortführen und ggf. sogar 
in brauchbaren Sourcen zusammenfassen würdest.

Erst mal toi, toi toi !

Gruss, Martin

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.