Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Bluetooth-Verbindung mit Linux
Bluetooth & BLE-Setup für Makeblock mBot unter Ubuntu
Diese Anleitung beschreibt, wie du den Makeblock mBot per BLE (Bluetooth Low Energy) mit bleak
unter Ubuntu steuerst. Sie enthält alle benötigten Befehle und Schritte, um das Setup auf einem neuen Rechner zu wiederholen.
1️⃣ 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
📌 Notwendige Pakete installieren
Führe folgende Befehle aus, um alle benötigten Systempakete zu installieren:
sudo apt update sudo apt install bluetooth bluez bluez-tools rfkill libbluetooth-dev
2️⃣ Bluetooth einrichten & Berechtigungen setzen
Damit der Benutzer Bluetooth nutzen kann, muss er in die bluetooth
-Gruppe aufgenommen werden:
sudo usermod -aG bluetooth $USER newgrp bluetooth # Änderungen sofort anwenden
Danach den Bluetooth-Stack neu starten:
sudo systemctl restart bluetooth sudo rfkill unblock bluetooth
3️⃣ ''bluetoothctl'' Befehle – mBot verbinden
Um den mBot zu verbinden, benutze bluetoothctl
.
📌 Schritt 1: Bluetooth-Interface starten
bluetoothctl
Falls du bereits in bluetoothctl
bist, siehst du eine Eingabezeile wie:
[bluetooth]#
📌 Schritt 2: Scanne nach BLE-Geräten
scan on
Lass den Scan 10–15 Sekunden laufen, bis dein mBot erscheint.
Er sollte eine MAC-Adresse in diesem Format haben: 10:A5:62:22:CA:C4
.
📌 Schritt 3: Gerät vertrauen & verbinden
Ersetze die MAC-Adresse mit der deines mBot:
trust 10:A5:62:22:CA:C4 connect 10:A5:62:22:CA:C4
Falls die Verbindung klappt, siehst du:
[CHG] Device 10:A5:62:22:CA:C4 Connected: yes Connection successful
Falls die Verbindung fehlschlägt, starte den Bluetooth-Dienst neu:
sudo systemctl restart bluetooth
Dann wieder bluetoothctl
starten und erneut connect
versuchen.
Falls dein mBot direkt nach dem Verbinden mit Ubuntu verbunden bleibt, trenne 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!
4️⃣ Python & ''bleak'' installieren
Damit wir BLE-Geräte steuern können, brauchen wir bleak
.
📌 Installation mit Conda (Empfohlen)
conda install -c conda-forge bleak
📌 Installation mit ''pip'' (System-Python oder venv)
Falls du kein Conda nutzt:
pip install bleak
5️⃣ Test-Skript: BLE-Scanner
Dieses Skript prüft, ob bleak
dein mBot erkennt.
📌 Erstelle ''scan_ble.py'' mit folgendem Inhalt:
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())
📌 Starte das Skript:
python3 scan_ble.py
Falls dein mBot erkannt wird, ist alles korrekt eingerichtet! 🎉
6️⃣ Steuer-Skript: ''r'', ''g'', ''b'', ''0'' senden
Jetzt steuern wir den mBot mit bleak
.
📌 Erstelle ''makeblock_control.py'' mit folgendem Inhalt:
import asyncio from bleak import BleakClient device_address = "10:A5:62:22:CA:C4" # Ersetze mit deiner MAC-Adresse 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("Gib '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())
📌 Starte das Skript:
python3 makeblock_control.py
🎉 Fazit
✅ Bluetooth eingerichtet, Berechtigungen gesetzt
✅ bluetoothctl
genutzt, um mBot zu verbinden
✅ bleak
installiert und getestet
✅ Steuerung mit Python erfolgreich!
Falls du das Setup auf einem anderen Rechner wiederholen möchtest, folge einfach dieser Anleitung. 🚀🔥