Hallo, vielleicht kennt hier jemand ein paar Links, die ich derzeit nicht finden kann: Ich möchte ein paar alte Bluetooth-Tastaturen und Gamecontroller (nicht BLE) als Eingabegeräte für Arduino-Projekte nutzen. Blauäugig wie ich zunächst war, habe ich mir einfach ein HC-05 bestellt um dann festzustellen, dass dies nur das serielle Profil unterstützt. Bevor ich mir nun ein AT-09 oder RN41/RN42 oder nochwas anderes bestelle, wollte ich zunächt Codebeispiele finden, in denen Bluetooth HID-Geräte als Eingabegeräte seitens eines Arduino genutzt werden. Leider scheint alle Welt entweder das Gegenteil zu machen: Alte Tastaturen zu Bluetooth-Tastaturen umzubauen oder aber ein Smartphone etc. als Middelware einzusetzen, welches die Tastendrücke auf das serielle Profil umsetzt, so dass auf dem Arduino lediglich Strings vom seriellen Port gelesen werden. "Arduino" ist für mich hier zunächst ein Platzhalter für die von der Arduino-IDE unterstützten Boads < 10€ Ich suche also nach Links zu Beschreibungen, wie ich mit einem geeigneten Bluetooth-Modul vom Arduino aus ein HID-Keyboard pairen kann, um danach auf Tastendrücke zu reagieren. Je nachdem sitze ich vermutlich auch auf dem Schlauch und sehe die naheliegende Lösung nicht. Aber auch auf Produktseiten wie https://www.microchip.com/wwwproducts/en/RN42 steht "Supports HID profile for making accessories such as keyboards, mouse, pointing devices" aber nichts von READING HID devices... Also schon mal vielen Dank an alle, die Konstruktives beitragen können.
Pairen ... OMG. Das ist ja genau so ein feiner Deutsch wie die Amper hochskillen, nur nicht so lustig.
Hmm ich glaube im CC2541 Stack war so eine Funktion mal drin. Ja scheint so http://e2e.ti.com/support/wireless-connectivity/bluetooth/f/538/t/529770?HID-receiver-keyboard- habe ich aber nie benutzt. Sollte aber zumindest in die Richtung gehen.
Ich hab jetzt auch mal eine Zeit lang recherchiert. Und auch kein direkt geeignetes Modul gefunden... Dafür aber eine andere Idee: Die USB Host Shield Library 2.0 Wie das genau abläuft habe ich noch nicht verstanden, so wie es aussieht kann man daran wohl einen USB Bluetooth Stick betreiben und darüber die Tastatur koppeln. Lesestoff: https://github.com/felis/USB_Host_Shield_2.0 https://github.com/felis/USB_Host_Shield_2.0/blob/master/examples/Bluetooth/BTHID/BTHID.ino https://www.circuitsathome.com/mcu/arduino/bluetooth-hid-devices-now-supported-by-the-usb-host-library/ Das Shield verwendet einen MAX3421E USB Host Controller. Grundsätzlich sollte das aber auch auf einem USB fähigen Mikrocontroller ohne zusätzliche Hardware laufen können? Dann hättest du halt statt einem Bluetooth Modul, einen Bluetooth Stick auf der Platine verbaut.
Danke für die Hinweise! In die Richtung habe ich auch schon überlegt. Es erscheint mir allerdings irgendwo durch die Brust ins Auge, wenn ich da erst noch über eine USB-Schicht gehen muss. Insofern wäre dann aber tatsächlich ein USB-fähiger Mikrocontroller das Mittel der Wahl. Wobei: Was ist in so einem Bluetooth-Stick drin? Vermutlich auch nur ein Bluetooth-Modul. Der HC-05/RN42 hat ja laut Datenblatt (https://cdn.sparkfun.com/datasheets/Wireless/Bluetooth/CSR-BC417-datasheet.pdf) auch einen USB-Port an Board. Der SPI-Port wird wohl zum flashen der Firmware benötigt. Der Unterschied zwischen HC-05 und RN42 ist wohl auch nur die Firmware. Was mich hier wirklich etwas wundert ist die Tatsache, das es für diese doch recht grundlegende Funktion noch nicht zig Implementierungen gibt. USB-Tastaturen werden auf USB fähigen Geräten z.B. direkt durch die Arduino-IDE unterstützt (https://www.arduino.cc/en/Reference/GetKey) Jedoch gibt es auch die zahlreichen Boards mit integriertem Bluetooth im Arduino-Zoo keine Keyboard-Bibliothek, bzw. ich habe keine gefunden.
blaue Ratlosigkeit schrieb: > "Arduino" ist für mich hier zunächst ein Platzhalter für die von der > Arduino-IDE unterstützten Boads < 10€ Leg ein paar Teuros für ein NRF52x Board drauf. Das kann (allerdings mit dem NRF SDK) die Gegenstelle für moderne BTLE Hardware sein. Parsen von HID Report Deskriptoren ist dummerweise aber nicht-trivial, und Bluetooth Classic funktioniert mit NRF5x Chips auch nicht.
Entweder verwendest du einen Controller mit integrierter USB-_HOST_-Funktion (da gehört etwas mehr dazu als "nur USB"), oder du verwendest einen Controller, der eine Bluetooth(-HOST)-Schnittste besitzt.
blaue Ratlosigkeit schrieb: > Hallo, > > vielleicht kennt hier jemand ein paar Links, die ich derzeit nicht > finden kann: https://www.lairdtech.com/products/btm44x-series
Zum einen brauchst du einen Bluetooth-Hardwaretreiber für deinen Hostcontroller, zum anderen brauchst du einen Treiber für HID-Geräte. Da USB-HID und Bluetooth-HID identisch sind, kannst du dich da bei Mikrocontrollern mit USB-Host(!) umschauen. Achtung: Alle Tastaturtreiber, die ich gesehen habe, nutzen nur das vereinfachte Bootprotokoll von USB-HID. Das reicht nicht, wenn du ein Gamepad nutzen willst. Der ganze Kram ist leider ziemlich aufwändig. Ben B. schrieb: > Pairen ... OMG. Ist bei Bluetooth der üblicherweise verwendete Begriff. Da das Verfahren nunmal offiziell "Pairing" heißt, ist das auch nachvollziehbar. Was wäre denn deiner Meinung nach angemessen? "Verpaaren"?
S. R. schrieb: > Ben B. schrieb: >> Pairen ... OMG. > > Ist bei Bluetooth der üblicherweise verwendete Begriff. Da das Verfahren > nunmal offiziell "Pairing" heißt, ist das auch nachvollziehbar. Was wäre > denn deiner Meinung nach angemessen? "Verpaaren"? Lernt man heutzutage kein Deutsch mehr zu Hause? Das heisst "koppeln".
John Doe schrieb: > Lernt man heutzutage kein Deutsch mehr zu Hause? > Das heisst "koppeln". Oh. Ups. Ich ziehe meine Aussage zurück und entschuldige mich. :-) Ich spreche tatsächlich kaum Deutsch im normalen Leben. Ausländer und so.
prinzipiell glaube ich, dass es NICHT zu schaffen ist, dass ein Arduino (korrekte) Zeichen einer Bluetoothtastatur auswerten kann: - ATmega328 hat kein USB (und schon gar kein OTG) Einen Empfänger, der bspw. Zeichen einer Bluetoothtastatur empfängt und dekodiert und die dann als Stream sendet ist mir nicht bekannt (belehrt mich eines besseren, ich hätte auch gerne so einen Chip) Selbst eine USB Tastatur an einem Arduino (mit Kabel) klappt nicht (ich habs auf einem STM32F103 versucht und bin auch daran gescheitert, weil eben kein OTG) Auf STM32F4(29) hatte das dann geklappt .. mit Fremdcode (und im besten Fall hab ich da dann davon die hälfte verstanden, was gerade so zum Anpassen gereicht hat). Normalerweise bin ich nicht der Typ der sagt: "geht nicht", hier aber schon! (smile, solltest du das hinbekommen, so bitte hier die Lösung posten, ich glaube ich wäre nicht der einzige den das dann extrem interessieren würde)
Ralph S. schrieb: > prinzipiell glaube ich, dass es NICHT zu schaffen ist, dass ein Arduino > (korrekte) Zeichen einer Bluetoothtastatur auswerten kann: > - ATmega328 hat kein USB (und schon gar kein OTG) Wozu braucht man denn USB, wenn er eine Bluetooth-Tastatur auswerten soll? Einen Bluetooth-Chip braucht man, den muss man extern anknoten. Der Rest (also HCI- und HID-Treiber) ist Software, das kann der AVR/Arduino selbst. Ralph S. schrieb: > Einen Empfänger, der bspw. Zeichen einer Bluetoothtastatur empfängt und > dekodiert und die dann als Stream sendet ist mir nicht bekannt (belehrt > mich eines besseren, ich hätte auch gerne so einen Chip) Nach spontaner Suche habe ich von TI ein CC2564MOD gefunden. Das ist ein vollwertiger HCI-Controller, per UART angeschlossen. Um damit eine BT-Tastatur zu benutzen, ist einiges an Arbeit nötig, aber "geht nicht" gibt's nicht. ;-) Ralph S. schrieb: > Selbst eine USB Tastatur an einem Arduino (mit Kabel) klappt nicht (ich > habs auf einem STM32F103 versucht und bin auch daran gescheitert, weil > eben kein OTG) Logisch. Eine USB-Tastatur ist ein USB-Device und muss an einen USB-Host angeschlossen werden (OTG in Host-Role ist auch ein Host). Wenn du keinen USB-Host hast, geht's halt nicht. Ich hab das mal mit einem STM32F107 gemacht, der konnte das. Ist aber alles andere als trivial.
S. R. schrieb: > Ich hab das mal mit einem > STM32F107 gemacht, der konnte das. Ist aber alles andere als trivial. .. wie gesagt: ich habs mit einem F429 gemacht ... Hmmm, die genannten Chips werd ich mir angucken...
Kennt ihr dieses Tutorial/Projekt? https://www.learnrobotics.org/blog/control-arduino-robot-bluetooth-keyboard/ Scheint genau das gewünschte zu sein.
Alex G. schrieb: > Kennt ihr dieses Tutorial/Projekt? > https://www.learnrobotics.org/blog/control-arduino-robot-bluetooth-keyboard/ > Scheint genau das gewünschte zu sein. Und sonst gehts noch gut? Die wollten keinen PC zwischenschalten. Und komm jetzt nicht mit einem HPC-Rechencluster. Nimm mal weniger von dem komischen Zeugs, dann klappts auch wieder mit dem Lesen und Verstehen...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.