Hey everyone, is it realistic to build an autonomous drone using Python or MicroPython without breaking the bank? I'm not looking for a high-speed or acrobatic drone, just a slower, autonomous setup for experimentation, ideally something like a naval drone. Has anyone had experience using Python or MicroPython in real robotics projects? I'd appreciate any insights or tips!
5 Answers
For a slower drone, there's a project by Tim Henewich that might interest you—Centauri, his quadcopter driven by MicroPython. He even shared his learnings in a presentation from the MicroPython Meetup! Check it out for some real-world insights.
The Raspberry Pi Pico is a solid option with PIO you can program in Python, allowing for precise control. Think of it like mimicking the human nervous system: fast responses with a more robust system managing the higher-level operations and data interpretation.
Absolutely, you can build a drone with Python! While the software aspect can be done in any language, keep in mind that a drone involves more than just coding. For intense real-time tasks like PID control or stabilization, you would typically want to use a faster language like C++ or Rust—but that doesn’t mean Python isn’t a valid choice for other parts of the project.
Definitely something to keep in mind! Python's great for prototyping, but just watch out for those performance limits.
You can definitely use MicroPython, just be aware it has its limitations once you start scaling your project. I dealt with some issues while building small robots, but I managed to workaround them all.
Always good to know! I think starting with something small will help avoid those pitfalls.
The biggest thing to figure out is how you'll communicate with the flight controller. When I checked a few years back, Pixhawk and ArduPilot were pretty popular for these setups, but there might be new options available now.

I agree! Python can handle control flow logic quite well, especially with a Raspberry Pi. You can still manage operations quickly—just consider using C for time-sensitive tasks.