Arduino Uno + USB Host Shield | USB Eingaben auswerten.

Hallo Liebe Leute,

derzeit steh ich vor einem Problem, dass für den ein oder anderen von Euch sicherlich banal klingen mag, aber ich konnte zu diesem Thema keine Tutorials finden.

Folgendes möchte ich mithilfe des Arduino bewirken:
Am USB Host Shield ist ein 2.4 Ghz USB Stick angeschlossen, der wiederrum von einem Fußschalter angesteuert wird (Hier der Link zu der Hardware). Der Arduino soll nun das Betätigen des Fußschalters registrieren und einen boolean auf 1 setzen. Wenn dieser Boolean auf 1 gesetzt ist, soll über die Datenleitungen eines RJ11 Kabels ein bestimmtes Signal gesendet werden. Hierzu werde ich ein RJ11 aufschneiden und mit den PINs des Arduino entsprechend befeuern.
Quasi ein Konverter der das Betätigen des Fußschalters per RJ11 widergibt.

Nun zu meinem Problem & Frage:
Ich finde derzeit noch nicht mal eine geeignete Bibliothek (samt Doku) mit der ich auf dem USB Host Shield nach einem Eingang lauschen kann.
Kann mir jemand von Euch eine geeignete Bibliothek und vielleicht sogar ein total simples sketch zeigen, mit dem ich auf dem USB Eingang nach einen Eingang lauschen kann?

Ich wäre euch wirklich dankbar wenn ihr mir behilfleich sein könntet.

Mit den besten Grüßen
OKL :slight_smile:

OKL:
....
Nun zu meinem Problem & Frage:
Ich finde derzeit noch nicht mal eine geeignete Bibliothek (samt Doku) mit der ich auf dem USB Host Shield nach einem Eingang lauschen kann.
Kann mir jemand von Euch eine geeignete Bibliothek und vielleicht sogar ein total simples sketch zeigen, mit dem ich auf dem USB Eingang nach einen Eingang lauschen kann?

Ich rate mal, das wird schwierig werden.
Wenn sich tatsächlich hier keiner meldet, der dir eine Library nennt, solltest du mal den Hersteller anschreiben.
Oder evtl. sogar selber die Lib schreiben.

So wie ich das sehe, emuliert der Fußschalter eine USB-Tastatur. Du brauchst also eine Lib, mit der Du auch eine USB-Tastatur an den Arduino anschließen könntest. Mit dem UNO kannst Du das gleich wieder vergessen, der hat am USB-Anschluß nur eine seriell - Emulation.
Mit einem Micro ( ATmega32u4 ) könnte es evtl. gehen. Da musst Du mal suchen, ob es da Lib's zum Anschluß einer USB-Tastatur gibt. Ich kenne bisher nur dem umgekehrten Fall, d.h. dass der Micro selbst eine USB-Tastatur emuliert.

Edit: Wenn Du eine Tastatur anschließen willst, bräuchtest Du ja einen USB Host-Anschluß, der das angeschlossene Gerät auch mit Spannung versorgt. Ich glaube nicht, dass ein Arduino das kann - zumindest keiner der üblichen 'Standard'-Arduinos.

MicroBahner:
Mit dem UNO kannst Du das gleich wieder vergessen, der hat am USB-Anschluß nur eine seriell - Emulation.
Mit einem Micro ( ATmega32u4 ) könnte es evtl. gehen. Da musst Du mal suchen, ob es da Lib's zum Anschluß einer USB-Tastatur gibt. Ich kenne bisher nur dem umgekehrten Fall, d.h. dass der Micro selbst eine USB-Tastatur emuliert.

Edit: Wenn Du eine Tastatur anschließen willst, bräuchtest Du ja einen USB Host-Anschluß, der das angeschlossene Gerät auch mit Spannung versorgt. Ich glaube nicht, dass ein Arduino das kann - zumindest keiner der üblichen 'Standard'-Arduinos.

Du hast den Titel des Threads gesehen?

Arduino Uno + USB Host Shield | USB Eingaben auswerten.

