Forum: Mikrocontroller und Digitale Elektronik PC <-> Arduino Kommunikation OHNE Seriell


von Matthias S. (jadermatze)


Lesenswert?

Hallo,

ich frage mich ob es möglich ist per PC mit einem Arduino zu 
kommunizieren ohne eine serielle Schnittstelle dafür zu nutzen.

Hintergrund ist ich möchte einen Gamecontroller bauen der über eine 
Software am PC konfiguriert werden kann. Und denke mir das hier eine 
Serielle Schnittstelle nicht gerade die beste Lösung ist. Andere USB 
Geräte die man an den PC anschließt werden ja sicherlich auch keine 
serielle Verbindung verwenden.

Hab gesucht aber nichts gefunden, vielleicht hat ja jemand einen 
passenden Link für mich zu dem Thema.

Gruß Matthias

von Jim M. (turboj)


Lesenswert?

Matthias S. schrieb:
> Hintergrund ist ich möchte einen Gamecontroller bauen der über eine
> Software am PC konfiguriert werden kann.

Dann nimm z.B. den Arduino Micro oder einen anderen mit USB direkt am 
µC.

Damit kann man dem µC das für Gamecontroller nötige HID Protokoll 
beibringen, was mit USB2Serial Wandler-Chips nicht geht.

Lies Dich mal zum Thema USB HID ein.

von Wolf W. (pansensuppe)


Lesenswert?

tja, kein seriell. Dann wäre da ja nur noch die parallele 
Schnittstelle...

BTW, das 'S' in USB bedeutet 'seriell'

von m.n. (Gast)


Lesenswert?

Matthias S. schrieb:
> Und denke mir das hier eine
> Serielle Schnittstelle nicht gerade die beste Lösung ist.

Warum? Selbst USB ist eine serielle Schnittstelle.

von Turgut T. (tft)


Lesenswert?

äääää BT ginge doch auch noch .... und infrarot ..... must halt eine 
Drahtlose Schnittstelle nehmen. Aber irgendeine Schnittstelle benötigst 
du sowiso.

Aber grundsätzlich ist auch USB nur eine Serielle Schnittstelle. 
Ausserdem ist es fiel einfacher eine Com basierter Software zu machen.

Aber ich glaube du brauchst wirklich einen Arduino Leonardo oder 
vergleichbar. Der Simuliert ein HID gerät als Kontroller und die 
Gewünschten Anpassungen must du im Arduino über eine Software machen die 
über die Com verbunden ist. Zur Not geht das auch mit dem Monitor 
Terminal von der Arduino IDE.

Wenn du willst kann ich dir dabei helfen. Ich mache gerade etwas 
änliches.

von Matthias S. (jadermatze)


Lesenswert?

Hallo,

danke für eure zahlreichen Antworten, ich habe vor das Projekt mit einem 
Arduino Micro Pro zu realisieren (der hat USB schon dran).

Der Hinweis mit USB HID hat mir sehr geholfen, hatte ich vorher schon 
mal kurz irgendwo gesehen/gelesen.

Jetzt ist die Frage wenn ich meinen Arduino als HID am PC anschließe 
(USB oder Bluetooth) kann ich dann trotzdem mit dem Arduino Sketch 
kommunizieren. Wunsch ist es den Controller per Software auf dem PC 
konfigurieren zu können (Empfindlichkeit etc.).

Noch mal vielen Dank für eure Hilfe.

Gruß

Matthias

von Turgut T. (tft)


Lesenswert?

