optische Maus als Bewegungssensor

Aug 18, 2007 6 Replies

Hallo,



ich möchte eine optische Maus an mein Notebook anschließen, um mit ihr die Bewegung von Werkstücken in einer Bearbeitungsmaschine zu messen.



Aber immer wenn ich die anschließe reisst sich das OS (egal ob Windows, MacOS oder Linux) die Maus logischerweise eben als Maus "unter den Nagel".



Gibts irgend eine Möglichkeit, dieses zu unterbinden und die zusätzliche Maus nur per explizid ausgesendetem API-Call abzufragen?



Ich wollte ja eben messen und nicht meinen Mauspfeil schütteln ...



Frank


"Frank Esselbach" schrieb:

Das einzigste, was du da machen kannst, ist das Hardwareprofil zu deaktivieren.

...ob das Auslesen dann noch funktioniert weiß ich nicht. HIDs kannst du mit Windows-APIs auslesen. Im Microsoft MSDN (Coding 4 Fun) gibt es auch ein Beispiel (allerdings für die Wii Remote) dafür, das du evtl. anpassen kannst. Vorher musst du dich aber damit beschäftigen, was von der Maus eigentlich an Daten kommt. Am besten mit einem USB-Analyzer (gibt's als PC-Software). Was du für's Auslesen des HIDs unbedingt brauchst, sind die Definitionen für das Gerät.

Allerdings ist das wahrscheinlich sehr mühselig.

Einfacher ist folgendes: Die meisten optischen Mäuse verwenden die gleiche "Kamera", die an den Mauscontroller das gleiche Signal wie Drehgeber ausgeben. Weiterhin gibt es meistens ein serielles Interface, mit dem du direkt auf die Register für die Positionen (und sogar das aufgenommene Bild) zugreifen kannst. Schraub die Maus einfach mal auf und schau, welcher Chip das ist. Das passende Datenblatt dafür sollte zu finden sein.

http://www.hobbyelektronik.org Achtung: Die E-Mail-Adresse im From: ist ungültig Verwendet chris at hobbyelektronik punkt org

GNU/Linux: udev-Regeln für die USB HIDs anpassen (/etc/udev/rules.d). Bei älteres Distributionen macht das entweder devfs oder irgendwas anderes (hotplug o. ä.).

Grüße,

Björn

BOFH excuse #429: Temporal anomaly

Unter einem aktuellen Linux kein Problem. Jedes Eingabeger=C3=A4t steht als /dev/input/... separat abfragbar zur Verf=C3=BCgung.

Du musst nur X und GDM mitteilen, ausschlie=C3=9Flich die "richtige" Maus zu nutzen und kannst mit der anderen Maus anstellen was Du willst. /dev/input/mice stellt =C3=BCbrigens die kombinierten Daten aller angeschlossenen M=C3=A4use zur verf=C3=BCgung, wird also in deine= m Fall eher ungeeignet sein.

Wolfgang Draxinger

--=20 E-Mail address works, Jabber: snipped-for-privacy@jabber.org, ICQ: 134682867

Hier gibt es einige Informationen:

formatting link

Chris

Frank Esselbach schrieb:

Vor knapp 10 Jahren, als die optischen Mäuse ihren Siegeszug antraten, kam einmal die EDV-Leitung eines Leistungssportzentrums zu mir und fragte mich, mit welcher optischen Maus man die Fahrt eines Bobs im Eiskanal aufzeichnen könnte.

(Nein, ich nenne jetzt weder die Person noch das Leistungszentrum :-) )

Nachdem ich dann sagte, dass das mit einer optischen Maus definitiv nicht ginge, Eingriffe an der Bobbahn (z.B. Drahtgitter ins Eis) nicht möglich sind, sah ich nur noch die Möglichkeit mit Beschleunigungssensoren (drei lineare Achsen und auf Wunsch noch drei Rotationsachsen für Drehbewegungen) zu arbeiten. Auf die Frage, wer denn so etwas anbiete, schlug ich nur vor, das als Diplomarbeit auszuschreiben.

Würde mich mal interessieren, ob da was draus geworden ist.

Mit freundlichen Grüßen | /"\ ASCII RIBBON CAMPAIGN | Andreas Bockelmann | \ / KEIN HTML IN E-MAIL | F/V +49-3221-1143516 | X UND USENET-GRUPPEN | | / \ |

Am Sun, 19 Aug 2007 01:14:40 +0200 schrieb Frank Esselbach:

Unter Linux kannst Du die 2. Maus als XInput-Device ohne "SendCoreEvents" in xorg.conf deklarieren und diesen "SensorInput" dann per Programm abfragen. Guck Dir einfach das Programm "xinput" an.

Falls es aber wirklich nur darum geht mit dem Computer zu Steuern, wäre es wohl sinnvoller gänzlich auf X zu verzichten und direkt mit /dev/input/mouse0 zu reden.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required