Forum: Mikrocontroller und Digitale Elektronik Arduino UNO mit USB-Joystick verbinden


von Philipp S. (phips_ch)


Lesenswert?

Hallo zusammen

hat von euch schonmal jemand eine Arduino UNO mit einem USB-Joystick 
verbinden?

Es gibt da ja diese kleinen Arduino Joystick. kann ich auch ein Normaler 
PC-Joystick mit  dem Controller verbinden?

Was benötige ich da zu?

Besten Dank schon jetzt für eure Antwort.

von Joachim S. (oyo)


Lesenswert?

Nein, das dürfte nicht funktionieren. Der USB-Port des Arduino UNO 
dürfte ein reines USB-Slave-Gerät, das mit einem USB-Host wie einem PC 
verbunden werden muss, ein USB-Joystick ist aber ebenfalls ein 
USB-Slave-Gerät.
Ausserdem ist der UNO meines Wissens nach nur über einen 
USB<->Seriell-Wandler mit dem USB-Port verbunden, und hat gar keine 
Möglichkeit, auf beliebige USB-Geräte zuzugreifen; der UNO selbst weiss 
gar nichts von USB.

von Jajaja (Gast)


Lesenswert?

Ja.
Ja.
Einen Joystick, Kenntnisse der Elektronik, Kenntnisse der Programmierung 
und etwas "Hühnerfutter" (Bauteile).

von Jajaja (Gast)


Lesenswert?

Er hat nicht gesagt, dass er die USB Schnittstelle verwenden möchte, 
lediglich das es sich um einen USB Joystick handelt...

von Philipp K. (philipp_k59)


Lesenswert?

Jajaja noch anzufügen..

Mit einem arduino Micro oder Promicro könnte es insgesamt einfacher 
werden.

von Thomas W. (diddl)


Lesenswert?

Es braucht dazu einen Arduino Leonardo oder ein Teensy, der hat einen 
Atmega32U4

von Joachim B. (jar)


Lesenswert?

Philipp K. schrieb:
> Mit einem arduino Micro oder Promicro könnte es insgesamt einfacher
> werden.

was soll es denn werden?

PC Joysticks mit 15-pol Gamestecker ist einfach, mit USB hat das nichts 
zu tun, do könntest auch einen USB Joystick vom USB befreien und alle 
Taster an den Arduino bringen.

vielleicht erklärst du mal soll der Arduino USB Host oder USB Client 
spielen?

von Lars B. (larsb)


Lesenswert?

Falls der Joystick mit usb ist:
Der mega32u4 kann ist auch nur ein usb slave.

Was man braucht ist ein USB Host controller wie z.B:
https://www.arduino.cc/en/Main/ArduinoUSBHostShield

Evtl kann man auch gleich mit dem ADC vom Arduino die Potis des 
Joysticks auswerten.

: Bearbeitet durch User
von Philipp S. (phips_ch)


Lesenswert?

Schon mal danke für die Antworten.

Mich interessiert ob es möglich währe einen Joystick mit USB-Kabel an 
einen Arduino anschlissen kann.

konkret habe ich kein Projekt wo ich das Umsetzen möchte.

Ich hab mal in einem Tutorial gesehen wie einer einen Motor mit einem 
Joystick vorwärts, rückwärts, schneller, langsamer angesteuert hat.
Nun habe ich mich gefragt ob das mit einem normalen Joystick auch 
möglich wäre. und mit was für einem Aufwand.

von Wolfgang (Gast)


Lesenswert?

Philipp K. schrieb:
> Mit einem arduino Micro oder Promicro könnte es insgesamt einfacher
> werden.

Interessant Aussage, wenn da nicht der Konjunktiv wäre. Wo siehst du da 
Vereinfachungsmöglichkeiten und wieso soll das damit besser gehen?

von Joachim S. (oyo)


Lesenswert?

Philipp S. schrieb:

> Mich interessiert ob es möglich währe einen Joystick mit USB-Kabel an
> einen Arduino anschlissen kann.

