Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Bluetooth-Verbindung mit Linux
Diese Anleitung beschreibt, wie Sie den Makeblock mBot per BLE (Bluetooth Low Energy) mit bleak
unter Ubuntu steuern können. Dabei wird ein Python-Skript (makeblock_test.py
) verwendet, das testweise die LEDs des mBots schalten kann.
- Voraussetzungen
bluetoothctrl
- Testen
Voraussetzungen
Systemvoraussetzungen & benötigte Pakete
Getestet wurde mit folgender Umgebung:
- Ubuntu (getestet mit 20.04 & 22.04, sollte auch auf anderen Versionen laufen)
- Python 3.11+ (Empfohlen: Anaconda oder System-Python)
- Bluetooth-Adapter mit BLE-Unterstützung
- USB-BT500 ASUS
Notwendige Pakete installieren
Führen Sie folgende Befehle aus, um alle benötigten Systempakete zu installieren:
sudo apt update sudo apt install bluetooth bluez bluez-tools rfkill libbluetooth-dev
Bluetooth einrichten & Berechtigungen setzen
Damit Ihr Benutzer Bluetooth nutzen kann, muss er in die bluetooth
-Gruppe aufgenommen werden:
sudo usermod -aG bluetooth $USER newgrp bluetooth # Änderungen sofort anwenden
Starten Sie anschließend den Bluetooth-Stack neu:
sudo systemctl restart bluetooth sudo rfkill unblock bluetooth
Python
Damit Sie BLE-Geräte steuern können, benötigen Sie bleak
.
Installation mit Conda (Empfohlen)
conda install -c conda-forge bleak
Installation mit ''pip'' (System-Python oder venv)
Falls Sie kein Conda nutzen:
pip install bleak
Tool: bluetoothctl
Die Bluetooth-Schnittstelle wird mit dem Tool bluetoothctl
kontrolliert.
Bluetooth-Interface
bluetoothctl
Falls Sie bereits in bluetoothctl
sind, sehen Sie eine Eingabezeile wie:
[bluetooth]#
Scannen nach BLE-Geräten
scan on
Lassen Sie den Scan 10–15 Sekunden laufen, bis Ihr mBot erscheint.
Er sollte eine MAC-Adresse in diesem Format haben: 10:A5:62:22:CA:C4
.
wichtige Befehle
Verbindung vertrauen und verbinden
Ersetzen Sie die MAC-Adresse mit der Ihres mBots:
trust 10:A5:62:22:CA:C4 connect 10:A5:62:22:CA:C4
Falls die Verbindung klappt, sehen Sie:
[CHG] Device 10:A5:62:22:CA:C4 Connected: yes Connection successful
Falls die Verbindung fehlschlägt, starten Sie den Bluetooth-Dienst neu:
sudo systemctl restart bluetooth
Starten Sie dann bluetoothctl
erneut und versuchen Sie es noch einmal.
Verbindung trennen und entfernen
Falls Ihr mBot direkt nach dem Verbinden mit Ubuntu verbunden bleibt, trennen Sie ihn:
disconnect 10:A5:62:22:CA:C4 remove 10:A5:62:22:CA:C4
Hinweis: Der mBot sollte nur mit dem Python-Skript verbunden sein, nicht dauerhaft mit Ubuntu!
Testen
BLE-Scanner
Dieses Skript prüft, ob bleak
den mBot erkennt.
Listing 1:makeblock_scanner.py
import asyncio from bleak import BleakScanner async def scan(): print("Scanne nach BLE-Geräten...") devices = await BleakScanner.discover() for device in devices: print(f"Gefunden: {device.name} - {device.address}") asyncio.run(scan())
Falls Ihr mBot erkannt wird, ist alles korrekt eingerichtet!
mbot Steuern
Dieses Script steuert mit einfachen Kommandos die LED's des mBot.
Listing 1:makeblock_test.py
import asyncio from bleak import BleakClient # TODO START # Muss mit der mBot MAC-Adresse ersetzt werden!!! device_address = "10:A5:62:22:CA:C4" # TODO_END WRITE_CHAR_UUID = "0000ffe3-0000-1000-8000-00805f9b34fb" async def send_char(client, char): try: data = bytearray([ord(char)]) await client.write_gatt_char(WRITE_CHAR_UUID, data) print(f"Gesendet: {char}") except Exception as e: print(f"Fehler beim Senden von '{char}': {e}") async def main(): try: async with BleakClient(device_address) as client: if await client.is_connected(): print(f"Verbunden mit {device_address}") while True: user_input = input("Geben Sie 'r', 'g', 'b', '0' zum Senden ein oder 'q' zum Beenden: ") if user_input == 'q': print("Programm beendet.") break elif user_input in ['r', 'g', 'b', '0']: await send_char(client, user_input) else: print("Ungültige Eingabe!") except Exception as e: print(f"Verbindungsfehler: {e}") asyncio.run(main())
Fazit
✅ Bluetooth eingerichtet, Berechtigungen gesetzt
✅ bluetoothctl
genutzt, um mBot zu verbinden
✅ bleak
installiert und getestet
✅ Steuerung mit Python erfolgreich!
Falls Sie das Setup auf einem anderen Rechner wiederholen möchten, folgen Sie einfach dieser Anleitung.