Benutzer-Werkzeuge

Webseiten-Werkzeuge


bluetooth-verbindung_mit_linux

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
bluetooth-verbindung_mit_linux [2025/02/08 16:03] – [mbot steuern] torsten.roehlbluetooth-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)** mit ''bleak'' unter Ubuntu angesprochen werden kann. Dabei wird ein Python-Skript (''makeblock_test.py'') verwendet, das testweise die LEDs des mBots schalten kann.+//Diese Anleitung beschreibt, wie  der mBot-Roboter per **BLE (Bluetooth Low Energy)**  unter Ubuntu angesprochen werden kann. Dabei wird ein Python-Skript (''makeblock_test.py'') verwendet, das testweise die LEDs des mBots schalten kann.
 // //
  
   * Voraussetzungen   * Voraussetzungen
-          * Installation der benötigten Pakete+          * Installation und Konfiguration der benötigten Pakete
   * ''bluetoothctrl''   * ''bluetoothctrl''
           * 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)</color>
  
 ==== 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
-</code>+</code> 
  
 ---- ----
  
 ==== Bluetooth einrichten & Berechtigungen setzen ==== ==== Bluetooth einrichten & Berechtigungen setzen ====
-Damit Ihr Benutzer Bluetooth nutzen kannmuss er in die **''bluetooth''-Gruppe** aufgenommen werden:+Damit Bluetooth verwendet werden kann muss der Benutzer in die **''bluetooth''-Gruppe** aufgenommen werden:
  
 <code> <code>
Zeile 44: Zeile 44:
 sudo rfkill unblock bluetooth sudo rfkill unblock bluetooth
 </code> </code>
 +
 +<note>Ältere Ubuntu-Distributionen benötigen möglicherweise einen Link, falls der USB-BT500 ASUS nicht erkannt wird.
 +<code>
 +$ cd /usr/lib/firmware/rtl_bt
 +$ sudo ln -s rtl8761b_fw.bin rtl8761bu_fw.bin
 +</code>
 +☛ https://forums.linuxmint.com/viewtopic.php?t=377733
 +</note>
 +
  
 ---- ----
  
 ===== Python  ===== ===== Python  =====
-Damit Sie BLE-Geräte steuern können, benötigen Sie ''bleak''.+Damit BLE-Geräte gesteuert werden können, wird ''bleak'' benötigt.
  
-==== Installation mit Conda (Empfohlen) ==== 
-<code> 
-conda install -c conda-forge bleak 
-</code> 
  
 ==== Installation mit ''pip'' (System-Python oder venv) ==== ==== Installation mit ''pip'' (System-Python oder venv) ====
-Falls Sie kein Conda nutzen:+Falls ohne Conda gearbeitet wird:
 <code> <code>
 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 ''bluetoothctl'' vorgestellt, mit dem die Bluetooth-Schnittstelle verwaltet werden kann. Außerdem werden einige nützliche Kommandos erläutert, um eine erfolgreiche Verbindung zum mBot herzustellen. 
 +===== 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**                  ^ **Beschreibung**                                               ^
 +| ''bluetoothctl''             | Startet das Bluetooth-Management-Tool                           |
 +| ''scan on ''                 | Sucht nach BLE-Geräten in der Umgebung                         |
 +| ''scan off''                 | Stoppt die Suche nach BLE-Geräten (wichtig für Verbindungsaufbau)|
 +|''devices''                  | Zeigt eine Liste aller erkannten Bluetooth-Geräte              |
 +|''info <MAC>''               | Zeigt detaillierte Informationen zu einem Gerät                |
 +| ''trust <MAC>''              | Markiert das Gerät als vertrauenswürdig                       |
 +| ''connect <MAC>''            | Verbindet sich mit dem angegebenen Gerät                      |
 +| ''disconnect <MAC>''         | Trennt die Verbindung zum Gerät                               |
 +| ''remove <MAC>''             | Entfernt das Gerät aus der Liste bekannter Geräte             |
 +| ''sudo systemctl restart bluetooth'' | Startet den Bluetooth-Dienst neu (bei Verbindungsproblemen) |
 +
 +
 +<WRAP center round tip 90%>
 +  * mbot Bluetooth Modul blinkt → <color #ed1c24>keine</color> Verbindung!
 +  * mbot Bluetool Modul leuchtet Dauerhaft →  Verbindung!
 +</WRAP>
  
-Die Bluetooth-Schnittstelle wird mit dem Tool ''bluetoothctl''kontrolliert. 
  
 ===== Bluetooth-Interface  ===== ===== Bluetooth-Interface  =====
Zeile 84: Zeile 115:
 Er sollte eine MAC-Adresse in diesem Format haben: ''10:A5:62:22:CA:C4''. Er sollte eine MAC-Adresse in diesem Format haben: ''10:A5:62:22:CA:C4''.
  
 +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.
 +<code>
 +scan off # scan wieder beenden!
 +</code>
 +
 +Alternativ kann mit dem Befehl ''devices'' eine Liste der Geräte (und MAC-Adressen) angezeigt werden.
 +<code>
 +[bluetooth]# devices
 +Device 59:65:C3:57:CC:EC 59-65-C3-57-CC-EC
 +Device 25:81:AA:74:75:85 25-81-AA-74-75-85
 +Device 10:A5:62:22:CA:C4 Makeblock_LE10a56222cac4
 +[DEL] Device 25:81:AA:74:75:85 25-81-AA-74-75-85
 +[bluetooth]# 
 +</code>
 ===== 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 #c3c3c3>(10:A5:62:22:CA:C4)</color>// zu ersetzen. Ansonsten muss das Skript nicht angepasst werden.
 +
 +Die Bereiche, die im Skript geändert werden müssen, sind durch
 +<code>
 + # TODO ADJUST START
 +</code> 
 +und
 +<code>
 +# TODO ADJUST END
 +</code> 
 +gekennzeichnet.
 +</WRAP>
 +
 Die folgende Ausgabe von ''bluetoothctl'' zeigt, dass alle Voraussetzungen für das Testen mit Python erfüllt sind! Die folgende Ausgabe von ''bluetoothctl'' zeigt, dass alle Voraussetzungen für das Testen mit Python erfüllt sind!
 <code> <code>
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 ''bleak'' den mBot erkennt. Dieses Skript prüft, ob ''bleak'' den mBot erkennt.
Zeile 167: Zeile 231:
  
  
-Falls Ihr mBot erkannt wird, ist alles korrekt eingerichtet!+Falls der mBot erkannt wird, ist alles korrekt eingerichtet!
  
 ---- ----
Zeile 204: Zeile 268:
  
                 while True:                 while True:
-                    user_input = input("Gib 'r', 'g', 'b', '0' zum Senden ein oder 'q' zum Beenden: ")+                    user_input = input("'r', 'g', 'b', '0' zum Senden'q' zum Beenden: ")
  
                     if user_input == 'q':                     if user_input == 'q':
bluetooth-verbindung_mit_linux.1739030584.txt.gz · Zuletzt geändert: 2025/02/08 16:03 von torsten.roehl