Offensichtlich nicht gut genug ... :-[

Wäre dann die Frage, ob es für den Host-Shield eine Tastatur-Lib gibt ( vielleicht auch ein Link zu dem verwendeten Shield? )
Edit: kurze Google Suche zeigt, des es sowas sehr wohl gibt. Hängt jetzt wohl nur noch vom konkreten Shield ab.

Eine Arduino Bibliothek für das USB Host Shield wird von der IDE angeboten, darin ist auch das Keyboard (HID) enthalten. Das Pedal dürfte beim Betätigen wohl einen String schicken, in dem irgendwie die 48 Bit ID kodiert ist, also für jedes Pedal was anderes.

DrDiettrich:
Das Pedal dürfte beim Betätigen wohl einen String schicken, in dem irgendwie die 48 Bit ID kodiert ist, also für jedes Pedal was anderes.

Ich denke, dass die 48Bit ID nur die Funkverbindung zwischen dem Fußschalter und dem Empfänger-Stick absichert. Was dann als Tastaturcode gesendet wird, kann man ja selbst ändern:

Jeder Fußschalter erhält einen eindeutigen 48 bitlangen Code, so dass eine Fehlauslösung durch einen fremden Funkfußschalter ausgeschlossen werden kann. Die durch den Fußschalter ausgelöste Tastenkombination kann bei Bedarf durch ein Tool geändert werden,

DrDiettrich:
Eine Arduino Bibliothek für das USB Host Shield wird von der IDE angeboten, darin ist auch das Keyboard (HID) enthalten. Das Pedal dürfte beim Betätigen wohl einen String schicken, in dem irgendwie die 48 Bit ID kodiert ist, also für jedes Pedal was anderes.

Bedeutet das, dass die Bibliothek schon von vornherein vorhanden ist? Wie heist diese und wo kann ich mir die Doku anschauen?

OKL:
Bedeutet das, dass die Bibliothek schon von vornherein vorhanden ist? Wie heist diese und wo kann ich mir die Doku anschauen?

Ausgangspunkt könnte z.B. hier sein:

Unter "Documentation" gibt es weiterführende Links.

Ich habe mir jetzt die Library die auf der Homepage https://store.arduino.cc/arduino-usb-host-shield angegeben wird, runtergeladen.

Nur wo finde ich jetzt die Dokumentation zu dieser Library? Das einzige was ich finde sind die Beispiele.
Ich kann doch aber nicht nur anhand der Beispiele in Erfahrung bringen, welche Funktionen und Methoden diese Library bietet.
Könntet ihr mir da etwas auf die Sprünge helfen?

OKL:
Nur wo finde ich jetzt die Dokumentation zu dieser Library?

So ganz verstehe ich dich nicht. In dem oben angegebenen Link findet sich doch direkt neben dem Download-Link auch der Link zu GitHub, wo die Library gehostet ist. Dort steht schon einiges zur Lib, und dort sind auch noch weitere Verweise zu zusätzlicher Dokumentation enthalten. Hast Du das schon alles gelesen?

Das Problem ist, das selbst wenn ich mir die Examples oder die Librarys anschaue, ich trotzdem keine Funktion entdecke mit der ich einen Dateneingang am USB Host erkennen kann.

Sowas ähnliches wie get(USB Host SHIELD Data) oder sowas in der Art.

OKL:
Das Problem ist, das selbst wenn ich mir die Examples oder die Librarys anschaue, ich trotzdem keine Funktion entdecke mit der ich einen Dateneingang am USB Host erkennen kann.

Wenn ich mir die Angaben auf der Website aus dem Ausgangspost anschaue, dann steht da:

Da der Empfänger eine zusätzliche Tastatur (HID-Device) emuliert, ist kein weiterer Treiber zum Betrieb des Funkfußschalters notwendig.

(Hervorhebung von mir)
Der "Funktaster" verhält sich wohl wie eine ganz normale USB-Tastatur (es ist also kein "Dateneingang"). Das USB-Host-Shield kann eine USB-Tastatur gut ausgewerten. Dafür gibt es auch Beispiele (etwa USB_Host_Shield_2.0/examples/HID/USBHIDMultimediaKbd/USBHIDMultimediaKbd.ino at master · felis/USB_Host_Shield_2.0 · GitHub

  1. Wird die Hardware wirklich als USB-Tastatur gesehen?
    Laut beschreibung schon: "The emoswitch footswitch functions as a standard HID (Human Interface Device) keyboard, so there are no drivers that need to be installed –the emoswitch is ready for use. A unique, 48-bit code is assigned to each emoswitch footswitch, which completely prevents erroneous triggering by other emoswitches or other wireless signals." Also ein Beispiel suchen wo eine USB Tastatur eingelesen wird.

  2. "soll über die Datenleitungen eines RJ11 Kabels ein bestimmtes Signal gesendet werden." ist sehr wage formuliert.

Grüße Uwe