Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Bluetooth-Verbindung mit Linux
Diese Anleitung beschreibt, wie der Makeblock mBot per BLE (Bluetooth Low Energy) mit bleak
unter Ubuntu gesteuert werden kann. Dabei wird mit Python ein Script (makeblock_test.py) genutzt, das ähnlich wie im Beispiel („Bluetooth-Verbindung mit Android“) zu testzwecken die LED's am mBot schalten kann.
1️⃣ 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
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
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
''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. 🚀🔥