Proxi AI — Spielzeug-Roboter mit natürlicher Sprache steuern

Firmware, Bluetooth-Brücke und Agent-Skill für den KOSMOS-Proxi: einmal
flashen, danach hört der Roboter über Bluetooth LE auf Textbefehle. Was die
Befehle schickt, ist ihm egal — ein Skript, ein curl, oder ein KI-Agent, der
aus "mach mal was Lustiges" eine Choreografie baut.

  firmware/   MakeCode-Projekt (TypeScript) und fertige .hex für V1 und V2
  bridge/     BLE-Brücke und HTTP-API, einzige Abhängigkeit ist bleak
  agent/      Skill-Definition: Alltagssprache -> Befehle
  tools/      Quelltext aus .hex extrahieren, Musik-Tabellen prüfen
  docs/       Protokoll, Einrichtung, Hardware, Lizenzen

Zwei Dinge, die sonst nirgends stehen und in docs/HARDWARE.md dokumentiert
sind: die Pin-Belegung des Roboters ist nicht öffentlich, sie wurde aus den
mitgelieferten .hex-Dateien rekonstruiert (tools/hex_source.py holt sie
heraus). Und der Ton braucht zwingend eine ganzzahlige Frequenz sowie Pin P0
— sonst kracht der Lautsprecher, der Aufruf hängt und die Bluetooth-
Verbindung stirbt.

Am echten Roboter durchgetestet: Verbindung, Sensoren, Display, 41 Sekunden
Musik am Stück, alle Bewegungsrichtungen, Musik und Fahren gleichzeitig,
Tanzfiguren, Not-Stopp mitten in der Bewegung, Autostart nach Neustart.

