Forum: Mikrocontroller und Digitale Elektronik USB-Treiber für PC-Joystick


von Sebastian Pischel (Gast)


Lesenswert?

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

von Hannibal.exe (Gast)


Lesenswert?

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.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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).

von Gast (Gast)


Lesenswert?

'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?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Ja, genau so sähe das aus. Ist also keine sinnvolle Lösung.

von Michael W. (mictronics) Benutzerseite


Lesenswert?

AVR ATmega8 basierender USB Joystick mit 8 analog Kanälen und bis zu 28
Tasten inklusive Coolie-Hat:

http://www.mictronics.de

/Michael

von Ludwig W. (lordludwig)


Lesenswert?

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

von hmann (Gast)


Lesenswert?

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

von Dirk D. (dirkd)


Lesenswert?

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

von Gast (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.