bluetooth-verbindung_mit_linux
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
bluetooth-verbindung_mit_linux [2025/02/08 16:02] – [mbot steuern] torsten.roehl | bluetooth-verbindung_mit_linux [2025/02/12 13:32] (aktuell) – torsten.roehl | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Bluetooth-Verbindung mit Linux ====== | ====== Bluetooth-Verbindung mit Linux ====== | ||
- | //Diese Anleitung beschreibt, wie der mBot-Roboter per **BLE (Bluetooth Low Energy)** | + | //Diese Anleitung beschreibt, wie der mBot-Roboter per **BLE (Bluetooth Low Energy)** |
// | // | ||
* Voraussetzungen | * Voraussetzungen | ||
- | * Installation der benötigten Pakete | + | * Installation |
* '' | * '' | ||
* Umgang mit dem wichtigen Tool zur Kontrolle der angeschlossenen Bluetoothgeräte. | * Umgang mit dem wichtigen Tool zur Kontrolle der angeschlossenen Bluetoothgeräte. | ||
Zeile 12: | Zeile 12: | ||
====== Voraussetzungen ====== | ====== Voraussetzungen ====== | ||
- | + | ++++ Installation und Konfiguration der benötigten Pakete | | |
- | ===== Systemvoraussetzungen & benötigte Pakete | + | Systemvoraussetzungen & benötigte Pakete |
Getestet wurde mit folgender Umgebung: | Getestet wurde mit folgender Umgebung: | ||
Zeile 19: | Zeile 19: | ||
* **Python 3.11+** (Empfohlen: Anaconda oder System-Python) | * **Python 3.11+** (Empfohlen: Anaconda oder System-Python) | ||
* **Bluetooth-Adapter mit BLE-Unterstützung** | * **Bluetooth-Adapter mit BLE-Unterstützung** | ||
- | * USB-BT500 ASUS | + | * USB-BT500 ASUS <color #c3c3c3> (Dieser Stand stand zum Testen zur Verfügung)</ |
==== Notwendige Pakete installieren ==== | ==== Notwendige Pakete installieren ==== | ||
Zeile 27: | Zeile 27: | ||
sudo apt update | sudo apt update | ||
sudo apt install bluetooth bluez bluez-tools rfkill libbluetooth-dev | sudo apt install bluetooth bluez bluez-tools rfkill libbluetooth-dev | ||
- | </ | + | </ |
---- | ---- | ||
==== Bluetooth einrichten & Berechtigungen setzen ==== | ==== Bluetooth einrichten & Berechtigungen setzen ==== | ||
- | Damit Ihr Benutzer | + | Damit Bluetooth |
< | < | ||
Zeile 44: | Zeile 44: | ||
sudo rfkill unblock bluetooth | sudo rfkill unblock bluetooth | ||
</ | </ | ||
+ | |||
+ | < | ||
+ | < | ||
+ | $ cd / | ||
+ | $ sudo ln -s rtl8761b_fw.bin rtl8761bu_fw.bin | ||
+ | </ | ||
+ | ☛ https:// | ||
+ | </ | ||
+ | |||
---- | ---- | ||
===== Python | ===== Python | ||
- | Damit Sie BLE-Geräte | + | Damit BLE-Geräte |
- | ==== Installation mit Conda (Empfohlen) ==== | ||
- | < | ||
- | conda install -c conda-forge bleak | ||
- | </ | ||
==== Installation mit '' | ==== Installation mit '' | ||
- | Falls Sie kein Conda nutzen: | + | Falls ohne Conda gearbeitet wird: |
< | < | ||
pip install bleak | pip install bleak | ||
Zeile 62: | Zeile 67: | ||
---- | ---- | ||
+ | ++++ | ||
====== Tool: bluetoothctl | ====== Tool: bluetoothctl | ||
+ | ++++ Umgang mit dem wichtigen Tool zur Kontrolle der angeschlossenen Bluetoothgeräte.| | ||
+ | Im diesem Abschnitt wird das Tool '' | ||
+ | ===== Bluetooth-Befehle & Erklärungen ===== | ||
+ | Hauptfunktionen von bluetoothctl | ||
+ | * Aktivieren und Deaktivieren von Bluetooth | ||
+ | * Suchen und Verbinden mit Bluetooth-Geräten | ||
+ | * Koppeln und Entkoppeln von Geräten | ||
+ | * Anzeigen und Verwalten von gekoppelten Geräten | ||
+ | * Ändern von Bluetooth-Einstellungen | ||
+ | |||
+ | ^ **Befehl** | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | |'' | ||
+ | |'' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | |||
+ | |||
+ | <WRAP center round tip 90%> | ||
+ | * mbot Bluetooth Modul blinkt → <color # | ||
+ | * mbot Bluetool Modul leuchtet Dauerhaft → Verbindung! | ||
+ | </ | ||
- | Die Bluetooth-Schnittstelle wird mit dem Tool '' | ||
===== Bluetooth-Interface | ===== Bluetooth-Interface | ||
Zeile 84: | Zeile 115: | ||
Er sollte eine MAC-Adresse in diesem Format haben: '' | Er sollte eine MAC-Adresse in diesem Format haben: '' | ||
+ | Da manche BLE-Geräte keine Verbindung erlauben, während sie noch gescannt werden, sollte der Scan zuvor mit scan off beendet werden, falls scan on verwendet wurde. | ||
+ | < | ||
+ | scan off # scan wieder beenden! | ||
+ | </ | ||
+ | |||
+ | Alternativ kann mit dem Befehl '' | ||
+ | < | ||
+ | [bluetooth]# | ||
+ | Device 59: | ||
+ | Device 25: | ||
+ | Device 10: | ||
+ | [DEL] Device 25: | ||
+ | [bluetooth]# | ||
+ | </ | ||
===== Wichtige Befehle ===== | ===== Wichtige Befehle ===== | ||
Zeile 121: | Zeile 166: | ||
---- | ---- | ||
+ | ++++ | ||
====== Testen ====== | ====== Testen ====== | ||
+ | |||
+ | <WRAP center round tip 90%> | ||
+ | **Um die Skripte zu testen, muss die MAC-Adresse des Makeblock-Bluetooth-Moduls bekannt sein!** | ||
+ | |||
+ | Sie ist im Skript durch die von uns verwendete //<color # | ||
+ | |||
+ | Die Bereiche, die im Skript geändert werden müssen, sind durch | ||
+ | < | ||
+ | # TODO ADJUST START | ||
+ | </ | ||
+ | und | ||
+ | < | ||
+ | # TODO ADJUST END | ||
+ | </ | ||
+ | gekennzeichnet. | ||
+ | </ | ||
+ | |||
Die folgende Ausgabe von '' | Die folgende Ausgabe von '' | ||
< | < | ||
Zeile 148: | Zeile 210: | ||
* ✅ Paired: no → Der mBot wurde nicht gekoppelt (BLE braucht keine Kopplung) | * ✅ Paired: no → Der mBot wurde nicht gekoppelt (BLE braucht keine Kopplung) | ||
* ✅ Liste der UUIDs → Zeigt die verfügbaren GATT-Services und Characteristics des Geräts. | * ✅ Liste der UUIDs → Zeigt die verfügbaren GATT-Services und Characteristics des Geräts. | ||
+ | |||
+ | |||
===== BLE-Scanner ===== | ===== BLE-Scanner ===== | ||
Dieses Skript prüft, ob '' | Dieses Skript prüft, ob '' | ||
Zeile 167: | Zeile 231: | ||
- | Falls Ihr mBot erkannt wird, ist alles korrekt eingerichtet! | + | Falls der mBot erkannt wird, ist alles korrekt eingerichtet! |
---- | ---- | ||
Zeile 189: | Zeile 253: | ||
""" | """ | ||
try: | try: | ||
- | data = bytearray([ord(char)]) | + | |
+ | | ||
await client.write_gatt_char(WRITE_CHAR_UUID, | await client.write_gatt_char(WRITE_CHAR_UUID, | ||
print(f" | print(f" | ||
Zeile 203: | Zeile 268: | ||
while True: | while True: | ||
- | user_input = input(" | + | user_input = input("' |
if user_input == ' | if user_input == ' |
bluetooth-verbindung_mit_linux.1739030556.txt.gz · Zuletzt geändert: 2025/02/08 16:02 von torsten.roehl