Last week, we published an article about the 10 best ESP32 projects of 2023. Well, we clearly jumped the gun, because just a day later, Joshua Bird shared the single coolest ESP32 project of 2023: ESP32 drones that fly autonomously with a motion capture system!
Best of all, Joshua has shared all the details of the project and made it open source.
This project is pretty complicated, but Joshua makes it look ridiculously straightforward, attesting to an extremely thought-through project.
When it comes to hardware, there are two things to consider. First is the the motion capture system. Second are the drones themselves.
The motion capture system relies on four cameras to track infrared markers. They are then able to determine the location of the drones and position them back to place.
What’s extra cool is that the motion capture system is able to localize multiple drones at the same time. So, as Joshua calls it, you can create a drone swarm.
This setup makes it possible for the drones to autonomously move into a chosen location.
So now let’s get to the drones, which revolve primarily around an ESP32 and an F3 EVO Micro Brush Flight Control Board.
If you’re interested in putting this together yourself and want a full breakdown of the necessary pieces, then you’re in luck! Joshua has been kind enough to list the components and the prices (with links) on the GitHub discussion page:
|Flight controller||$23||F3 EVO Micro Brushed Flight Controller running Betaflight|
|Frame Motor & Props||$13||Generic 95mm brushed drone frame, 8520 brushed motors, 55mm props|
|Battery||$5||YDL 18350 (1100mah, 9A)|
|Battery holder||$0.5||1S 18350 battery holder|
|IR markers||$0.1||3mm IR Led (you need to sandpaper the surface so they emit light evenly, instead of just up)|
|ESP32 receiver||$4||WEMOS D1 Mini ESP32 USB-C|
As you can see, you’ll be able to set this up without breaking the bank!
Even more than that, Joshua has also included the .stl files on the GitHub, if you want to 3D-print the drone parts yourself. So you can get your own drone swarm going in no time.
Probably the most difficult thing, if you’re looking to save money, is going to be setting up the cameras for the motion capture system. Joshua used PlayStation Eye cameras. But, although they’re cheap, you’ll have to replace the IR-cut filter with an IR filter.
After all, the whole point is that they capture infrared light.
And here, the pure ingenuity shines, as Joshua cut up the infrared strip on a floppy disk to build the IR filter.
Joshua has written the backend in Python. The Python scripts run with OpenCV, SciPy Optimizer, and NumPy to determine to location of the cameras and to triangulate the position of the drones.
The backend communicates with the cameras directly and also with an ESP32 on the wall, which works as a sender-receiver with the ESP32 on each drone via the ESP-NOW protocol.
The backend also communicates with a frontend that Joshua wrote in React in order to have an easy web interface to control everything.
The creativity that went into this project speaks for itself. As someone wrote to Joshua on Reddit, “We will watch your career with the greatest of interest”. I’m sure I speak for everyone when I say that I can’t wait to see what Joshua shares next!
Be sure to check out the video, where Joshua goes into the details:
You can also head over to the GitHub page. It includes all of the code and the .stl files, as well as some information on how you can get this set up yourself.
If you want to see all of our Paragon Projects, you can click on the button below to see them!
And if you haven’t yet, be sure to subscribe to our Newsletter. We share many of the cool projects we feature in this series.
What would you do with your ESP32 drone swarms?