esp32-claude-robbie/claudes_eyes/docs/setup_guide.md

5.9 KiB

Setup Guide - Claude's Eyes

Voraussetzungen

Hardware

  • Waveshare ESP32-S3-Touch-LCD-2
  • OV5640 Kamera mit 120° Weitwinkelobjektiv
  • Freenove 4WD Car Kit
  • USB-C Kabel zum Flashen
  • Powerbank (oder LiPo Akku)

Software

  • PlatformIO (VS Code Extension oder CLI)
  • Python 3.9+
  • Git

Teil 1: ESP32 Firmware

1.1 Repository klonen

cd ~/Dokumente/programmierung/esp32
# Das Projekt ist bereits in claudes_eyes/

1.2 WiFi konfigurieren

Öffne esp32_firmware/src/config.h und ändere:

#define WIFI_SSID "DEIN_WLAN_NAME"
#define WIFI_PASSWORD "DEIN_WLAN_PASSWORT"
#define API_KEY "dein_geheimer_api_key"

1.3 Firmware kompilieren

cd claudes_eyes/esp32_firmware

# Mit PlatformIO CLI:
pio run

# Oder in VS Code:
# PlatformIO Icon -> Build

1.4 Firmware flashen

  1. ESP32-S3 via USB-C anschließen
  2. Boot-Modus aktivieren (falls nötig: BOOT-Taste halten beim Einstecken)
pio run --target upload

# Monitor öffnen:
pio device monitor

1.5 Erfolg prüfen

Im Serial Monitor solltest du sehen:

╔═══════════════════════════════════════╗
║        Claude's Eyes v1.0             ║
║   Autonomous Exploration Robot        ║
╚═══════════════════════════════════════╝

[Main] Initializing display...
[Main] Initializing camera...
[Camera] PSRAM found, using double buffering
...
╔═══════════════════════════════════════╗
║          SYSTEM READY                 ║
║   IP: 192.168.178.xxx                 ║
║   Waiting for Claude...               ║
╚═══════════════════════════════════════╝

Teil 2: Python Bridge

2.1 Python Environment einrichten

cd claudes_eyes/python_bridge

# Virtuelle Umgebung erstellen (empfohlen)
python -m venv venv

# Aktivieren
# Linux/Mac:
source venv/bin/activate
# Windows:
venv\Scripts\activate

# Dependencies installieren
pip install -r requirements.txt

2.2 PyAudio installieren (für Mikrofon)

Linux:

sudo apt install python3-pyaudio portaudio19-dev
pip install pyaudio

Windows:

pip install pipwin
pipwin install pyaudio

Mac:

brew install portaudio
pip install pyaudio

2.3 Konfiguration anpassen

Kopiere die Konfiguration:

cp config.yaml config.local.yaml

Bearbeite config.local.yaml:

esp32:
  host: "192.168.178.XXX"  # IP des Roboters
  api_key: "dein_api_key"  # Muss mit config.h übereinstimmen!

claude:
  api_key: ""  # Oder setze ANTHROPIC_API_KEY Environment Variable

2.4 Anthropic API Key

Erstelle einen API Key auf https://console.anthropic.com/

# Linux/Mac:
export ANTHROPIC_API_KEY="sk-ant-..."

# Windows (PowerShell):
$env:ANTHROPIC_API_KEY="sk-ant-..."

2.5 Bridge starten

# Normal:
python bridge.py

# Mit eigener Config:
python bridge.py --config config.local.yaml

# Simulation ohne Hardware:
python bridge.py --simulate

# Debug-Modus:
python bridge.py --debug

Teil 3: Hardware zusammenbauen

3.1 Freenove Kit

  1. Folge der Freenove Anleitung für den mechanischen Aufbau
  2. NICHT den mitgelieferten ESP32 einbauen!
  3. Motorverkabelung zum Shield notieren

3.2 Waveshare Board einbauen

  1. Montiere das Waveshare Board anstelle des Freenove ESP32
  2. Verbinde die Kabel gemäß docs/gpio_mapping.md
  3. Kamera an den 24-Pin Connector anschließen

3.3 Verkabelung

Freenove Shield          Waveshare Board
─────────────────────────────────────────
Motor A IN1      <--->   GPIO 39
Motor A IN2      <--->   GPIO 40
Motor A PWM      <--->   GPIO 41
Motor B IN1      <--->   GPIO 42
Motor B IN2      <--->   GPIO 2
Motor B PWM      <--->   GPIO 1
Servo 1 (Pan)    <--->   GPIO 38
Servo 2 (Tilt)   <--->   GPIO 37
US Trigger       <--->   GPIO 21
US Echo          <--->   GPIO 47
5V               <--->   5V
GND              <--->   GND

3.4 Stromversorgung

  • Option A: USB-C Powerbank am ESP32
  • Option B: LiPo Akku am Waveshare Batterieanschluss
  • Motoren können separate Stromversorgung brauchen

Teil 4: Testen

4.1 API testen

# Im Browser:
http://192.168.178.XXX/

# Kamera testen:
http://192.168.178.XXX/api/capture?key=dein_api_key

# Status abrufen:
curl "http://192.168.178.XXX/api/status?key=dein_api_key"

# Motor testen:
curl -X POST "http://192.168.178.XXX/api/command?key=dein_api_key" \
     -H "Content-Type: application/json" \
     -d '{"action":"forward","speed":30,"duration_ms":500}'

4.2 Python Client testen

python esp32_client.py 192.168.178.XXX

4.3 TTS/STT testen

python tts_engine.py
python stt_engine.py

Troubleshooting

ESP32 bootet nicht

  • USB-Kabel prüfen (manche sind nur zum Laden)
  • Boot-Taste beim Einstecken halten
  • COM-Port in PlatformIO prüfen

Kamera funktioniert nicht

  • Flexkabel prüfen (richtig eingesteckt?)
  • PSRAM aktiviert? (sollte automatisch sein)
  • Pin-Konflikte mit Display prüfen

WiFi verbindet nicht

  • SSID und Passwort prüfen
  • 2.4 GHz Netzwerk? (5 GHz wird nicht unterstützt)
  • Router in Reichweite?

Motoren drehen nicht

  • Stromversorgung prüfen
  • GPIO-Pins korrekt verbunden?
  • ENABLE_MOTORS in config.h auf true?

TTS/STT funktioniert nicht

  • PyAudio korrekt installiert?
  • Mikrofon-Berechtigung erteilt?
  • Audio-Ausgabegerät prüfen

Nächste Schritte

  1. Hardware zusammenbauen
  2. GPIO-Pins verifizieren und ggf. in config.h anpassen
  3. Firmware flashen
  4. Python Bridge einrichten
  5. Ersten Testlauf machen
  6. Claude die Wohnung erkunden lassen!

Viel Spaß beim Erkunden! 🤖