An autonomous robot that drives on a magnetic whiteboard, detects marker-ink dirty zones via a laptop webcam, and erases them with a Magic Eraser head mounted on a tank-tread chassis.
| Component | Qty | Role |
|---|---|---|
| ESP32 | 1 | WiFi HTTP server, motor/sensor controller |
| L298N motor driver | 1 | Drives 4× TT DC gear motors |
| TT DC gear motors | 4 | Tank tread drive |
| LM2596 buck converter | 1 | 12 V → 5 V for ESP32 / sensors |
| 12 V 2 A DC adapter | 1 | Main power |
| MPU-6050 | 1 | Gyro/accel for drift correction |
| VL53L0X ToF sensor | 4 | Obstacle detection (front/back/left/right) |
| IR sensor | 2 | Edge / surface detection |
| OLED 0.96" I2C | 1 | Status display / robot face |
| Component | Qty | Role |
|---|---|---|
| 1080p USB webcam | 1 | Dirty-zone detection + robot tracking |
| Laptop | 1 | Python vision + planner + dispatcher |
| Mini tripod | 1 | Holds webcam aimed at whiteboard |
- Magnetic whiteboard (brought by team)
The laptop sends one command at a time over HTTP POST to http://<ESP32_IP>/command.
The ESP32 responds with {"status":"done"} or {"status":"error","msg":"..."}.
| Command | Payload |
|---|---|
| Move forward | {"cmd":"MOVE","dist_mm":150,"speed":180} |
| Point turn | {"cmd":"TURN","degrees":90,"dir":"right"} |
| Erase in place | {"cmd":"ERASE"} |
| Emergency stop | {"cmd":"STOP"} |
| Return to origin | {"cmd":"HOME"} |
See docs/architecture.md for the full protocol spec and system architecture. See CLAUDE.md for the complete laptop build and setup guide.
python -m venv venv
source venv/bin/activate # macOS/Linux
pip install -r requirements.txt
# Edit laptop/config.py — set ESP32_IP and CAMERA_INDEX
cd laptop && python main.pycd esp32
pio run --target upload
# Edit platformio.ini — set WIFI_SSID, WIFI_PASS, and verify pin assignmentsopencv-contrib-python>=4.9
numpy>=1.26
requests>=2.31
scipy>=1.12
Use opencv-contrib-python (not opencv-python) — ArUco marker support lives in
the contrib modules. Install into a venv; they conflict if mixed.
starkhacks-2026/
├── CLAUDE.md ← laptop build guide (authoritative for AI context)
├── README.md
├── .gitignore
├── requirements.txt
├── docs/
│ └── architecture.md
├── laptop/
│ ├── main.py
│ ├── config.py
│ ├── vision/
│ ├── planner/
│ └── dispatcher/
├── esp32/
│ ├── platformio.ini
│ └── main/
└── tests/