Below are the software components of the Drogon Quadcopter.
Arduino code for low-level hardware integration, providing flight stabilization, navigation execution, and sensor management.
This is C++ code which implements positioning and flight stabilization algorithms. This is imported as an Arduino library by the Drogon Arduino sketch.
One of the advantages to having these functions broken out to a separate C++ library is they can be incorporated into a test program which can run on any computer. This can aid in both development, testing, and tuning of the algorithms before running them on the Arduino. To make testing easier, a Python API layer to the native C++ functions was added. By using Python to implement tests, tests can be more quickly developed.
The Drogon Master daemon manages the Raspberry Pi integration. This includes:
- Communicating with and managing the Arduino over the serial connection
- Integrating with the Raspberry Pi camera module
- Exposing various functionality via WiFi