Software Architecture

From Drogon Quad Wiki
Revision as of 05:45, 17 September 2014 by Joseph Monti (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Below are the software components of the Drogon Quadcopter.

Drogon Arduino

Drogon Arduino on GitHub

Arduino code for low-level hardware integration, providing flight stabilization, navigation execution, and sensor management.

Arduino/Rasperry Pi Communication

Drogon Flight

Drogon Flight on GitHub

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.

Drogon Master

Drogon Master on GitHub

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