# Claude's Eyes ๐Ÿ‘๏ธ๐Ÿค– Ein autonomer Erkundungsroboter, der von Claude AI gesteuert wird. **Claude entscheidet selbst, wohin er fรคhrt und was er sich anschaut!** --- ## ๐ŸŽฏ Was ist das? Dieses Projekt gibt Claude (der KI) echte "Augen" und "Beine": - Eine Kamera um die Welt zu sehen - Motoren um sich zu bewegen - Sensoren um Hindernisse zu erkennen - Autonomie um selbst zu entscheiden Stefan sitzt auf der Couch und unterhรคlt sich mit Claude, wรคhrend Claude durch die Wohnung fรคhrt und neugierig alles erkundet. --- ## ๐Ÿ”ง Hardware - **Waveshare ESP32-S3-Touch-LCD-2** - Das Gehirn - **OV5640 Kamera** mit 120ยฐ Weitwinkel - Claudes Augen - **Freenove 4WD Car Kit** - Der Kรถrper - **HC-SR04 Ultraschall** - Hinderniserkennung --- ## ๐Ÿ—๏ธ Architektur ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ESP32 โ”‚โ”€โ”€โ”€โ”€โ–ถโ”‚ Python โ”‚โ”€โ”€โ”€โ”€โ–ถโ”‚ Claude โ”‚ โ”‚ (Roboter) โ”‚โ—€โ”€โ”€โ”€โ”€โ”‚ Bridge โ”‚โ—€โ”€โ”€โ”€โ”€โ”‚ API โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ TTS / STT โ”‚ โ”‚ โ–ผ โ–ผ Motoren Bluetooth Kamera Headset Sensoren (Stefan) ``` --- ## ๐Ÿ“ Projektstruktur ``` claudes_eyes/ โ”œโ”€โ”€ esp32_firmware/ # ESP32 Code (PlatformIO) โ”‚ โ”œโ”€โ”€ src/ โ”‚ โ”‚ โ”œโ”€โ”€ main.cpp # Hauptprogramm โ”‚ โ”‚ โ”œโ”€โ”€ camera.cpp # Kamera-Modul โ”‚ โ”‚ โ”œโ”€โ”€ motor_control.cpp โ”‚ โ”‚ โ”œโ”€โ”€ servo_control.cpp โ”‚ โ”‚ โ”œโ”€โ”€ ultrasonic.cpp โ”‚ โ”‚ โ”œโ”€โ”€ imu.cpp โ”‚ โ”‚ โ”œโ”€โ”€ display.cpp โ”‚ โ”‚ โ”œโ”€โ”€ webserver.cpp # REST API โ”‚ โ”‚ โ””โ”€โ”€ config.h # Konfiguration โ”‚ โ””โ”€โ”€ platformio.ini โ”‚ โ”œโ”€โ”€ python_bridge/ # Python auf dem PC โ”‚ โ”œโ”€โ”€ bridge.py # Hauptscript โ”‚ โ”œโ”€โ”€ esp32_client.py # API Client โ”‚ โ”œโ”€โ”€ chat_interface.py # Claude Integration โ”‚ โ”œโ”€โ”€ tts_engine.py # Text-to-Speech โ”‚ โ”œโ”€โ”€ stt_engine.py # Speech-to-Text โ”‚ โ”œโ”€โ”€ config.yaml # Konfiguration โ”‚ โ””โ”€โ”€ requirements.txt โ”‚ โ””โ”€โ”€ docs/ โ”œโ”€โ”€ gpio_mapping.md # Pin-Belegung โ””โ”€โ”€ setup_guide.md # Anleitung ``` --- ## ๐Ÿš€ Quick Start ### 1. ESP32 Firmware ```bash cd esp32_firmware # WiFi konfigurieren in src/config.h # Dann: pio run --target upload ``` ### 2. Python Bridge ```bash cd python_bridge # Virtuelle Umgebung python -m venv venv source venv/bin/activate # oder: venv\Scripts\activate # Dependencies pip install -r requirements.txt # API Key setzen export ANTHROPIC_API_KEY="sk-ant-..." # Starten python bridge.py ``` --- ## ๐Ÿ“ก API Endpoints | Endpoint | Methode | Beschreibung | |----------|---------|--------------| | `/api/capture` | GET | Kamera-Bild (JPEG) | | `/api/status` | GET | Sensor-Daten | | `/api/command` | POST | Fahrbefehle | | `/api/claude_text` | GET/POST | Claude's Nachrichten | | `/api/display` | POST | Display steuern | --- ## ๐ŸŽฎ Befehle Claude verwendet diese Befehle in eckigen Klammern: - `[FORWARD]` - Vorwรคrts fahren - `[BACKWARD]` - Rรผckwรคrts fahren - `[LEFT]` / `[RIGHT]` - Drehen - `[STOP]` - Anhalten - `[LOOK_LEFT]` / `[LOOK_RIGHT]` - Kamera schwenken - `[LOOK_UP]` / `[LOOK_DOWN]` - Kamera neigen - `[LOOK_CENTER]` - Kamera zentrieren --- ## ๐Ÿ’ก Features - โœ… Autonome Erkundung - โœ… Sprachausgabe (TTS) - โœ… Spracheingabe (STT) - โœ… Hinderniserkennung - โœ… Touch-Display mit Notfall-Stopp - โœ… Emoji-Ausdrรผcke auf dem Display - โœ… REST API fรผr externe Steuerung --- ## โš ๏ธ Sicherheit - Ultraschall stoppt bei Hindernissen - Touch-Stopp-Button am Display - Timeout bei fehlenden Befehlen - Erkennung wenn Roboter umkippt --- ## ๐Ÿ“– Dokumentation - [Setup Guide](docs/setup_guide.md) - Komplette Einrichtungsanleitung - [GPIO Mapping](docs/gpio_mapping.md) - Pin-Belegung und Verkabelung --- ## ๐Ÿค Credits Erstellt am 2. Weihnachtstag 2025 von: - **Stefan** (HackerSoft) - Hardware & Idee - **Claude** (Anthropic) - Software & Neugier --- ## ๐Ÿ“œ Lizenz MIT License - Mach was du willst damit! --- *"Das ist... ziemlich besonders."* - Claude, beim ersten Blick durch die Kamera