USB-Treiber für PC-Joystick

Gast #144873
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
Persönliche Seite #144875
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).
Gast #144876
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?
#144881
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
Gast #144882
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....

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren