Hallo Leute, ich spiele schon seit ner Weile mit dem Gedanken, mal was mit AVR und USB zu machen. Es gibt ja diese tollen FTDI-Chips, von TI ein paar, von Philips ein paar usw, aber wie mache ich das auf der PC-Seite? Konkret habe ich die Idee, einen USB-Joystick selber zu bauen. Ich habe hier noch nen richtig gut verarbeiteten programmierbaren Flugsteuerknüppel (X36 von Saitek, falls das jemandem was sagt), der jedoch per Gameport angeschlossen wird und zusätzlich noch per Din-Fünfpol ins Tastaturkabel eingeschleift wird. Nun hat mein Notebook aber keins von beidem... Die Idee also: die Tasten und Potis des Joysticks mit ATmega8 oder so auslesen und per USB verschicken, aber dann muss man das Ding ja irgendwie als Joystick deklarieren und die Potistellung in die richtigen Speicherstellen schreiben. Und die Krönung wäre ja, wenn man mit einem Knopfdruck auf dem Joystick einen Tastaturcode absenden könnte. Ich weiß, gibts alles, die neueste Auflage von Saitek kostet 99. Und ich will sowieso mal rausbekommen, wie das mit USB funzt. Kann mir jemand direkt mit der Idee weiterhelfen und/oder allgemeine Informationen über die PC-Seite von USB-Peripherie geben? Ich pogrammiere in Delphi. MfG, Sebastian
Mann müsste ein HID-kompatibles gerät mit dem FTDI erzeugen. Dann erkennen Windoof Linux usw. den als Joystick. Es gibt auch einen AVR-USB-Joystick.
Mit dem FTDI-Chip lässt sich kein HID-kompatibles Gerät erzeugen. Der implementiert nur und ausschließlich sein eigenes Protokoll. Es gibt allerdings fertige Analog-Joystick-zu-USB-Adapter, nur bleibt da natürlich der Spaß der Selbstentwicklung auf der Strecke. Für den genannten Joystick wäre dann nur noch die Frage der Stromversorgung zu klären (wozu sonst wird das Ding in das Tastaturkabel eingeschleift?). Aber eventuell ließe sich das mit einem ebenfalls fertig verfügbaren Tastatur-zu-USB-Adapter lösen. Ansonsten gibt es aus der Igor-Cesko-Ecke einen USB-Joystick, der mit einem AVR ohne spezielle USB-Hardware auskommt. Alternativ ließe sich auch ein "JoyWarrior" einsetzen, das ist ein bereits fertig programmierter Microcontroller (http://codemercs.com/JoyWarriorD.html).
'Mit dem FTDI-Chip lässt sich kein HID-kompatibles Gerät erzeugen. Der implementiert nur und ausschließlich sein eigenes Protokoll.' D.b. also auch, dass ich letzten Endes den kompletten PC-Treiber für dieses Gerät schreiben müsste, bzw. die Schnittstelle zwischen FTDI-D2XX-Treibern und M$ DirectInput (um mal bei FTDI zu bleiben) - richtig?
AVR ATmega8 basierender USB Joystick mit 8 analog Kanälen und bis zu 28 Tasten inklusive Coolie-Hat: http://www.mictronics.de /Michael
hab ein USB to Gameport wandler der bei meinem joystick dabei war. Das ding is aber leider fest verschweißt. Evtl. kann ich mich davon trennen falls interesse besteht
Hi! Also es gibt kostenlose AppNotes für Phillips yController auf den Seiten von Keil, die einen USB-HID Device aus dem yC machen. Damit kann das Ding dann wunderbar unter Windows angesprochen werden; http://www.keil.com/support/man/docs/mcb2140/mcb2140_ex_usbhid.htm Das sind allerdings ARM-Prozessoren. Aber das wäre mal ein nettes Projekt. Ich wäre dabei
Hi! Hier ein paar Links, die Dir vielleicht helfen, wenn Du einen anderen Chip als den FTDI verwenden willst: http://www.manderby.com/mandalex/u/usb.php?id=85 http://www.beyondlogic.org/ Wie schon erwähnt, brauchst Du bei einem HID-Gerät keinen PC-Treiber zu schreiben, kannst aber keine FTDI verwenden, weil diese einen virtuellen COM-Port implementieren (dafür gibt es eine eigene Geräte-Klasse). Du kommst aber vielleicht auch ohne extra USB-Chip aus: http://www.flightsim.com/cgi/kds?$=main/howto/mind.htm http://www.cesko.host.sk/ -- Dirk
Hmm,
die Sache ist, das der uC nicht gerade 'unbeschäftigt' ist, sondern
>16 Analoge Kanäle zu 10 Bit und >128 digitale Signale einliest und
entprellt - von daher glaube ich, dass eine reine SW-USB-Variante nicht
interessant ist....
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.