MIT-Lizenz. Die Hardware-Extension stammt von kaku111 (TobbieII) und die
Notendaten aus pxt-microbit, beide ebenfalls MIT — siehe THIRD-PARTY-NOTICES.
This commit is contained in:
2026-08-22 11:41:00 +00:00
commit 3905647b7f
26 changed files with 22414 additions and 0 deletions
+144
View File
@@ -0,0 +1,144 @@
<div align="center">
<img src="docs/img/proxi.png" width="360" alt="Der Proxi-Roboter">
# Proxi AI
**Einen Spielzeug-Roboter mit natürlicher Sprache steuern.**
Ein Kind sagt „lass ihn tanzen" — eine KI macht daraus Befehle, der Roboter tanzt.
[![Lizenz: MIT](https://img.shields.io/badge/Lizenz-MIT-blue.svg)](LICENSE)
[![micro:bit V1 + V2](https://img.shields.io/badge/micro%3Abit-V1%20%2B%20V2-brightgreen.svg)](#)
[![Bluetooth LE](https://img.shields.io/badge/Bluetooth-LE-blue.svg)](#)
</div>
---
Der [KOSMOS Proxi](https://kosmos.de/proxi) ist ein Bausatz-Roboter mit einem
BBC micro:bit als Kopf. Ab Werk programmiert man ihn mit Blöcken im Browser und
spielt das Ergebnis per USB auf.
Dieses Projekt ersetzt das durch eine Firmware, die **einmal** geflasht wird und
danach über Bluetooth auf Textbefehle hört. Was die Befehle schickt, ist ihr
egal — ein Skript, ein `curl`, oder eben ein KI-Agent, der aus „mach mal was
Lustiges" eine Choreografie baut.
```
„Proxi, freu dich!"
KI-Agent ──HTTP──▶ Brücke (Python) ──Bluetooth LE──▶ Proxi
Raspberry Pi
```
## In drei Schritten
```bash
# 1. Firmware aufspielen: firmware/proxi-ai.hex auf das MICROBIT-Laufwerk kopieren
# 2. Brücke starten (irgendein Rechner mit Bluetooth)
pip install bleak
python3 bridge/proxi_bridge.py --serve 8080
# 3. Proxi etwas sagen lassen
curl -X POST localhost:8080/command \
-H 'Content-Type: application/json' \
-d '{"command":"DANCE:3"}'
```
> ⚠️ Die Brücke hat **keine Authentifizierung** — wer sie erreicht, fährt den
> Roboter. Im Heimnetz ist das gewollt und unproblematisch; gib den Port aber
> nicht nach außen frei. Details in [docs/SETUP.md](docs/SETUP.md).
Ausführlich: **[docs/SETUP.md](docs/SETUP.md)**
## Was Proxi kann
| | |
|---|---|
| 🚶 **Laufen** | `MOVE:FWD:1200` · `TURN:LEFT:700` — vor, zurück, drehen, Kurven |
| 💃 **Tanzen** | `DANCE:3` · `STAMP:2` · `SHAKE:2` — oder eigene Choreografien |
| 😀 **Gesichter** | `FACE:HAPPY` · `FACE:RAW:0:10:0:17:14` — 34 Symbole oder eigene Pixelbilder |
| 🎵 **Musik** | `MELODY:NYAN` · `TONE:880:200` — 20 Melodien oder Ton für Ton komponiert |
| 📝 **Text** | `TEXT:Hallo Ben` — läuft über das LED-Display |
| 👀 **Sehen** | `SENSOR:ALL` — Infrarot links und rechts, erkennt Hindernisse |
| 🛑 **Not-Stopp** | `STOP` — wirkt auch mitten in einer Bewegung. Taste A am Roboter immer |
Vollständig: **[docs/PROTOCOL.md](docs/PROTOCOL.md)**
## Warum das interessant ist
**Die Bausteine sind fest, das Gebaute nicht.** Eine KI kann keine neuen
Grundbefehle erfinden — aber aus `FACE:RAW` jedes denkbare Gesicht malen, aus
`TONE` eigene Melodien komponieren und aus `MOVE`/`TURN` Choreografien bauen,
die niemand vorgegeben hat. [`agent/proxi-control.md`](agent/proxi-control.md)
ist der fertige Skill dafür.
**Die Pin-Belegung stand nirgends.** Kosmos dokumentiert sie nicht. Sie steckte
in den mitgelieferten `.hex`-Dateien — MakeCode hängt jedes Projekt komprimiert
an die kompilierte Firmware an. [`tools/hex_source.py`](tools/hex_source.py)
holt sie wieder heraus und funktioniert mit jeder micro:bit-`.hex`, nicht nur
mit denen von Proxi.
**Zwei Fallstricke, die je einen Abend gekostet haben.** Die Frequenz für
`music.playTone()` muss ganzzahlig sein — als Kommazahl kracht der Lautsprecher,
der Aufruf hängt und die Bluetooth-Verbindung stirbt. Und der Ton muss
ausdrücklich auf Pin P0 gelegt werden, sonst läuft er über den Audio-Mixer
des micro:bit V2 und lässt den Funk nicht mehr zum Zug kommen. Beides steht mit
Messwerten in [docs/HARDWARE.md](docs/HARDWARE.md).
## Aufbau
| | |
|---|---|
| [`firmware/`](firmware) | MakeCode-Projekt (TypeScript) und fertige `.hex` für V1 und V2 |
| [`bridge/`](bridge) | Bluetooth-Brücke und HTTP-API — nur `bleak` als Abhängigkeit |
| [`agent/`](agent) | Skill-Definition: Alltagssprache → Befehle |
| [`tools/`](tools) | Quelltext aus `.hex` extrahieren, Musik-Tabellen prüfen |
| [`docs/`](docs) | Protokoll, Einrichtung, Hardware, Lizenzen |
## Stand
Am echten Roboter durchgetestet: Verbindung, Sensoren, Display, 41 Sekunden
Musik am Stück, alle Bewegungsrichtungen, Musik und Fahren gleichzeitig,
Tanzfiguren, Not-Stopp mitten in der Bewegung, Autostart nach Neustart.
## Lizenz
MIT — siehe [LICENSE](LICENSE). Die Hardware-Extension und die Notendaten
stammen aus fremden MIT-Projekten, ihre Vermerke stehen in
[THIRD-PARTY-NOTICES](THIRD-PARTY-NOTICES).
---
## Wer das gebaut hat
Ich bin **Christian Gärtner**, selbstständiger **KI-Dozent und Berater**. Ich
zeige Unternehmen und Teams, wie künstliche Intelligenz im Alltag tatsächlich
funktioniert — ohne Buzzword-Bingo, dafür an echten Projekten.
Dieses hier ist eins davon, und es zeigt ziemlich genau, was ich meine: Ein
KI-Agent steuert keine Tabellen, sondern einen Roboter, der im Kinderzimmer
herumläuft. Die Bausteine sind fest, was daraus gebaut wird nicht — dieselbe
Frage stellt sich in jedem Unternehmen, das überlegt, wo KI bei ihm konkret
etwas beiträgt. Und die Fallstricke stehen hier dokumentiert statt versteckt,
weil das der Teil ist, an dem Projekte in der Praxis hängenbleiben.
<div align="center">
**KI-Schulungen · KI-Beratung · KI-Projekte**
**[gaertner.onl](https://gaertner.onl)** — Künstliche Intelligenz verständlich gemacht
[**Termin vereinbaren**](https://gaertner.onl/termin/) · [Kontakt](https://gaertner.onl/kontakt/) · [Blog](https://gaertner.onl/blog/)
</div>
<!--
Dieser Ordner ist in sich geschlossen und lässt sich am Stück in ein
eigenes Repo kopieren.
docs/img/proxi.png ist das Produktbild von KOSMOS. Wer das vermeiden will,
ersetzt es durch ein eigenes Foto — es ist genau diese eine Zeile oben.
-->