Hallo!
Ich versuche mittels eines PICs den zurückgelegten Weg einer optischen
PS/2 Maus zu erfassen und auf einem Display auszugeben.
Die Ansteuerung des Displays habe ich fertig.
Ich kann auch mit der Maus kommunizieren. Doch ich ich habe ein Problem.
Das erste Byte der Mausdaten scheine ich richtig zu empfangen. Ich kann
per Tatsendruck auf der Maus Bits setzen.
Jetzt versuche ich die Bewegungsdaten der Maus auszuwerten, hierzu
addiere ich die empfangenen x bzw y Werte einfach auf. Dabei ergeben die
errechneten Werte aber keinen Sinn in meinen Augen. Bewege ich die Maus
nur in X Richtung, dann verändern sich x uns y Wert sehr stark und sie
werden größer und kleiner.
Hat jemand schon Erfahrung mit sowas? Hab schon ne Weile hier gestöbert
aber noch keine Plausible Antwort gefunden.
Hab meinen Code mal angehängt.
Wär super wenn mir jemand helfen könnte.
Gruß Stumpi
Viele Mäuse machen intern eine ballistische Umsetzung der
Bewegungsdaten, da hast Du dann die A..Karte wenn Du damit einen Weg
messen willst, weil je schneller sich die Maus bewegt, desto mehr
"Impulse" pro Wegstrecke erzeugt sie.
Schau mal die Datenblätter von Chips für optische Mäuse an. Avago
(früher Agilent früher HP) stellt solche her. Die wurden/werden z.T.
auch in Logitech Mäuse verbaut. Möglicherweise steht dort auch mehr
dazu, ob und wie sich das Beschleunigungsverhalten der Maus ändern
lässt.
U.a. lassen sich auch die optischen Rohdaten auslesen.
Weiter gibt es von Microchip eine uralte AppNote, um mit einem PIC einen
Mauscontroller zu realisieren. Dort dürfte sich sicher auch noch
etliches anpassen lassen.
Nein, das steht da mit Sicherheit nicht drin. Der Maussensor und der
Mauscontroller sind zwei getrennte Teile, den Mauscontroller kann Avago
nicht beeinflussen, der wird vom Hersteller der Maus gemacht.
Guido Körber schrieb:
> Nein, das steht da mit Sicherheit nicht drin. Der Maussensor und der> Mauscontroller sind zwei getrennte Teile, den Mauscontroller kann Avago> nicht beeinflussen, der wird vom Hersteller der Maus gemacht.
Aber vielleicht dem Maussensor einen eigenen Controller verpassen, in
welchem sich das dann einstellen lässt.
Bittebittebitte, Guido, sei nicht so pessimistisch.
Wo ein Wille ist, ist ein Weg...
Ich sag ja nicht, dass es nicht geht, nur so wie es beschrieben wurde
wird nix draus.
Ein ADNS2051 hat beispielsweise eine Art SPI Schnittstelle, die kann man
z.B. über einen IO-Warrior per USB ansprechen.
Hat aber den Nachteil, dass man sich die Mechanik irgendwie selber
dengeln muss, oder halt eine Maus umbauen.
Hi
Ich weiss, das das nicht direkt zum Thema gehört, aber kennt jemand eine
Liste mit den Sensoren, die in den einzelnen Mäusen verbaut sind?
MfG Spess
spess53 schrieb:
> Hi>> Ich weiss, das das nicht direkt zum Thema gehört,
Dann eröffne doch einen neuen Thread dazu.
> aber kennt jemand eine Liste mit den Sensoren, die in den einzelnen Mäusen> verbaut sind?
Wird es so wohl kaum geben, aber wir können ja anfangen:
Avago ADNS-2051 in Logitech Wheel Mouse (M/N: M-BJ58)
Viel Auswahl gibt es eh nicht auf dem Markt. Avago ist der Patentinhaber
für die originale Technik, einziger Lizenznehmer ist ST, die haben aber
wenig auf dem Markt. Bleibt nur noch Cypress, die eine andere Technik
verwenden und noch nicht sehr lange in diesem Markt sind.
Im Endeffekt findet man in den meisten Mäusen einen Avago.
Ich habe auf einer früheren Windows-Version mal ein Programm gehabt, das
die vom Mauszeiger auf dem Bildschirm aufsummierte und anzeigte. Sowas
könnte man in Pixel oder Bildschirm-cm kalibrieren.
Das Programm heißt "mouse odometer" oder so ähnlich.
Je nachdem, ob Du eine Lösung für eine reale Längenmessung oder eher
einen Scherz bzw. GUI-soziologische Studien (oder wirtschaftliche:
"Welcher Angestellte nutzt die Mauspolster am schnellsten ab?") vorhast,
könnte so ein Programm die einfachste Lösung sein.