This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
doc:crazyflie:dev:host:android:index [2015-04-11 17:52] fred created |
doc:crazyflie:dev:host:android:index [2021-06-24 16:59] (current) kimberly |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | <WRAP center round important 60%> | ||
+ | This page has deprecated and will be archived. Please go to [[https:// | ||
+ | </ | ||
+ | ====== Android client architecture ====== | ||
+ | |||
+ | This should give a rough overview over the current state of the Android client architecture and also an outlook on what's planned in future versions. | ||
+ | |||
+ | ===== Current architecture ===== | ||
+ | |||
+ | ==== Main screen ==== | ||
+ | |||
+ | As in every Android application there is a '' | ||
+ | It defines the main screen which is used when controlling the Crazyflie. | ||
+ | |||
+ | The main screen currently consists of two parts: | ||
+ | * a top row that displays the flight data ('' | ||
+ | * the touch controls ('' | ||
+ | * it's based on the mobile-anarchy-widgets project (https:// | ||
+ | |||
+ | ==== Preferences ==== | ||
+ | |||
+ | The preferences ('' | ||
+ | |||
+ | It has the following structure: | ||
+ | |||
+ | * Connection settings | ||
+ | * Crazyradio settings | ||
+ | * Bluetooth settings | ||
+ | * Flight control settings | ||
+ | * Advanced flight control preferences | ||
+ | * Controller settings | ||
+ | * Gamepad axis and button mapping | ||
+ | * App settings | ||
+ | |||
+ | ==== Controls ==== | ||
+ | |||
+ | The '' | ||
+ | getting values for thrust, roll, pitch, yaw and enabling/ | ||
+ | |||
+ | Currently the following controllers are implemented: | ||
+ | |||
+ | * Touch controller | ||
+ | * Gyroscope controller | ||
+ | * Gamepad controller | ||
+ | |||
+ | The touch controller ('' | ||
+ | |||
+ | The gyroscope controller ('' | ||
+ | It would be possible to also control yaw and thrust with the sensors, but it is not really a senseful and reliable way to control the Crazyflie. | ||
+ | |||
+ | The gamepad controller ('' | ||
+ | The mapping of the axes and buttons can be changed in the preferences (Controller settings -> Gamepad axis and button mapping). | ||
+ | |||
+ | ==== Crazyflie library ==== | ||
+ | |||
+ | One of the main goals of the design is to separate the UI from the Crazyflie library. | ||
+ | Currently the crazyflielib ('' | ||
+ | In the future, a standalone Java library, that does not contain any Android specific code, should be used instead. | ||
+ | |||
+ | ===== Future plans ===== | ||
+ | |||
+ | * Separate Crazyflie lib from Android client | ||
+ | * Show more stats from the Crazyflie | ||
+ | * < | ||
+ | * ... | ||
+ | * Show an artificial horizon like the Crazyflie python client | ||
+ | * Show console messages | ||
+ | * Set parameters | ||
+ | * < | ||
+ | * < | ||
+ | * ... | ||
+ | * < | ||