Natürlich nicht ... wenn du ein HID Interface hast ... ist das nicht 
mehr als Com angemeldet. Das solltest du dann mit der ISP Schnittstelle 
programmieren. Zur Konfiguration must du dir dann einen Weg einfallen 
lassen. Zum Beispiel am Arduino einen Botton anschliessen der nur dann 
im COM Modus startet wenn der Button gedrückt ist. Und beim nächsten 
Reset dann wider im HID Modus Startet. Ganz wichtig ist. Das du bevor du 
den Sketsh aufspielst. Du dir einen Schalter anlegst der die HID Ausgabe 
unterbricht. Denn sonst könnte es sein das du keinen Sketsh mehr 
uploaden kannst weil die Schnittstelle besetzt ist. Dann must du mit ISP 
den Sketsh Flashen!! Gerade die Arduino eigenen Beispiele haben da ganz 
grobe Fehler wenn man nicht alles genauso macht wie dort beschrieben.
Wenn du die Konfiguration machen willst während das HID angeschlossen 
ist must du wohl einen 2. Mini ranhängen oder einen 2. USB Adapter der 
über die SoftSerielle Schnittstelle angesprochen wird.Und beide 
untereinander mit der I2C Schnittstelle kommunizieren lassen.
Ausser du bist fit darin einen Treiber zu schreiben.

Das muss nicht die einzige Möglichkeit sein . Aber so ist es mir 
ergangen.

von Oliver J. (skriptkiddy)


Lesenswert?

Matthias S. schrieb:
> Jetzt ist die Frage wenn ich meinen Arduino als HID am PC anschließe
> (USB oder Bluetooth) kann ich dann trotzdem mit dem Arduino Sketch
> kommunizieren. Wunsch ist es den Controller per Software auf dem PC
> konfigurieren zu können (Empfindlichkeit etc.).

Kann es nicht mit Bestimmtheit sagen, aber ich würde aus dem Bauch 
heraus vermuten, dass man mit libusb1 (braucht unter Windows keinen 
extra Treiber) und Control-Tansfers über Endpoint-0 erledigen können 
sollte. Ich beziehe mich hier auf eine USB-HID-Lösung.

Grüße Oliver

: Bearbeitet durch User
von Jim M. (turboj)


Lesenswert?

Matthias S. schrieb:
> Jetzt ist die Frage wenn ich meinen Arduino als HID am PC anschließe
> (USB oder Bluetooth) kann ich dann trotzdem mit dem Arduino Sketch
> kommunizieren.

Einlesen heisst nicht nur überfliegen. HID hat auch Möglichkeiten zu 
Kommunikation PC->Gerät, so wird z.B. bei USB Tastaturen der LED Status 
übertragen.

Man braucht nichtmal (eigene) Treiber, allerdings muss man sich auch mal 
in die PC Seite einlesen (oder Libs wie HIDAPI nutzen).

Wenn es ein Arduino Tastatur- oder Mausbeispiel gibt, hast Du schon mehr 
als die Hälfte des Projekts fertich.

von Dr. Sommer (Gast)


Lesenswert?

Man könnte den Arduino auch als Composite Device programmieren, sodass 
es sich als HID und CDC-ACM (Virtueller COM Port) gleichzeitig anmeldet.

von Horst (Gast)


Lesenswert?

Turgut T. schrieb:
> Natürlich nicht ... wenn du ein HID Interface hast ... ist das nicht
> mehr als Com angemeldet.

Interessant, meine Pro Micro melden sich alle als HID und als Arduino 
und lassen sich problemlos über den gleichen Anschluß ohne zusätzliche 
Geräte programmieren.
Was mache ich falsch?

von avr (Gast)


Lesenswert?

So einfach geht das nicht. Sobald Windows das hid einbindet hat man 
keinen Zugriff darauf. Eine Möglichkeit ist ein zweites custom hid für 
die Konfiguration.

Und damit ich das auch nicht mehr so einfach wie:

Jim M. schrieb:
> Wenn es ein Arduino Tastatur- oder Mausbeispiel gibt, hast Du schon mehr
> als die Hälfte des Projekts fertich.

Ein gewisses USB Verständnis wird benötigt, um das zu implementieren. 
Ich habe damals dafür ein composite  device verwendet. Ob das noch mit 
Arduino libraries gent, bezweifle ich.

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.