Skip to content

simonleek27/starkhacks-2026

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Whiteboard Eraser Robot

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.


Hardware

On-robot electronics

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

Vision & compute

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

Demo surface

  • Magnetic whiteboard (brought by team)

Command Protocol

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.


Setup

Laptop

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.py

ESP32

cd esp32
pio run --target upload
# Edit platformio.ini — set WIFI_SSID, WIFI_PASS, and verify pin assignments

Dependencies

opencv-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.


Repo Structure

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/

About

starkhacks magnetic whiteboard cleaner project github

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors