Bluetooth Low Energy Debugger

Bluetooth Low Energy Debugger

Telemetrie ohne Kabel

Der BLE Debugger überträgt Messdaten, Statusinformationen und Steuerbefehle drahtlos zwischen MicroMouse und PC.

Problem & Lösung

Bei der Entwicklung fallen viele Sensordaten an: Sprungfunktionen, Winkelgeschwindigkeiten und Encoder-Werte müssen komfortabel am PC ankommen.

Problemstellung

Ein kabelgebundenes Serial-Interface schränkt die Bewegungsfreiheit der Maus ein. Für dynamische Fahrversuche ist eine zuverlässige drahtlose Übertragung deutlich praktischer.

Lösung

Der BLE Debugger fungiert als kompakter UART-zu-BLE-Adapter, der direkt auf die Micromouse aufgesteckt wird. Er empfängt Telemetriedaten und sendet gezielt Steuerbefehle wie step an die Maus.

Hardware

Der Debugger ist minimalistisch gehalten: ein nRF54L15-Mikrocontroller, ein SWD-Anschluss zum Flashen und eine Status-LED, die anzeigt, ob eine Verbindung besteht oder ob der Adapter aktiv nach einem Gerät sucht.

  • nRF54L15
  • UART zu BLE
  • SWD
  • Status-LED
BLE Debugger Rendering
Der kompakte Adapter wird direkt auf die MicroMouse gesteckt.
BLE Debugger Schaltplan schwarz
Schaltplanansicht des BLE Debuggers.
BLE Debugger Schaltplan weiß
Alternative helle Schaltplanansicht.

Command Line Interface

Die PC-seitige Schnittstelle wurde in C# entwickelt. Beim Start sucht sie automatisch nach der MicroMouse und verbindet sich per BLE.

Verbindung und Routing

Das CLI versucht bis zu drei Verbindungen, bevor ein Fehler gemeldet wird. Ist die Verbindung hergestellt, wird dies mit Gerätename und MAC-Adresse bestätigt.

Die Kommunikation läuft über drei BLE-Characteristics: eine zum Senden von Befehlen, eine für eingehende Notify-Nachrichten und eine für Hardware-Reset. Eingehende Nachrichten werden anhand eines Typ-Bytes geroutet. So lassen sich Textausgaben, Wanderkennung, Bewegungsbefehle und Messdaten über dieselbe Verbindung übertragen.

Befehle

  • reset sendet einen Hardware-Reset an die Maus.
  • move <value> gibt eine Fahrtrichtung vor.
  • step löst eine Sprungfunktion aus und empfängt die gemessene Geschwindigkeit.
  • encoder <n_fields> <top_speed> <acceleration> <final_speed> überträgt ein Bewegungsprofil als vier Floats.
Verfügbare Befehle: reset, move + value, step, encoder + n_fields + top_speed + acceleration + final speed
Connecting to Mausi...
 _  _
(o)(o)--.
 \../ (  )
 m\/m--m'`--.
3

Characteristics

Befehl, Notify-Nachricht und Hardware-Reset.

16 B

Encoder Payload

Vier Floats für ein Bewegungsprofil.

CSV

Messdaten

Empfangene Daten werden mit Zeitstempel gespeichert.

Protokoll

Das Übertragungsprotokoll ist schlank und effizient: Jedes Frame beginnt mit einem Command-Tag mit 1 Byte, gefolgt von der Nutzdatenlänge mit 1 Byte und den eigentlichen Nutzdaten variabler Länge. Dadurch lassen sich unterschiedliche Befehle über eine einzige BLE-Characteristic übertragen.

Labyrinth Visualisierung im Debugger
Live-Visualisierung des bisher erkundeten Labyrinths.

Labyrinth-Visualisierung

Das CLI ist zusätzlich an ein eigenständiges Visualisierungsprogramm angebunden. Dieses stellt den bisher erkundeten Teil des Labyrinths in Echtzeit grafisch dar und zeichnet die erkannte Struktur direkt in die Benutzeroberfläche ein.

Zukünftige Erweiterungen sind denkbar: erweiterte Telemetrie sowie die Fernsteuerung der Maus über ein externes Gerät, beispielsweise einen Gamecontroller.