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 | ||
| + | * < | ||
| + | * < | ||
| + | * ... | ||
| + | * < | ||