Hallo,
ich möchte gerne eine USB maus später an mein AVR gehäuse anschließen
und die Data kanäle 1:1 durchschleifen.
Also usb männlich vorn usb weiblich hinten das meine AVR Box quasi als
Hub fungiert. Pc hinten Maus vorne dazwischen die Avr Box.
Dabei interessiert mich nur das Klick signal.
Wenn ein mausklick von der Maus an den Pc gesendet wird und (über die
AVR Box) gesendet wird, möchte ich weitere klicks hinterher senden und
somit z.b einen Doppelklick erzeugen.
Ist sowas möglich?
Wielleicht Data+ und oder - an eingänge...
Dann irgentwie das Protokoll auswerten?
Habe hier gelesen es sei sehr aufwändig, aber das waren andere
Ideen wie z.b. komplett emulation der Maus.
Ich bin für Antworten wie immer sehr Dankbar.
Daniel
P.s:
myavr board
atmega8 (z.Z)
basecom
nochmals vielen Dank ;)
Gibt's im Windows nicht eine Funktion (im Linux sowieso), mit der man
das Klickverhalten anpassen kann (dass es z.B. so wie bei Linux ist)?
Ich meine, sowas mal irjendwo gesehen zu haben.
sollte egal sein ob linux oder windows, ich will ja eine Hardwarelösung
bauen.
Sowas im Betriebsystem zu programmieren wäre ja einfach, leider aber
nicht was ich möchte, trotzdem Danke für deine Antwort ;)
Daniel schrieb:> Habe hier gelesen es sei sehr aufwändig, aber das waren andere> Ideen wie z.b. komplett emulation der Maus.
Das spielt kaum eine Rolle. Du wirst trotzdem den ganzen
USB-Protokollstack brauchen. Und es ist schon schwer genug, das so
hinzubekommen, daß der AVR als USB-Device fungiert und noch schwerer,
daß er USB-Host ist. Aber beides gleichzeitig ist mal wirklich hart.
Hallo, vielen Dank an alle bisherigen antworten.
Wie oben schon erwähnt möchte ich ob es für aussenstehende sinn macht
oder nicht mir einen kastenbauen indem ich mausklicks erkennen und
verarbeiten kann (siehe angefügtes Foto)
hierbei ist es klar das es fertige lösungen gibt, mir aber eine andere
maus (die o.e habe ich sogar) zu verwenden kommt nicht in frage da ich
die Razor behalten möchte. Weswegen ich auch über usb gehen MUSS auch
wenn den PS2 Bus auslesen ein leichtes wäre wegen der dann fehlenden
Vorteile der Razor genauigkeit, abtastungsrate ect.
Ich will euch einfach mal mein Projekt zeigen (Foto) damit Ihr euch
vorstellen könnt was ich meine und warum eine einfache Doppelklick
lösung nicht ausreicht, als AVR Programmierer möchte man außerdem ja
nicht fertige sachen kaufen sondern selbst basteln ;)
Hoffe auf noch einige Antworten wie man den Data+- verarbeiten könnte.
Zur erinnerung: Ich benötige nur die Klicks alles andere soll 1:1
durchgeschleift werden.
lg
Daniel
Ich sags aml so, USB ist recht zeitkritisch.
Bei 15 MHz Prozessortakt hast du genau 10 Prozessortakte pro USB-Bit
Zeit (und das auch nur bei Low-Speed-USB).
Wird interessant, ich hoffe, du kannst Assembler?
Dann ist die einzige Möglichkeit die Verwendung eines dedizierten
USB-Host-Controller wie dem Vinculum von FTDI. Den brauchst Du, um die
Maus mit Deinem µC verbinden zu können. Einen anderen realistisch
umsetzbaren Weg gibt es nicht (auch wenn ein sehr genialer Mensch aus
Japan mal eine Demonstration eines USB-Hosts für eine Maus in Software
auf einem AVR hingelegt hat, ist dies nicht realistisch umsetzbar).
Dazu kommt noch ein dedizierter USB-Device-Controller, oder ein µC mit
integriertem USB-Device-Controller. Ein FTDI-Baustein wie FT232 tut es
hier nicht. Diesen Controller brauchst Du, damit Dein µC dem PC
gegenüber so tun kann, als wäre er die Maus.
Softwareseitig hast Du dann "nur" noch folgendes zu tun:
- Ansteuerung des Vinculum/USB-Host-Controllers, um das geforderte
Mausprotokoll Deiner Maus nutzen zu können. Das scheint ja über
HID-Maus-Grundfunktionen hinauszugehen, da Du von Spielmäusen ("Razor")
schreibst.
Dazu musst Du das Protokoll erstmal vollständig analysieren, d.h. mit
einem Protokollanalysator aufzeichnen. So etwas gibt es auch als reine
Softwarelösung, möglicherweise genügt das.
- Implementierung exakt des Mausprotokolls Deiner Maus mit dem
USB-Device-Controller - schließlich soll Dein PC ja weiterhin davon
ausgehen, daß dieselbe Maus angeschlossen ist
- Sinnvolle Verknüpfung beider Funktionalitäten mit "Durchreichen" aller
relevanten Daten in beiden Richtungen, d.h. nicht nur Mausbewegungen
und Klicks an den PC, sondern auch Konfigurationsdaten vom PC an die
Maus.
Hier kannst Du Deine so wichtige Mausklickverdoppelung einfügen.
Eine alternative Möglichkeit wäre eine Manipulation der Maus selbst -
die darin befindlichen Microtaster sind durch Reedrelais o.ä. zu
ersetzen, die Tasten steuern einen in die Maus eingesetzten µC an, der
wiederum die Reedrelais so ansteuert, wie Du klicken willst.
Dieser Weg scheint mir von mechanischen Problemen abgesehen der
sinnvollste; USB ist absolut nichttrivial anzusteuern. Ein simpler
Zugriff auf die Datenleitungen, wie er Dir vorzuschweben scheint, ist
vollkommen unrealistisch.
> Es gibt Konverter von USB-Maus nach PS2-Maus
Nein. Die gibt es nicht. Was Du dafür hältst, sind Steckeradapter, die
zu bilingualen Mäusen gehören, das sind Mäuse, die sowohl USB- als
auch PS/2-Mäuse sind.
>> Es gibt Konverter von USB-Maus nach PS2-Maus>> Nein. Die gibt es nicht. Was Du dafür hältst, sind Steckeradapter, die> zu bilingualen Mäusen gehören, das sind Mäuse, die sowohl USB- als> auch PS/2-Mäuse sind.
Ah ja. Ich nehme mal an, dass dem so ist. Vielleicht geht seine Maus
dennoch mit so einem (ich habe mit mindestens 10 davon daran gehabt und
habe jedenfalls noch keine erlebt, die nicht damit ging - ich brauche
PS/2 wegen KVM), und seine ist ja wohl kein Billigmodell.
Und der Konverter für den umgekehrten Weg, wie arbeitet der dann? Der
ist nicht wesentlich teurer.
Hallo,
ich danke euch beiden sehr für eure Antworten.
Ich denke auch das es ein momentan (Basecom Anfänger) ein noch nicht
realisierbares Projekt ist.
Eine gute Idee die ich ach schon hatte, das alles in die Razor zu
verbauen (habe eine vom kumpel für 3 € für diesen zweck gekauft wo der
linke mausklick taster eh kaputt ist). Ich werde also mal versuchen das
alles in die Maus zu bekommen bzw in ein gehäuse aus der Maus raus mit
einfacher relais ansteuerung.
Ich behalte aber mal die Herausforderung im Hinterkopf und versuche mal
wenn ich später fitter bin und C++ und Assambler kann mich nochmal an
die eröffnungsthread lösung versuchen.
Für den Anfang bin ich erstmal begeistert wie einfach ich mit Basecom
klarkomme (habe das Board erst einige Tage) hierbei ist meine VB und
.net erfahrung super weil es doch sehr ähnlich ist.
Für die andere lösung aber werde ich wohl nicht um assambler rum kommen,
weswegen ich es erstmal vertagen werde.
Vielen Dank für alle Antworten und vor allem Rufus t. Firefly für die
ausführliche ;)
Lieben Gruß
Daniel
Hc Zimmerer schrieb:> Vielleicht geht seine Maus dennoch mit so einem
Tut sie, wenn sie bilingual ist.
> (ich habe mit mindestens 10 davon daran gehabt und> habe jedenfalls noch keine erlebt, die nicht damit ging - ich brauche> PS/2 wegen KVM), und seine ist ja wohl kein Billigmodell.
Viele, wenn nicht die meisten Mäuse sind bilingual, aber eben nicht
alle. So z.B. die "Mighty Mouse" von Apple (die mit dem kleinen
Trackball) nicht.
Und es ist damit zu rechnen, daß die Bilingualität über kurz oder lang
abhandenkommt - genauso, wie die Bilingualität PS/2 und RS232
ausgestorben ist. Welcher neue PC hat noch eine PS/2-Schnittstelle?
Hc Zimmerer schrieb:> Und der Konverter für den umgekehrten Weg, wie arbeitet der dann? Der> ist nicht wesentlich teurer.
Da ist aktive Elektronik drin.
Die Diskussion ist im übrigen müßig, da der Threadersteller darauf
hinwies, daß bestimmte Betriebsdaten der Maus im PS/2-Betrieb nicht
erreicht werden können, so ist die damit erreichbare Abtastrate wohl
unterhalb dessen, was so ein Spieler braucht.