Building a Gesture Controlled Robot Car With the ESP32
Full Specification: https://docs.google.com/document/d/1iZLO6WNVLyLmqwsW_UHk5DFcyYZQuqSoZPjXmzJ4qkE/edit?usp=sharing
This one started as a fun weekend project and ended up teaching me more about wireless communication than I expected going in. The idea was straightforward: build a handheld remote that reads how you tilt your wrist and use that to drive a small robot car without a single wire connecting the two.
The Remote and the Car
Both the remote and the car itself run on ESP32 boards. The remote reads tilt data from an MPU6050 gyroscope and streams it over ESP NOW, a lightweight wireless protocol that avoids the overhead of setting up a full network connection just to send a handful of numbers many times a second. On the receiving end, the car unit translates that tilt data directly into motor commands.
Four Wheels and a Battery
The car itself is a simple four wheel build, with four TT gear motors wired in left and right pairs on a plywood chassis, powered by two 18650 lithium ion cells with onboard USB charging and a slide switch so I do not have to unplug a battery every time I want to turn it off.
Why ESP IDF Instead of Arduino
I chose to build this on ESP IDF and FreeRTOS rather than the more familiar Arduino framework, mainly because I wanted gesture sensing and the wireless link to run as genuinely separate tasks rather than fighting each other inside a single loop. It made the whole project slightly harder to set up, but the car responds noticeably faster to a flick of the wrist, and that responsiveness was really the entire point of building it this way.