**Ä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>
408 lines
11 KiB
Bash
Executable File
408 lines
11 KiB
Bash
Executable File
#!/bin/bash
|
||
# 🔋 LiPo Power Academy - Batterie-Wissen für Roboter-Bauer
|
||
# "Power braucht Respekt, nicht Angst"
|
||
|
||
# Waldwächter laden
|
||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
source "${SCRIPT_DIR}/../../lib/waldwaechter.sh"
|
||
|
||
# === INTRO ===
|
||
|
||
clear
|
||
cat << "EOF"
|
||
⚡🔋 LiPo POWER ACADEMY 🔋⚡
|
||
|
||
"Power braucht Respekt, nicht Angst"
|
||
|
||
Lerne alles über LiPo-Batterien:
|
||
Spannung, Ladung, Sicherheit & Power!
|
||
EOF
|
||
|
||
echo ""
|
||
sleep 2
|
||
|
||
# === PHASE 1: WAS IST EINE LiPo? ===
|
||
|
||
echo "🐿️ CapaciTobi: Die Grundlagen"
|
||
echo ""
|
||
tobi "Erkläre mir: Was ist eine LiPo-Batterie? Warum nutzen Roboter LiPos statt AA-Batterien? Und was bedeutet '6S' in '6S LiPo'?"
|
||
|
||
echo ""
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo ""
|
||
|
||
read -p "💡 Wie viele Zellen hat DEIN Roboter-Projekt? (z.B. 1S, 2S, 3S, 6S) " CELL_COUNT
|
||
echo ""
|
||
echo "📊 Dein Projekt: $CELL_COUNT LiPo"
|
||
echo ""
|
||
|
||
# === PHASE 2: SPANNUNG VERSTEHEN ===
|
||
|
||
read -p "⚡ Drücke Enter um Spannung zu verstehen..." -r
|
||
clear
|
||
|
||
echo "📊 SPANNUNG & ZELLEN"
|
||
echo ""
|
||
|
||
cat << "EOF"
|
||
🔋 LiPo Zellen-Spannungen:
|
||
|
||
Storage Mode (Lagerung): 3.8V pro Zelle
|
||
Entladen (leer): 3.0V pro Zelle ⚠️ NICHT DARUNTER!
|
||
Voll geladen: 4.2V pro Zelle
|
||
HV Mode (High Voltage): 4.35V pro Zelle
|
||
|
||
Beispiel 6S LiPo:
|
||
- Leer: 6 × 3.0V = 18.0V (nicht weiter entladen!)
|
||
- Storage: 6 × 3.8V = 22.8V (optimal für Lagerung)
|
||
- Voll: 6 × 4.2V = 25.2V (normal geladen)
|
||
- HV: 6 × 4.35V = 26.1V (HV geladen)
|
||
EOF
|
||
|
||
echo ""
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo ""
|
||
|
||
tobi "Für deine $CELL_COUNT Batterie: Rechne mir die Spannungen aus - leer, storage, voll!"
|
||
|
||
echo ""
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo ""
|
||
|
||
# === PHASE 3: SICHERHEIT! ===
|
||
|
||
read -p "🔐 Drücke Enter für Sicherheit..." -r
|
||
clear
|
||
|
||
echo "🦀 CrabbyRust: Sicherheit geht vor!"
|
||
echo ""
|
||
crabbyrust "LiPo-Batterien können gefährlich werden wenn falsch behandelt. Erkläre die 3 größten Gefahren und wie man sie vermeidet: Überladung, Tiefentladung, Cell Imbalance."
|
||
|
||
echo ""
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo ""
|
||
|
||
cat << "EOF"
|
||
⚠️ SICHERHEITS-REGELN:
|
||
|
||
1. NIE unter 3.0V pro Zelle entladen
|
||
2. NIE über 4.2V (oder 4.35V HV) laden
|
||
3. Cell Imbalance > 0.3V = NICHT LADEN!
|
||
4. Immer Balance-Ladegerät nutzen
|
||
5. Bei Beschädigung/Aufblähen = ENTSORGEN
|
||
6. Niemals unbeaufsichtigt laden
|
||
7. LiPo-Safe-Bag zum Laden nutzen
|
||
|
||
🔥 Eine falsch behandelte LiPo kann brennen!
|
||
💚 Aber mit Respekt sind LiPos sicher & kraftvoll!
|
||
EOF
|
||
|
||
echo ""
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo ""
|
||
|
||
# === PHASE 4: LADUNG SIMULIEREN ===
|
||
|
||
read -p "⚡ Drücke Enter fürLade-Simulation..." -r
|
||
clear
|
||
|
||
echo "🎮 LADE-SIMULATION"
|
||
echo ""
|
||
|
||
cat << "EOF"
|
||
📚 Die LiPo 6S Charger Simulation zeigt:
|
||
|
||
🔋 3 Lade-Modi:
|
||
1. Storage Mode (3.8V/Zelle) - Für Lagerung
|
||
2. Standard (4.2V/Zelle) - Normal laden
|
||
3. HV Mode (4.35V/Zelle) - Maximale Leistung
|
||
|
||
🔍 Safety Check:
|
||
Cell Imbalance ≥ 0.30V → ❌ REJECT
|
||
Cell Imbalance < 0.30V → ✅ SAFE TO CHARGE
|
||
|
||
🔗 Probiere selbst:
|
||
https://194-164-194-191.sslip.io/crumbblocks/lipo_6s_charger_sim_safe_v7.html
|
||
|
||
📖 Test Cases:
|
||
T1: Balanced Pack (✅ safe)
|
||
T2: Slightly Unbalanced (✅ safe)
|
||
T3: Critical Imbalance (❌ reject)
|
||
T4: Storage Mode (✅ safe)
|
||
EOF
|
||
|
||
echo ""
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo ""
|
||
|
||
read -p "🤔 Hast du ein Balance-Ladegerät? (j/n/weiß nicht) " CHARGER_TYPE
|
||
|
||
if [[ "$CHARGER_TYPE" == "weiß nicht" ]]; then
|
||
echo ""
|
||
echo "🐌 Schnecki erklärt..."
|
||
schnecki "Ein Balance-Ladegerät lädt jede Zelle einzeln und gleicht Unterschiede aus. Das ist WICHTIG für LiPos! Erkenne ich am Balance-Stecker (kleiner weißer Stecker mit vielen Drähten)."
|
||
echo ""
|
||
fi
|
||
|
||
echo ""
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo ""
|
||
|
||
# === PHASE 5: KAPAZITÄT & LAUFZEIT ===
|
||
|
||
read -p "🔋 Drücke Enter für Kapazität & Laufzeit..." -r
|
||
clear
|
||
|
||
echo "📊 KAPAZITÄT & LAUFZEIT"
|
||
echo ""
|
||
|
||
read -p "⚡ Wie viel mAh hat deine Batterie? (z.B. 2200, 5000) " MAH_CAPACITY
|
||
read -p "🤖 Wie viel Strom zieht dein Roboter ca.? (z.B. 500mA, 2A) " CURRENT_DRAW
|
||
|
||
echo ""
|
||
tobi "Ich rechne: Eine ${MAH_CAPACITY}mAh Batterie mit ${CURRENT_DRAW} Stromverbrauch - wie lange läuft der Roboter?"
|
||
|
||
echo ""
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo ""
|
||
|
||
cat << "EOF"
|
||
💡 Faustregeln:
|
||
|
||
Laufzeit = Kapazität / Stromverbrauch
|
||
(aber nur ~80% nutzen für Batterie-Schonung!)
|
||
|
||
Beispiel:
|
||
2200mAh / 1000mA = 2.2h theoretisch
|
||
2200mAh × 0.8 / 1000mA = 1.76h praktisch
|
||
|
||
C-Rating:
|
||
20C bei 2200mAh = 44A Burst-Power möglich!
|
||
(2.2Ah × 20 = 44A)
|
||
EOF
|
||
|
||
echo ""
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo ""
|
||
|
||
# === PHASE 6: ANSCHLUSS & VERKABELUNG ===
|
||
|
||
read -p "🔌 Drücke Enter für Verkabelung..." -r
|
||
clear
|
||
|
||
echo "🐌 Schnecki: Langsam & sicher anschließen"
|
||
echo ""
|
||
schnecki "Eine LiPo hat 2 Stecker: Haupt-Stecker (dick, für Power) und Balance-Stecker (dünn, für Ladegerät). Zeig mir wie man sie sicher anschließt - mit welchem Stecker zuerst?"
|
||
|
||
echo ""
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo ""
|
||
|
||
cat << "EOF"
|
||
🔌 ANSCHLUSS-REIHENFOLGE:
|
||
|
||
Anschließen (Roboter verwenden):
|
||
1. Balance-Stecker ZUERST (wenn vorhanden)
|
||
2. Haupt-Stecker DANN
|
||
|
||
Trennen:
|
||
1. Haupt-Stecker ZUERST
|
||
2. Balance-Stecker DANN
|
||
|
||
Warum? Verhindert Funkenbildung!
|
||
|
||
⚠️ Polarität beachten:
|
||
Rot = Plus (+)
|
||
Schwarz = Minus (-)
|
||
EOF
|
||
|
||
echo ""
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo ""
|
||
|
||
echo "🐻 Schraubbär: Batterie befestigen"
|
||
schraubaer "Die Batterie muss sicher montiert sein! Sie darf nicht wackeln oder fallen. Welches Material nutzen wir? Klettband, Batterie-Strap, oder Halterung?"
|
||
|
||
echo ""
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo ""
|
||
|
||
# === PHASE 7: LAGERUNG & PFLEGE ===
|
||
|
||
read -p "📦 Drücke Enter für Lagerung & Pflege..." -r
|
||
clear
|
||
|
||
echo "🐘 DumboSQL: Batterie-Tracking"
|
||
echo ""
|
||
dumbosql "Ein Elefant vergisst nie - und du solltest deine Batterie-Zyklen auch tracken! Wie speichern wir: Lade-Datum, Zyklus-Anzahl, Spannung pro Zelle? Welche Datenstruktur?"
|
||
|
||
echo ""
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo ""
|
||
|
||
cat << "EOF"
|
||
📦 LAGERUNG & PFLEGE:
|
||
|
||
Storage Voltage:
|
||
- Immer bei 3.8V/Zelle lagern
|
||
- NICHT voll geladen lagern (schadet Batterie)
|
||
- NICHT leer lagern (Tiefentladung!)
|
||
|
||
Lagerung:
|
||
- Kühl & trocken (Raumtemperatur OK)
|
||
- LiPo-Safe-Bag nutzen
|
||
- Nicht in direktem Sonnenlicht
|
||
- Weg von brennbaren Materialien
|
||
|
||
Lebensdauer:
|
||
- 300-500 Zyklen typisch
|
||
- Bei Aufblähen = ENTSORGEN
|
||
- Kapazitätsverlust normal
|
||
- Cell Imbalance wächst mit Zeit
|
||
|
||
Entsorgung:
|
||
- NICHT in Hausmüll!
|
||
- Entladen auf ~3.0V
|
||
- Zum Recyclinghof oder Elektronik-Händler
|
||
EOF
|
||
|
||
echo ""
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo ""
|
||
|
||
# === PHASE 8: POWER DISTRIBUTION ===
|
||
|
||
read -p "🧭 Drücke Enter für Power-Verteilung..." -r
|
||
clear
|
||
|
||
echo "🧭 Vektor: Power-Verteilung planen"
|
||
echo ""
|
||
vektor "Dein Roboter hat viele Komponenten: Motoren, Servos, Mikrocontroller, Sensoren. Jeder braucht Power. Wie verteilen wir die Spannung? Von A nach B - ich zeige den Weg."
|
||
|
||
echo ""
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo ""
|
||
|
||
cat << "EOF"
|
||
🔌 POWER-VERTEILUNG:
|
||
|
||
LiPo → BEC/Regler → Komponenten
|
||
|
||
Beispiel 3S LiPo (11.1V nominal):
|
||
├─→ Motor-ESC (11.1V direkt)
|
||
├─→ BEC → 5V → Mikrocontroller
|
||
├─→ BEC → 5V → Servos
|
||
└─→ BEC → 3.3V → Sensoren
|
||
|
||
Wichtig:
|
||
- Nicht alle Komponenten vertragen LiPo-Spannung!
|
||
- BEC (Battery Eliminator Circuit) wandelt um
|
||
- Separate BECs für hohe Last (Servos)
|
||
- Gemeinsame Ground-Verbindung!
|
||
|
||
Low Voltage Cutoff (LVC):
|
||
Stoppt Motor bei ~3.0V/Zelle
|
||
Schützt Batterie vor Tiefentladung!
|
||
EOF
|
||
|
||
echo ""
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo ""
|
||
|
||
# === ABSCHLUSS ===
|
||
|
||
read -p "🎓 Drücke Enter für Abschluss..." -r
|
||
clear
|
||
|
||
cat << "EOF"
|
||
⚡🎓 LiPo POWER ACADEMY: ABGESCHLOSSEN! 🎓⚡
|
||
|
||
Du hast gelernt:
|
||
|
||
🔋 Grundlagen: Zellen, Spannung, Kapazität
|
||
⚠️ Sicherheit: 7 goldene Regeln
|
||
🔌 Anschluss: Richtige Reihenfolge
|
||
📊 Berechnung: Laufzeit & C-Rating
|
||
📦 Pflege: Storage Mode & Lagerung
|
||
🧭 Verteilung: BEC & Power-Plan
|
||
🔐 Safety: Cell Balance & LVC
|
||
|
||
"Power braucht Respekt, nicht Angst"
|
||
|
||
Mit diesem Wissen kannst du sicher
|
||
mit LiPo-Batterien arbeiten!
|
||
EOF
|
||
|
||
echo ""
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo ""
|
||
|
||
# === LOG ===
|
||
|
||
LOGDIR="${CRUMB_LOGS_DIR:-$HOME/.crumbrobots_logs}/missions"
|
||
mkdir -p "$LOGDIR"
|
||
TIMESTAMP=$(date -Iseconds)
|
||
|
||
cat > "$LOGDIR/lipo_academy_${TIMESTAMP}.json" << EOF
|
||
{
|
||
"mission": "lipo_power_academy",
|
||
"timestamp": "$TIMESTAMP",
|
||
"cell_count": "$CELL_COUNT",
|
||
"capacity_mah": "$MAH_CAPACITY",
|
||
"current_draw": "$CURRENT_DRAW",
|
||
"has_balance_charger": "$CHARGER_TYPE",
|
||
"crew_used": [
|
||
"tobi",
|
||
"crabbyrust",
|
||
"schnecki",
|
||
"schraubaer",
|
||
"dumbosql",
|
||
"vektor"
|
||
],
|
||
"status": "completed",
|
||
"references": [
|
||
"https://194-164-194-191.sslip.io/crumbblocks/lipo_6s_charger_sim_safe_v7.html"
|
||
]
|
||
}
|
||
EOF
|
||
|
||
echo "📊 Mission geloggt: $LOGDIR/lipo_academy_${TIMESTAMP}.json"
|
||
echo ""
|
||
|
||
cat << "EOF"
|
||
📚 Nächste Schritte:
|
||
|
||
1. 🎮 LiPo Charger Sim probieren:
|
||
https://194-164-194-191.sslip.io/crumbblocks/lipo_6s_charger_sim_safe_v7.html
|
||
|
||
2. 🛒 Equipment besorgen:
|
||
- Balance-Ladegerät
|
||
- LiPo-Safe-Bag
|
||
- Voltage-Checker/Alarm
|
||
|
||
3. 🤖 In Roboter-Projekt einbauen:
|
||
- BEC auswählen
|
||
- Verkabelung planen
|
||
- LVC konfigurieren
|
||
|
||
4. 📖 Batterie-Log führen:
|
||
- Lade-Zyklen zählen
|
||
- Spannungen notieren
|
||
- Storage-Datum merken
|
||
EOF
|
||
|
||
echo ""
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo ""
|
||
|
||
echo "🐿️ CapaciTobi sagt:"
|
||
echo ""
|
||
echo " Respekt vor Power ist Intelligenz."
|
||
echo " Mit diesem Wissen bist du bereit!"
|
||
echo " ⚡💚"
|
||
echo ""
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo ""
|
||
echo "🌲 Zurück zum Wald..."
|
||
sleep 2
|