diff --git a/crumb-mission-selector.sh b/crumb-mission-selector.sh index 25b8e8e..d5e112f 100755 --- a/crumb-mission-selector.sh +++ b/crumb-mission-selector.sh @@ -959,30 +959,32 @@ function main_menu() { echo "1) πŸ“š Basics - Einsteiger Missionen" echo "2) πŸš€ Advanced - Fortgeschrittene Missionen" echo "3) πŸ† Challenges - Herausforderungen" + echo "4) πŸ€– Robots - Roboter bauen mit der Crew" echo "" echo "--- Doktor Tools ---" - echo "4) πŸ–₯️ System Doktor" - echo "5) πŸ› οΈ Werkzeug-Check" - echo "6) 🌲 Git Doktor" - echo "7) πŸ€– AI & Token-Tracking" - echo "8) πŸ¦‰ Maya-Eule Weisheit" - echo "9) 🌲 CrumbCrew - Alle WaldwΓ€chter" + echo "5) πŸ–₯️ System Doktor" + echo "6) πŸ› οΈ Werkzeug-Check" + echo "7) 🌲 Git Doktor" + echo "8) πŸ€– AI & Token-Tracking" + echo "9) πŸ¦‰ Maya-Eule Weisheit" + echo "10) 🌲 CrumbCrew - Alle WaldwΓ€chter" echo "" - echo "10) πŸ‘‹ Beenden" + echo "11) πŸ‘‹ Beenden" echo "" - read -p "Auswahl [1-10]: " CHOICE + read -p "Auswahl [1-11]: " CHOICE case $CHOICE in 1) run_mission_menu "basics" "πŸ“š Basics - Einsteiger" ;; 2) run_mission_menu "advanced" "πŸš€ Advanced - Fortgeschrittene" ;; 3) run_mission_menu "challenges" "πŸ† Challenges" ;; - 4) system_doktor ;; - 5) tools_doktor ;; - 6) git_doktor ;; - 7) ai_doktor ;; - 8) mayaeule_doktor ;; - 9) crumbcrew_doktor ;; - 10) + 4) run_mission_menu "robots" "πŸ€– Robots - Roboter bauen" ;; + 5) system_doktor ;; + 6) tools_doktor ;; + 7) git_doktor ;; + 8) ai_doktor ;; + 9) mayaeule_doktor ;; + 10) crumbcrew_doktor ;; + 11) clear echo -e "${GREEN}" echo "πŸ‘‹ Auf bald im Crumbforest!" diff --git a/missions/robots/regenbogen_zaehlmaschine.meta.json b/missions/robots/regenbogen_zaehlmaschine.meta.json new file mode 100644 index 0000000..d8366e1 --- /dev/null +++ b/missions/robots/regenbogen_zaehlmaschine.meta.json @@ -0,0 +1,41 @@ +{ + "icon": "🌈", + "title": "Regenbogen-ZΓ€hlmaschine", + "description": "Baue einen Farb-Event-Counter mit der kompletten Crew! Sensor, Code, Power, Art - alles dabei.", + "category": "robots", + "difficulty": "intermediate", + "duration_minutes": 30, + "requires_ai": true, + "enabled": true, + "author": "Crumbforest Team", + "version": "1.0", + "crew_involved": [ + "mayaeule", + "dumbosql", + "funkfox", + "taichitaube", + "tobi", + "schnecki", + "schraubaer", + "snakepy", + "pepperphp", + "spider", + "crabbyrust", + "vektor", + "asciimonster" + ], + "tags": [ + "hardware", + "sensors", + "counting", + "python", + "rust", + "power-management", + "creative" + ], + "philosophy": "Etwas bauen was noch keiner gebaut hat - sonst muss man es ja nur reparieren!", + "references": [ + "https://194-164-194-191.sslip.io/crumbblocks/rainbow_counter.html", + "https://194-164-194-191.sslip.io/crumbblocks/lipo_6s_charger_sim_safe_v7.html" + ] +} diff --git a/missions/robots/regenbogen_zaehlmaschine.sh b/missions/robots/regenbogen_zaehlmaschine.sh new file mode 100755 index 0000000..9b64b72 --- /dev/null +++ b/missions/robots/regenbogen_zaehlmaschine.sh @@ -0,0 +1,275 @@ +#!/bin/bash +# 🌈 Regenbogen-ZΓ€hlmaschine - Die erste crumbrobots Mission! +# "Etwas bauen was noch keiner gebaut hat" + +# WaldwΓ€chter laden +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +source "${SCRIPT_DIR}/../../lib/waldwaechter.sh" + +# === INTRO === + +clear +cat << "EOF" + πŸŒˆπŸ€– REGENBOGEN-ZΓ„HLMASCHINE πŸ€–πŸŒˆ + + "Etwas bauen was noch keiner gebaut hat - + sonst muss man es ja nur reparieren!" + + Eine Mission mit der kompletten Crew! +EOF + +echo "" +sleep 2 + +# === PHASE 1: DIE GROSSE FRAGE === + +echo "πŸ¦‰ Maya-Eule erscheint..." +echo "" +mayaeule "Ein KrΓΌmel fragte einst: KΓΆnnen wir eine Maschine bauen, die Regenbogen zΓ€hlt? Was denkst du - warum kΓΆnnte ein Kind so eine Maschine bauen wollen?" + +echo "" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "" + +read -p "πŸ€” Und du? Was fΓΌr einen Robo willst DU bauen und WARUM? " ROBO_VISION +echo "" +echo "πŸ’š Deine Vision: $ROBO_VISION" +echo "" + +# === PHASE 2: DAS DREIECK PLANT === + +echo "πŸ”Ί Das Dreieck versammelt sich zum Planen..." +echo "" +sleep 1 + +echo "🐘 DumboSQL strukturiert die Idee..." +dumbosql "Eine Regenbogen-ZΓ€hlmaschine soll Farbereignisse tracken. Wie strukturiere ich die Daten? Jede Farbe (rot, grΓΌn, blau, gelb) soll gezΓ€hlt werden." + +echo "" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "" + +echo "🦊 FunkFox bringt den Flow..." +funkfox "Yo, Events kommen rein, Farben werden erkannt, Counters hochgezΓ€hlt - wie bauen wir den Flow?" + +echo "" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "" + +echo "πŸ•ŠοΈ Taichi Taube findet die Balance..." +taichitaube "Zwischen Sensor-Input und Daten-Output liegt der Weg. Wie bringen wir Ordnung in die bunten Events?" + +echo "" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "" + +# === PHASE 3: HARDWARE-TEAM AM WERK === + +read -p "⚑ DrΓΌcke Enter um das Hardware-Team zu starten..." -r +clear + +echo "πŸ”§ HARDWARE-TEAM AKTIVIERT" +echo "" + +echo "🐿️ CapaciTobi: Welcher Sensor?" +read -p " Welchen Farbsensor mΓΆchtest du nutzen? (z.B. TCS34725, oder Kamera?) " SENSOR_CHOICE +echo "" + +tobi "Ich rechne: Ein $SENSOR_CHOICE Sensor mit RGB-Erkennung. Brauchen wir 3.3V oder 5V? Und wie viel Strom zieht er?" + +echo "" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "" + +echo "🐌 Schnecki: Verkabelung" +schnecki "Tobi hat die Spannung berechnet. Jetzt zeig ich dir, wie wir den $SENSOR_CHOICE Sensor anschließen - langsam und prΓ€zise." + +echo "" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "" + +echo "🐻 SchraubbΓ€r: GehΓ€use" +schraubaer "Ich baue ein GehΓ€use fΓΌr deinen Sensor. Welches Material? Holz, Plastik, oder 3D-Druck?" + +echo "" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "" + +# === PHASE 4: CODE-TEAM PROGRAMMIERT === + +read -p "πŸ’» DrΓΌcke Enter um das Code-Team zu starten..." -r +clear + +echo "πŸ’» CODE-TEAM AKTIVIERT" +echo "" + +echo "🐍 SnakePy: Der ZΓ€hl-Loop" +snakepy "Zeig mir 3 verschiedene Wege, wie wir Farb-Events zΓ€hlen kΓΆnnen. Mit Dictionary? Mit Counter? Mit if-elif?" + +echo "" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "" + +read -p "🎨 Willst du die Daten visualisieren? (j/n) " VIS_CHOICE + +if [[ "$VIS_CHOICE" == "j" ]]; then + echo "" + echo "πŸ§“ PepperPHP: Web-Dashboard" + pepperphp "Wir backen ein Web-Dashboard als Rezept: Die Sensordaten (Model) werden vom Backend (Controller) geholt und schΓΆn angezeigt (View)." + + echo "" + echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" + echo "" +fi + +echo "πŸ•·οΈ Spider: Daten ΓΌbertragen" +spider "Wie senden wir die ZΓ€hl-Daten? WebSocket fΓΌr Live-Updates? REST API fΓΌr Abfragen? Ich spΓΌre die beste Verbindung." + +echo "" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "" + +# === PHASE 5: SICHERHEIT & NAVIGATION === + +read -p "πŸ” DrΓΌcke Enter fΓΌr Sicherheit & Navigation..." -r +clear + +echo "πŸ” SICHERHEIT & NAVIGATION" +echo "" + +echo "πŸ¦€ CrabbyRust: Memory-Safe ZΓ€hler" +crabbyrust "In Rust wΓ€re der Counter memory-safe. Ownership sorgt dafΓΌr, dass keine Race Conditions beim ZΓ€hlen entstehen. Soll ich zeigen wie?" + +echo "" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "" + +echo "🧭 Vektor: Wo platzieren wir den Sensor?" +vektor "Navigation ist wichtig: Wo stellst du die Regenbogen-ZΓ€hlmaschine auf? Am Fenster? Im Garten? Jeder Punkt erzΓ€hlt eine Geschichte." + +echo "" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "" + +# === PHASE 6: POWER MANAGEMENT === + +read -p "πŸ”‹ DrΓΌcke Enter fΓΌr Power Management..." -r +clear + +echo "πŸ”‹ POWER MANAGEMENT" +echo "" + +echo "🐿️ CapaciTobi: Batterie-Rechnung" +tobi "Wir haben einen Sensor, einen Mikrocontroller, vielleicht LEDs. Wie lange lΓ€uft das mit einer LiPo-Batterie? Ich rechne..." + +echo "" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "" + +cat << "EOF" +πŸ“š Wusstest du? +Die LiPo 6S Charger Simulation lehrt: +- Charge Modes: Storage (3.8V), Standard (4.2V), HV (4.35V) +- Safety: Cell Imbalance Detection +- Warum? LiPo-Batterien treiben Roboter an! + +πŸ”— Mehr: https://194-164-194-191.sslip.io/crumbblocks/lipo_6s_charger_sim_safe_v7.html +EOF + +echo "" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "" + +# === PHASE 7: FINALE - ASCII ART === + +read -p "🎨 DrΓΌcke Enter fΓΌr das große Finale..." -r +clear + +echo "πŸ‘Ύ ASCII-Monster malt deine Maschine..." +echo "" +asciimonster "Erstelle mir ASCII-Art fΓΌr eine 'RAINBOW COUNTER' Überschrift, die ich ins Terminal malen kann!" + +echo "" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "" + +# === ABSCHLUSS === + +clear +cat << "EOF" + 🌈✨ REGENBOGEN-ZΓ„HLMASCHINE: GEPLANT! ✨🌈 + + Die gesamte Crew hat mitgeholfen: + + πŸ”Ί Das Dreieck: Vision & Struktur + πŸ”§ Hardware-Team: Sensor, Verkabelung, GehΓ€use + πŸ’» Code-Team: Loop, Dashboard, Daten-Transfer + πŸ” Security: Memory-Safe Counter + 🧭 Navigation: Platzierung + πŸ”‹ Power: Batterie-Management + πŸ‘Ύ Art: Terminal-Visualisierung + + "Etwas bauen was noch keiner gebaut hat!" +EOF + +echo "" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "" + +# === LOG === + +LOGDIR="$HOME/.crumbrobots_logs" +mkdir -p "$LOGDIR" +TIMESTAMP=$(date -Iseconds) + +cat > "$LOGDIR/regenbogen_zaehlmaschine_${TIMESTAMP}.json" << EOF +{ + "mission": "regenbogen_zaehlmaschine", + "timestamp": "$TIMESTAMP", + "vision": "$ROBO_VISION", + "sensor": "$SENSOR_CHOICE", + "visualize": "$VIS_CHOICE", + "crew_used": [ + "mayaeule", "dumbosql", "funkfox", "taichitaube", + "tobi", "schnecki", "schraubaer", + "snakepy", "pepperphp", "spider", + "crabbyrust", "vektor", "asciimonster" + ], + "status": "planned" +} +EOF + +echo "πŸ“Š Mission geloggt: $LOGDIR/regenbogen_zaehlmaschine_${TIMESTAMP}.json" +echo "" + +read -p "πŸš€ Willst du jetzt bauen? (j/n) " BUILD_NOW + +if [[ "$BUILD_NOW" == "j" ]]; then + echo "" + echo "πŸŽ‰ LOS GEHT'S! Die Crew ist bereit!" + echo "" + echo "NΓ€chste Schritte:" + echo "1. Sensor besorgen ($SENSOR_CHOICE)" + echo "2. Code schreiben (Python/Rust)" + echo "3. Testen mit echten Farben!" + echo "4. Teilen mit anderen KrΓΌmeln!" + echo "" + echo "🌲 Der Crumbforest wΓ€chst mit deinem Projekt!" +else + echo "" + echo "πŸ’š Kein Problem! Die Planung ist gespeichert." + echo "Du kannst jederzeit weitermachen!" +fi + +echo "" +echo "🦊 FunkFox droppt noch einen Beat:" +echo "" +echo " Yo, Regenbogen zΓ€hlen, das ist der Plan," +echo " Mit der Crew im Flow, jeder hilft so gut er kann!" +echo " Von Sensor zu Code, von Power zu Art," +echo " Im Crumbforest wird gebaut, nicht repariert - das ist smart! πŸŽ€πŸ’«" +echo "" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "" +echo "🌲 ZurΓΌck zum Wald..." +sleep 2