Die Frage ist halt, ob Du "ohne zusätzliche, weitere 
Hardware/Elektronik" meinst oder nicht. Ich bin wie selbstverständlich 
davon ausgegangen, dass Du das meinst - und das geht wie gesagt nicht.

Mit genug zusätzlicher Elektronik wie irgendwelchen 
USB-Host-Controller-ICs etc. ginge es aber natürlich - aber ich 
bezweifle, dass das irgendwer in der Praxis machen würde.

Bei anderen Arduinos, die einen USB-Controller integriert haben und als 
"USB Host" agieren können, wäre es möglich, beim UNO jedoch nicht.

In der Praxis wäre es wirklich viel leichter, z.B. ganz billig einen 
alten PC-Joystick mit 15-poligem Anschluss zu nutzen, den man bei eBay 
und Co. vermutlich hinterhergeschmissen bekommt. Den kannst Du ganz 
einfach anschliessen/abfragen.

von Lars R. (lrs)


Lesenswert?

Lars B. schrieb:
> Falls der Joystick mit usb ist:
> Der mega32u4 kann ist auch nur ein usb slave.
>
> Was man braucht ist ein USB Host controller wie z.B:
> https://www.arduino.cc/en/Main/ArduinoUSBHostShield

Interessant, danke. Steht auf retired. Hier die Alternativen:
https://www.sparkfun.com/products/9947
http://www.watterott.com/de/SparkFun-USB-Host-Shield
http://www.exp-tech.de/arduino-usb-host-shield

Joachim S. schrieb:
> Die Frage ist halt, ob Du "ohne zusätzliche, weitere
> Hardware/Elektronik" meinst oder nicht. Ich bin wie selbstverständlich
> davon ausgegangen, dass Du das meinst - und das geht wie gesagt nicht.

Spricht etwas gegen das Shield?

> In der Praxis wäre es wirklich viel leichter, z.B. ganz billig einen
> alten PC-Joystick mit 15-poligem Anschluss zu nutzen, den man bei eBay
> und Co. vermutlich hinterhergeschmissen bekommt.

In entsprechendem Zustand...

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Um ein USB-Gerät anzusteuern, braucht es entweder einen µC mit 
USB-Host-Controller oder einen externen USB-Host-Controller wie den 
Vinculum von FTDI oder sehr, sehr heftiges Bit-Banging, und das geht 
auch nur, wenn es sich um ein Low-Speed-USB-Device handelt.

https://translate.google.de/translate?hl=de&sl=auto&tl=de&u=http%3A%2F%2Fwww.asahi-net.or.jp%2F~qx5k-iskw%2Frobot%2Fusbhost.html

Das ist mit "Arduino"-Mitteln nicht umsetzbar, das braucht detaillierte 
Assemblerkenntnisse.

von Joachim S. (oyo)


Lesenswert?

Lars R. schrieb:

> Spricht etwas gegen das Shield?

Nunja, ca. 25 Euro + Porto bzw. der Umstand, dass einem die Chinesen zu 
diesem Preis ganze 8 Arduino UNO-Clones zuschicken ;-)

Ausserdem würde ich vermuten, dass es auch mit dem Shield noch 'ne ganze 
Menge Arbeit wäre, sofern da nicht jemand rein zufällig bereits eine 
entsprechende fertige Library für USB-Joystick-Zugriff über dieses 
Shield veröffentlicht hat.

von Rene K. (xdraconix)


Lesenswert?

Lars B. schrieb:
> Falls der Joystick mit usb ist:
> Der mega32u4 kann ist auch nur ein usb slave.

Quark, der u4 kann (am einfachsten mit LUFA) auch als Host betrieben 
werden. Man kann sich das natürlich auch selbst "zusammenfrickeln", dann 
wirds aber weißgott einfacher sein doch über einen USB Host Controller 
zu gehen.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Rene K. schrieb:
> Quark, der u4 kann (am einfachsten mit LUFA) auch als Host betrieben
> werden.

