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:
@@ -0,0 +1,83 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user