Welcome to the DJI Tello Drone Playground! This project is designed for enthusiasts and learners who want to explore the capabilities of the DJI Tello drone through a series of practical exercises.
- Git clone or download this repository to your computer.
- Setup your development environment.
- Connect to the drone.
- Try controlling the drone manually with your smartphone. See this guide
- See the example exercises in the
srcfolder - Try some of the other more advanced exercises in the
srcfolder - Get creative and make your own scripts
- Have fun!
To interact with the drone, you must first establish a WiFi connection:
-
Power on your DJI Tello drone.
-
Connect your computer to the drone's WiFi network.
The WiFi network typically appears as
TELLO-XXXXXX. Default password is usually12345678.
The src folder contains the core modules and components of the project. Below is an overview of each subfolder and file:
-
example_exercises/
Provides sample scripts and exercises that demonstrate how to use the various components of the repository. These examples can serve as learning resources or starting points for new features. -
controller_adapters/
Contains modules that act as adapters between various input devices (e.g., joysticks, keyboards) and the Tello drone control logic. These adapters standardize control inputs so the drone can interpret commands regardless of the input source. The files contain classes to be used in other scripts but not executed directly. -
face_tracking/
Includes code for detecting and tracking faces using computer vision techniques. This module may be used for features such as autonomous following or interactive behaviors based on face detection. The files contain classes to be used in other scripts but not executed directly. -
object_detection/
Houses functionality related to detecting objects within video feeds. This could be useful for obstacle avoidance, target recognition, or other advanced drone behaviors. The files contain classes to be used in other scripts but not executed directly -
joysticks/
Contains modules for interfacing with different joystick and game controller types. This folder enables the project to support multiple controller configurations for manual drone operation. The files contain classes to be used in other scripts but not executed directly -
services/
Implements the core services for interacting with the Tello drone, such as establishing connections, sending commands, and managing the droneโs state. The files contain classes to be used in other scripts but not executed directly
Dive into various example exercises located in the src folder. Each script guides you through different functionalities of the DJI Tello drone.
To run an exercise, navigate to the src folder and execute the corresponding script:
python ./<folder>/<script_name>.pyReplace <script_name> with the script you wish to run and with the folder/s the script is located in.
For More info checkout the README
- See the drone status indicator states here
- There are some instances where the drones IMU may need to be calibrated. See the calibration video guide
- The firmware on the Tello drone may need to be updated. See the firmware update video guide
- To position itself, the drone uses a downward-facing camera. Ensure the surface is well-lit and has distinct features for the drone to detect. Poor lighting or a lack of distinct patterns on the floor may cause the drone to drift or lose position.
To enhance your coding and debugging experience, we recommend using the launch configurations with Visual Studio Code (VS Code).