Interessant.

Atmel selbst schreibt hier nichts von Host oder OTG:
http://www.atmel.com/devices/atmega32u4.aspx?tab=parameters

Mit welcher Magie macht das Lufa dann?

von W.A. (Gast)


Lesenswert?

Joachim S. schrieb:
> Nunja, ca. 25 Euro + Porto bzw. der Umstand, dass einem die Chinesen zu
> diesem Preis ganze 8 Arduino UNO-Clones zuschicken ;-)

Wenn man lieb "bitte, bitte" macht, schicken sie einem vielleicht auch 
einen preislich passenden USB-Host Controller dazu
www.ebay.com/itm/201487352850

von Lars B. (larsb)


Lesenswert?

Das USB Host shield gibt es sicher auch als china fake. Das darf man 
dann selbst suchen. Sparkfun war nur der erste google treffer, als 
hinweis dass es sowas gibt.

von Rene K. (xdraconix)


Lesenswert?

Rufus Τ. F. schrieb:
> Interessant.
>
> Atmel selbst schreibt hier nichts von Host oder OTG:
> http://www.atmel.com/devices/atmega32u4.aspx?tab=parameters
>
> Mit welcher Magie macht das Lufa dann?

Richtig, da muss ich mich entschuldigen, stimmt. In der normalen 
Übersicht im Datenblatt steht. "Complies fully with Universal Serial Bus 
Specification Rev 2.0" Was für mich eigentlich ein Host-Device mit 
einschließt, unter 21.1 steht dann aber "Supports full-speed and 
low-speed Device role" und weniger aufschwinglich: "Complies with USB 
Specification v2.0".

Also Rolle rückwärts, kein Host Device aufm Mega32u4.

von Lars R. (lrs)


Lesenswert?

Joachim S. schrieb:
> Lars R. schrieb:
>
>> Spricht etwas gegen das Shield?
>
> Nunja, ca. 25 Euro + Porto bzw. der Umstand, dass einem die Chinesen zu
> diesem Preis ganze 8 Arduino UNO-Clones zuschicken ;-)

Für den TO ( Philipp Schenk) kann ich nicht sprechen aber mich 
interessiert jede günstige Lösung, bei der man für ein zweites Gerät 
nicht wieder von vorn mit dem Zusammensuchen und Basteln beginnen muss. 
Und sei es auch nur, weil das erste Gerät defekt gegangen ist.

> Ausserdem würde ich vermuten, dass es auch mit dem Shield noch 'ne ganze
> Menge Arbeit wäre, sofern da nicht jemand rein zufällig bereits eine
> entsprechende fertige Library für USB-Joystick-Zugriff über dieses
> Shield veröffentlicht hat.

Genau danach schaut es jedoch aus. Wie einfach das verwendbar ist, kann 
ich jedoch auch nicht abschätzen.

Ich hoffe, Philipp hält uns mit seinem Projekt auf dem Laufenden.

von Joachim S. (oyo)


Lesenswert?

Lars R. schrieb:
>> Ausserdem würde ich vermuten, dass es auch mit dem Shield noch 'ne ganze
>> Menge Arbeit wäre, sofern da nicht jemand rein zufällig bereits eine
>> entsprechende fertige Library für USB-Joystick-Zugriff über dieses
>> Shield veröffentlicht hat.
>
> Genau danach schaut es jedoch aus. Wie einfach das verwendbar ist, kann
> ich jedoch auch nicht abschätzen.

Hast Recht, da scheint es tatsächlich eine brauchbare und auch noch 
immer gepflegte fertige Library zu geben:
https://github.com/felis/USB_Host_Shield_2.0

Sofern der Threadstarter also bereit ist, 25 Euro + Porto (bei 
sofortiger Lieferung) bzw. ca. 6-7 Euro (+ vglw. lange Lieferzeit wegen 
Lieferung aus China) in Kauf zu nehmen, sollte das Vorhaben kein allzu 
grosses Problem sein.

von Lars R. (lrs)


Lesenswert?

PS: Einige Gameport-Joysticks laufen nicht am Gameport-USB-Adapter. 
Bekannt ist es mir insbesondere bei Modellen von Microsoft. 
Non-Standard. Weiß nicht mehr warum. Darauf sollte man achten, falls man 
ein Gameport-Modell auswählt.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wenn ein Gameport-Joystick vorhanden ist, stellt sich die USB-Frage 
nicht. Es wäre ausgemachter Unfug, einen Gameport-Joystick über einen 
USB-Adapter an einem Arduino anschließen zu wollen.

von Lars R. (lrs)


Lesenswert?

Meinen obigen Post habe ich wohl zu knapp ausgeführt. Mein Hinweis 
zielte darauf ab, dass diese Gameport-Joysticks, die nicht am 
USB-Adapter und auch an manchen Gameport-Einsteck-Karten nicht liefen, 
ggf. auch eine zusätzliche Beschaltung beim Anschluss an den Arduino 
benötigen.

von STK500-Besitzer (Gast)


Lesenswert?

Sowas dürfte am Einfachsten sein:
http://www.hobbytronics.co.uk/usb-host-board-v2?keyword=host

Das Thema USB-Host am Arduino wurde bei Circuitathome (?) ziemlich breit 
beschrieben. Die Seite ist aber down.
Auf GitHub gibt es aber auch entsprechende Projekte (eigentlich genau 
das von Circuit at Home).

von Philipp S. (phips_ch)


Lesenswert?

Guten Tag zusammen

Vielen Dank für die Inputs

Verstehe ich das richtig?

Ich benötige einem USB-HOST Controller:
https://www.arduino.cc/en/Main/ArduinoUSBHostShield

oder so etwas:
http://www.hobbytronics.co.uk/usb-host-board-v2?keyword=host

Das ich den Joystick nicht am USB-Port am UNO einstecken kann, habe ich 
mir schon gedacht.

Nur mal so interessenhalber, wären denn auch zwei Controller für zwei 
Joystick möglich. ;-)

Ich denke da z.B. an eine Baggersteuerung.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Philipp S. schrieb:
> Nur mal so interessenhalber, wären denn auch zwei Controller für zwei
> Joystick möglich

Ein USB-Host kann mit mehreren USB-Geräten gleichzeitig "reden". Also 
sollte das "USB-Host-Shield" auch für zwei oder mehr USB-Joysticks 
genügen -- der Rest ist eine reine Softwarefrage.

von Joachim B. (jar)


Lesenswert?

Rufus Τ. F. schrieb:
> Ein USB-Host kann mit mehreren USB-Geräten gleichzeitig "reden". Also
> sollte das "USB-Host-Shield" auch für zwei oder mehr USB-Joysticks
> genügen -- der Rest ist eine reine Softwarefrage.

und eine Frage des lieferbaren Stroms am Host Shield und ob ein Arduino 
genug SRAM hat?

von Lars R. (lrs)


Lesenswert?

Rufus Τ. F. schrieb:
> Philipp S. schrieb:
>> Nur mal so interessenhalber, wären denn auch zwei Controller für zwei
>> Joystick möglich
>
> Ein USB-Host kann mit mehreren USB-Geräten gleichzeitig "reden". Also
> sollte das "USB-Host-Shield" auch für zwei oder mehr USB-Joysticks
> genügen -- der Rest ist eine reine Softwarefrage.

IMHO wäre erst einmal zu prüfen, ob und wie gut der letztlich 
ausgewählte Chip und die dazu passende Library dies unterstützen.
Falls dies nicht geeignet funktioniert, so kommt für eine 
Baggersteuerung mit zwei (oder noch mehr) Joysticks vielleicht auch ein 
Raspberry in Betracht?

Toll wäre es jedoch schon, mehrere USB-Joysticks an einem einfachen uC 
zu betreiben.

: Bearbeitet durch User
von Lars R. (lrs)


Lesenswert?

Und?

Erfolg gehabt?

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.