mikrocontroller.net

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


Autor: Franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)?

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ...

Autor: Franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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..

Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Franz (Gast)
Datum:

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

Autor: Chris W. (squid1356)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Marc D. (gierig) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Reinhard Kern (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Quak (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.