Files
christian 3905647b7f 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.
2026-08-22 11:41:00 +00:00

84 lines
1.3 KiB
Plaintext

# nyan-dance.txt — Choreografie zu MELODY:NYAN (16 s)
#
# python3 proxi_bridge.py --script nyan-dance.txt
#
# Getanzt wird ausschließlich mit MOVE und TURN, nicht mit DANCE/STAMP/SHAKE:
# die teilen sich mit MELODY denselben Worker und würden erst NACH der Melodie
# loslaufen. MOVE und TURN laufen dagegen parallel zur Musik.
#
# Die WAIT-Zeiten sind um 150 ms kürzer als der Schritt davor — so lange
# braucht die Brücke selbst zwischen zwei Befehlen.
FACE:FABULOUS
MELODY:NYAN
WAIT:300
# 1. Groove von einer Seite zur anderen
TURN:LEFT:400
WAIT:300
TURN:RIGHT:400
WAIT:300
TURN:LEFT:400
WAIT:300
TURN:RIGHT:400
WAIT:300
# 2. Vor und zurück im Takt
FACE:SURPRISED
MOVE:FWD:550
WAIT:470
MOVE:BWD:550
WAIT:470
MOVE:FWD:550
WAIT:470
MOVE:BWD:550
WAIT:470
# 3. Kurve — laufen und drehen gleichzeitig
FACE:HAPPY
MOVE:FWD:0
TURN:LEFT:800
WAIT:750
TURN:RIGHT:800
WAIT:750
MOVE:STOP
# 4. Schnelles Wackeln
FACE:SILLY
TURN:LEFT:220
WAIT:130
TURN:RIGHT:220
WAIT:130
TURN:LEFT:220
WAIT:130
TURN:RIGHT:220
WAIT:130
TURN:LEFT:220
WAIT:130
TURN:RIGHT:220
WAIT:130
# 5. Stampfen
FACE:FABULOUS
MOVE:FWD:200
WAIT:110
MOVE:BWD:200
WAIT:110
MOVE:FWD:200
WAIT:110
MOVE:BWD:200
WAIT:110
MOVE:FWD:200
WAIT:110
MOVE:BWD:200
WAIT:110
# 6. Große Schlussdrehung
FACE:HEART
TURN:LEFT:1300
WAIT:1250
TURN:RIGHT:1300
WAIT:1250
STOP
FACE:HEART