Those little ESP32-CAM boards which mate the WiFi-enabled microcontroller with a small parallel-interface camera module have been with us for years, and while they are undeniably cool to play with, they sometimes stretch the available performance in trying to process and stream video. [Mattsroufe] has made a very cool project with one of them, not only managing to stream video from a small model car, but also to control the steering and motor by means of servos and a little motor driver.
Sadly it’s not entirely a stand-alone device, as the ESP32 streams video to a web server with some Python code to handle the controls. The server can aggregate several of them on one page though, for perhaps a little real-life quad-screen Mario Kart action if you have enough of the things. We can see that this idea has plenty of potential beyond the mere fun of driving a toy car around though, but to whet your appetite there’s a demo video below.
We’ve seen enough of the ESP32-cam before, but perhaps more as a photographic device.
Ten year ago I did something very similar with a Raspberry Pi . The purpose was checking the cats when I was not home (hence the name: the cat lurker). It was self contained and, through a VPN, usable from anywhere in the world I could go. The response time was decent enough to drive it around the house. It still works, but nowadays cheap cameras are a better option.
I made one of those too, but mine was a dog version. Complete with a set of magnetic pins and a rear “docking” camera to connect back up to the charger. Later, I upgraded from a v1 Pi to the Next Thing Co. CHIP – remember those?
Mine was based on a slow moving tank tread toy, which was good because the latency from a few hundred miles away was about 1 second.
What’s the latency? From the way they are crashing into everything, I would guess it’s pretty high.
Some cheap analog AIO FPV cameras would certainly be a better choice unless you need to stream the video over the internet.
Maybe some sensors that override or modify control instructions in the case of a proximity event? I suppose it might be possible for a skilled group of engineers to make it work a little like a low latency mars rover, you tell it what it should try to do and a local ML system interprets those commands and takes account of the terrain to plan and execute a route that’s as close to the instructions as possible, rather than just stopping it like a simple sensor system might.
You do realize that the ESP32CAMs are like, $5 right?
That’s the whole point of them.
They are good enough to hack on, and cheap enough that you can have some in a drawer waiting for you to have an inspired idea.
i built something like this too, using an old smartphone as the camera/radio. the latency didn’t seem so bad but it was impossible to control…and when i really thought about it, it’s because the original car i put it on was basically impossible to control too. fpv really makes you wish for a more refined and reliable car…but the cheap toys are usually made to wipe out all the time and to accelerate way beyond scale (which means sliding all the time, and turning a little with every straight line because one wheel is always slipping).
You can do this with the MJPEG2SD Project. It has steering controls and streams via http or my ESP32-RTSPServer library
https://www.youtube.com/watch?v=XbKIo50a4_4 here’s ours :) it’s 6mm tall and can be driven under doors. Let me know if you want the STLs.