Forum: PC-Programmierung Optische USB Maus als (Drehzahl-) Sensor


von Franz (Gast)


Lesenswert?

Ich möchte eine optische USB-Maus als Drehzahlsensor einsetzen.

Es stellt sich daher die Frage, wie man zwei Mäuse an einem System 
(Linux) betreiben kann, aber nur eine für das GUI benutzt wird. Kann man 
die Maus nach ID o.Ä. in die X-Konfiguration einbinden, oder ist die 
Zuordnung anderweitig möglich?

Als nächstes wäre zu klären, wie und welche Mausdaten man bekommen kann. 
Welche Schnittstelle bietet der USB/Maustreiber? Gibt es evtl. auch die 
Information, dass die Maus den Untergrund nicht erkennen kann (Maus in 
der Luft)? Damit könnte eine weitere Aufgabe gelöst werden.

Da die Maus lediglich eine Relativbewegung meldet, wäre außerdem noch 
ein zusätzlicher Impuls pro Umdrehung wünschenswert. Hat schonmal jemand 
versucht die IR-Sensoren des Mausrads als Reflextaster zu verwenden?

Wenn nur einer der Sensoren benutzt wird sollte doch aus dem 
Quadratursignal bei einer Flanke abwechselnd ein "rauf" und "runter" 
gemeldet werden?

Die Tasten der Maus ließen sich auch wunderbar in meiner Anwendung 
verwenden. Gibt es zufällig Mäuse, die auch Ausgänge haben, die 
zweckentfremded werden können (z.B. schaltbare LED Beleuchtung)?

von gast (Gast)


Lesenswert?

ich benutze zwei HDNS2000 Chips von Agilent. Die sind schon etwas älter 
und wahrscheinlich nicht mehr in aktuellen Mäusen drin. Als Eingänge 
verwende ich eine I/O-Karte im IDE-Bus (Adidata, auch schon älter), bei 
der ein Treiber für Linux mitgeliefert wurde, den man sich anpassen 
konnte.
Wenn der Sensor den Untergrund nicht erkennt, gibt's kein Signal. Es 
lohnt sich, ein wenig mit Linsen vor der Optik des Chips zu 
experimentieren, dann kann die Struktur, die du abtastest auch mal ein 
paar mm vom Chip entfernt sein und es geht trotzdem noch.
Was du mit 'Relativbewegung', und mit dem 'Zusätzlichen Impuls pro 
Umdrehung' meinst, habe ich nicht ganz begriffen. Optische Mäuse haben 
kein Rad eingebaut, dementsprechend gibt es auch keine Umdrehung. Die 
Encodierung der Bewegung - inclusive der Richtung - erfolgt genau wie 
bei Kugelmäusen (die haben ein Rad, auf das die Kugelbewegung übertragen 
wird) - im Gray-Code. Wie das funktioniert, steht hier: 
http://www.mikrocontroller.net/articles/Drehgeber

von gast (Gast)


Lesenswert?

... jetzt kapier' ich: Mit 'Drehzahl' meinst du die Achse, deren 
Umdrehungsgeschwindigkeit du messen willst ... sorry, bin eben völlig 
auf dem Schlauch gestanden. Ich schätze, diesen zusätzlichen Impuls 
kannst du dir nicht aus der Maus holen. Die Optik-Mäuse machen einen 
Pixelbasierten Bildvergleich in x- und y- Richtung, daher ist denen 
wurscht, ob sie auf eine rotierende Achse schauen oder auf eine 
Tischplatte ...

von Franz (Gast)


Lesenswert?

Hallo,

ich meinte

> die IR-Sensoren des *Mausrads*

Man kann natürlich über den Umfang und die zurückgegebenen Daten auch 
eine Drehzahl berechnen, aber ein zusätzlicher Impuls pro Umdrehung wäre 
wünschenswert.

Ansonsten muss ich mich wohl ins HID Protokoll einarbeiten. Aber 
wahrscheinlich hast Du recht, die Information, dass keine Erkennung mehr 
möglich ist (LED wird dunkler, wenn Maus nicht auf dem Tisch) wid wohl 
über USB nicht zur Verfügung stehen.

Klar kann man die Sesoren auch direkt benutzen, aber so ist die IO-Karte 
für 5 Euro schon dabei, wenn man einfach eine Maus benutzen könnte..

von thomas (Gast)


Lesenswert?

Ich glaube, das wird prinzipiell nichts.
mach mal folgenden Versuch.

nimm deine Tastatur als anschlagkante, leg deine Maus dran und merk dir 
die Cursorposition. bewege deine Maus von der kante weg und wieder ran 
(mehrmals)
die Cursorposition kommt nicht mehr in die Ausgangsstellung zurück. es 
werden einfach viele Impulse verschluckt. Als Weg oder Drehzahlmesser 
vollig ungeeignet.

mfg
Thomas

von Franz (Gast)


Lesenswert?

Ist mir klar, daher auch der Wunsch nach dem zusätzlichen Impuls/U.

von Chris W. (squid1356)


Lesenswert?

ein bekannter von mir hat einmal eine diplomarbeit zu dem thema 
geschrieben.
es ging um die umdrehungsgeschwindigkeit von rotierenden scheiben 
(einfach gesagt)

bei ihm hat es damals funktioniert, deshalb würde ich prinzipiell sagen: 
das müsste gehn!

er hat damals die werte in labview ausgewertet.

maussensoren arbeiten übrigens mit dem spi protokoll. µC anbingung wäre 
hier denkbar.

gruß
Christoph

von Marc (gierig) Benutzerseite


Lesenswert?

thomas schrieb:
> nimm deine Tastatur als anschlagkante, leg deine Maus dran und merk dir
> die Cursorposition. bewege deine Maus von der kante weg und wieder ran
> (mehrmals)
> die Cursorposition kommt nicht mehr in die Ausgangsstellung zurück. es
> werden einfach viele Impulse verschluckt. Als Weg oder Drehzahlmesser
> vollig ungeeignet.

Was einzig und alleine am 08/15 Maus Treiber liegt / Sensor Auslese
Hardware in der Maus Liegt. Wichtigstes Stichworte wäre hier die
"Maus Beschleunigung" Einstellungen des OS.

Der nackte Sensor wie der a2610 machen 400CPI bis max. 12inch in der
Sekunde und das zuverlässig. Du musst nur schnell genug die Daten 
auslesen.

von Rolf Magnus (Gast)


Lesenswert?

thomas schrieb:
> Ich glaube, das wird prinzipiell nichts.
> mach mal folgenden Versuch.
>
> nimm deine Tastatur als anschlagkante, leg deine Maus dran und merk dir
> die Cursorposition. bewege deine Maus von der kante weg und wieder ran
> (mehrmals)
> die Cursorposition kommt nicht mehr in die Ausgangsstellung zurück.

Das liegt mitunter aber an dieser unsäglichen "Mausbeschleunigung", bei 
der die Empfindlichkeit abhängig von der Geschwindigkeit variiert wird. 
Ohne die sieht das schon anders aus.

von Reinhard Kern (Gast)


Lesenswert?

Marc D. schrieb:
> Der nackte Sensor wie der a2610 machen 400CPI bis max. 12inch in der
> Sekunde und das zuverlässig.

Damit misst man aber nur den zurückgelegten Weg, die Drehzahl muss man 
dann rechnen, und jeder Fehler bei der Wegmessung und beim Durchmesser 
geht in das Ergebnis ein. Ausserdem muss eine geignete Struktur 
vorliegen, mit einer spiegelblank polierten Achse geht das nicht. Darum 
muss man schon mal die Frage nach der Sinnhaftigkeit stellen: eine 
einfache Reflexlichtschranke und ein Strich auf der Achse lösen das 
Problem weitaus einfacher und zuverlässiger.

BTW es dürfte nicht so einfach sein, bei einem Ausfall nach Jahren die 
gleiche Maus als Ersatz zu bekommen.

Gruss Reinhard

von Quak (Gast)


Lesenswert?

Ist das hier noch das Mikrocontroller-Forum? Statt eine Maus zu 
vergewaltigen, koennte man einen kleinen Arduino nehmen, einen 
Drehgeber, ein paar LED und fertig. Ohne viele Probleme mit 
zweckentfremdeter Hard & Software...

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.