**Änderung: Option A - logs/ im Repo**
Vorher:
- Logs in ~/.{character}_logs/ (User Home Directory)
- Multi-Projekt aber verstreut
- Nicht im Repo sichtbar
Nachher:
- Logs in logs/{character}/ (Repo Directory)
- Projekt-spezifisch & übersichtlich
- Mit Fallback: ${CRUMB_LOGS_DIR:-$HOME/.{character}_logs}
- Für Standalone-Nutzung
**Geänderte Files:**
- lib/waldwaechter.sh: CRUMB_LOGS_DIR exportiert
- Alle 17 crumbforest_roles/*: LOGDIR updated
- missions/robots/*: Mission logs → logs/missions/
- .gitignore: logs/ hinzugefügt
**Log-Struktur:**
```
logs/
├── tobi/
│ ├── tobi_history.json
│ ├── token_log.json
│ └── ...
├── crabbyrust/
├── mayaeule/
└── missions/
```
**Tested:** ✅ Tobi funktioniert, Logs landen in logs/tobi/
🌲 "Was kostet die Frage eines Kindes?" - jetzt transparent im Repo!
🤖 Generated with Claude Code
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
276 lines
8.8 KiB
Bash
Executable File
276 lines
8.8 KiB
Bash
Executable File
#!/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="${CRUMB_LOGS_DIR:-$HOME/.crumbrobots_logs}/missions"
|
|
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
|