# tello-edu A library for controlling and interacting with the [Tello EDU](https://www.ryzerobotics.com/tello-edu) drone using [asynchronous Rust](https://rust-lang.github.io/async-book/) and [Tokio](https://tokio.rs). All operations are implemented as awaitable futures, completed when the drone sends acknowledgment of the command message. ```Rust use tello_edu::{Tello, Result}; #[tokio::main] async fn main() { fly().await.unwrap(); } async fn fly() -> Result<()> { // create a new drone in the `NoWifi` state let drone = Tello::new(); // wait until the host computer joins the drone's Wifi network // (joining the network is not automatic - how it happens is up to you) let drone = drone.wait_for_wifi().await?; // establish connection and put the drone in "command" mode let drone = drone.connect().await?; // fly! drone.take_off().await?; drone.turn_clockwise(360).await?; drone.land().await?; Ok(()) } ``` (If Python is more your thing, there is also an equivalent asynchronous Python package - [tello-asyncio](https://pypi.org/project/tello-asyncio/).) ## Version History **0.1.0** Basic drone control - UDP connection for sending commands and receiving responses (default AP mode only - you must join the drone's own WiFi network) - take off and land - rotate clockwise and counter-clockwise - move up, down, left, right, forward and back - emergency stop **0.1.1** - wait for WiFi on Linux as well as macOS, assume WiFi on anything else **0.2.0** More drone control - set & query speed - stop - flip left, right, forward and back **0.3.1** Drone state - drone state stream (except mission pad data) **0.4.0** Video - start/stop video stream - receive h264 encoded frames - decode & show video example **0.5.0** Remote control - real-time control - example using game controller to fly the drone