Einzelnen Beitrag anzeigen

blackfin
(Gast)

n/a Beiträge
 
#15

AW: Maus als Sensor am PC

  Alt 14. Dez 2011, 22:36
Optische Maus-Sensoren haben meistens eine 3-wire SPI-Schnittstelle, die relativ einfach auszulesen ist und hier oft schon fertig benutzbaren Gray-Code ausgibt, da optische Maus-Sensoren oft "One-Chip-Lösungen" sind, die für das Processing des Bildes keinen externen DSP brauchen.
Somit zapfst du am Besten diese Schnittstelle am Chip direkt an, ohne über den USB-Weg der Maus zu gehen.

Wenn du nicht selbst zum Lötkolben für eine eigene MCU-Schaltung greifen willst, kannst du dir so etwas wie das PICkit Serial Analyzer Board holen. (ca. 50 Euro)
Das ist ein Testboard für serielle Protokolle (SPI, I2C, Microwire, RS232 etc.), an das du einen solchen Maus-Sensor dann anschliessen kannst.
Das Board bringt dabei schon alles mit, was du brauchst: Kommunikationsmöglichkeit mit dem PC über USB, hat bereits einen Microcontroller inkl. Steckanschlüsse drauf, eine komplette Entwicklungs-IDE, entsprechende Windowstreiber zum Ansteuern des Boards, eine DLL, die du sicher auch in Delphi ansteuern kannst, wenn du die VB-Header übersetzt und haufenweise Code-Beispiele, wie man die Protokolle über die API in der DLL verwendet.

Du brauchst dazu natürlich eine Maus, bei der du weisst, welcher genaue Sensor verbaut ist und der am Besten bis auf die drei SPI-Leitungen nur noch die Stromversorgung braucht.
Das ist der schwierigste Teil des Projektes, einen einfachen Sensor zu finden, allerdings gibt es afaik solche von Analog Devices, die weit verbreitet in Mäusen verbaut werden.
Notfalls, wenn du keinen solchen Sensor findest, schaust du halt, welche externen Komponenten er noch benötigt (Quartz etc.) und ob das oben genannte Testboard eventuell diese Anschlüsse auch schon hat.
Zuletzt holst dir noch das Datenblatt des Sensors, schliesst den Sensor an das PICKit an und wurschtelst los

Gut, um den Sensor anzuschliessen brauchst du dann doch minimal für die Drähtle den Lötkolben, aber das lässt sich eigentlich kaum vermeiden, wenn du den Sensor nativ auslesen willst.
Allerdings sind die meisten dieser Sensoren noch sehr "Lötanfänger-freundlich" im 2,54er DIP-Raster und zum Glück nicht im fiesen BGA-Formfaktor, der sich daheim eh kaum ohne Dampfphase oder umgebauten Pizzaofen löten lässt.
Zur Not gehts dann doch auch ganz ohne Löten, wenn du dir ein Experimentier-Steckboard holst und der Chip das besagte 2,54mm Raster hat.
Hier muss man allerdings darauf achten, dass das Steckboard nicht hinderlich ist, was die Linse der CMOS-Camera angeht und ob die Schaltfrequenzen des Chips einen Aufbau auf einem Steckboard vertragen.
(Wobei nach aussen ja eh nur per SPI kommuniziert wird und das ist bezüglich Leitungslängen und Einstreuungen sehr robust, sofern man den Bus nicht zu sehr kapazitiv belastet).

Auf jedenfall ist der Versuch mit einem solchen PICKit-Testboard (oder vergleichbarem) wesentlich zeit- und nervenschonender, als die gesamte MCU-Schaltung inkl. SPI-Protokoll als Microcontroller-Anfänger von 0 an selbst zu bauen und die dementsprechende Firmware in ASM oder C zu schreiben.

Ein Problem könnte jedoch werden, dass du den Maussensor wirklich wackelfrei und nahe am Rad verbauen musst, um eine ausreichende Genauigkeit und Datenstabilität zu erhalten, aber das wäre eh dann die nächste Geschichte, wenn man die Schaltung und die generelle Funktion schon einmal hat

Geändert von blackfin (15. Dez 2011 um 01:52 Uhr)
  Mit Zitat antworten Zitat