Paragon Project: ESP32 Drones!

ESP32 Drones Title Image

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.

Credit: Joshua Bird.

This project is pretty complicated, but Joshua makes it look ridiculously straightforward, attesting to an extremely thought-through project.

Hardware

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.

Drone Setup - an ESP32 and a flight controller
Credit: Joshua Bird.

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:

devicepricename
Flight controller$23F3 EVO Micro Brushed Flight Controller running Betaflight
Frame Motor & Props$13Generic 95mm brushed drone frame, 8520 brushed motors, 55mm props
Battery$5YDL 18350 (1100mah, 9A)
Battery holder$0.51S 18350 battery holder
IR markers$0.13mm IR Led (you need to sandpaper the surface so they emit light evenly, instead of just up)
ESP32 receiver$4WEMOS 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.

The drone's tracking data
Credit: Joshua Bird.

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.

Software

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.

ESP32 Drone Architecture
Credit: Joshua Bird.

The backend also communicates with a frontend that Joshua wrote in React in order to have an easy web interface to control everything.

Conclusion

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?

Leave a Comment