The background for this project: EDC - Edu Drone Controller is provided in the following Blog article:
The article also contains related links.
In the rest of this section, guidelines are given to sequentially assemble your own version of the EDC. Some of this reuses parts of the Tech Explorations blog article.
AssemblyThe breadboard version of the EDC can be assembled from off-the-shelf parts (parts list included in the github project) or from a kit available from the project creator. The kit includes wires of appropriate length rather than the usual jumper wires.
An assembly video is available:
In the rest of this description, an assembled breadboard version of the EDC is used for illustration purposes.
The ESP32 version included in the EDC is the AdaFruit Feather but the design of the project does not require using this particular ESP variant. However, to-date, this is the only version that has been extensively used. This version was chosen because it offers LiPo battery support. We anticipate future work trying additional ESP32 versions including the recently released Arduino Nano ESP32.
For those who would rather not deal with assembly, PCB versions of the EDC are available including one that will reuse the breadboard kit parts.
The top row of LEDs is used to indicate connectivity with Tello Drone:
- Red means no connection
- Blue means Tello is connected and is in Flight
- Green means EDC is connected to Tello
The bottom row of LEDs is used to indicate Tello battery strength:
- Red: battery percentage is below 20%
- Yellow: battery percentage below 60%
- Green: battery percentage is above 60%
The small circuit board to the right of the LEDs is an MPU6050 that supports Gesture based flight. Tilting the EDC causes the Tello to fly in the direction of tilt: forward, back, left, right.
The bigger circuit board to the right of the MPU is an OLED display used to display flight and Tello status information.
Six push buttons control Tello take-off and landing along with other dynamic flight actions.
- The buttons in a diamond shape on the right of the board cause Up, Down, Clockwise rotation, Counterclockwise rotation motions
- These buttons act as toggles so that pushing one again causes the current flight motion to stop
- The button on top left controls Takeoff (first press) and Land (second press if Tello is flying)
- The button on bottom left is a Kill switch: Press it and Tello motors stop and Tello falls to the ground. This is a safety measure for bad flight behavior
A black velcro strap can be used to secure the Lithium battery on the underside of the breadboard (the battery is not shown but connector is visible in the assembled breadboard picture).
HardwareIn addition to the controller, a Tello drone and optionally a video game system gamepad are needed.
The original white Tello model is shown in the picture but all 3 models including the Tello Edu and Tello Talent are supported by the EDC. The white model is readily available through on-line stores such as Amazon and refurbished models are available at discounted prices. The EDU model supports a richer API.
The EDC includes support for the interfacing of video game system “gamepads”. Many people will have one or more of these already available. Supported models include PS3 (some clones work), PS4, Switch and others. Two examples are shown below.
All of the software used within the EDC was developed using the Arduino IDE extended to support ESP32 boards and with several libraries installed to enable MPU usage, OLED display, and WiFi management. At this time Arduino IDE v2.1.1 is known to support EDC usage and development and is the recommended version to use. Advanced Arduino knowledge is not assumed and various source code examples are provided within the GitHub project to bring the user along gradually.
We use the Arduino Board Manager and Library Manager to install support for the ESP32 hardware and library software used in, and by, the EDC Arduino sketch files. Video gamepad support requires another Arduino combo board support installation: Bluepad. The EDC is highlighted as an Arduino Community project on the Bluepad page.
The Tello API is documented in several PDFs available from Ryze/DJI and commands are sent to the Tello from the EDC firmware running on the EDC’s ESP32 MPU.
To learn how to use the EDC with the Tello, we start simple and create more complex iterations exposing new Arduino libraries and ESP32 features.
- Serial Echo function: Tests that the OLED display is working
- Gesture Tester function: Tests that MPU and OLED are both working
- Simple flying: No Gamepad support
- Complex flying: Including re-play of last successful manual flight using EDC
- Gamepad flying
The user is guided by the Control/Monitor/Fly experience after each iteration. We learn hardware features as we go: OLED display, MPU for gestures, advanced Tello API features, adjusting the WiFi interface and more. Eventually we learn how to pair video game system gamepads with the EDC via bluetooth
One of the innovative aspects of the EDC is how a WiFi captive portal is spawned by the EDC firmware when a new Tello needs to be bound to the controller firmware. This feature is enabled by the WiFi-Manager library and is illustrated in a series of screenshots documenting the process.
User clicks the Configure WiFi button in the portal.
There is one Tello SSID in the list and the user clicks that one.
The Tello SSID appears in the SSID text box automatically and the user clicks the Save button to make the EDC to Tello binding.
In the illustration above one of the PCB forms of the controller is shown but any of the EDC versions will work similarly. Once connected, the physical buttons, or EDC board gestures, or a connected gamepad can be used to interact with the Tello with no physical connection to the host computer used to program the EDC. In addition, if the EDC is connected with a serial USB connection to the host, commands can be sent to the EDC and then to the Tello using the Arduino Serial Manager. The serial manager can also be used to change which Tello is bound to the controller without using the captive portal.
EDC in ActionIn the following embedded videos, the EDC is shown being used to setup and fly the Tello. These links are also available in the EDC Github project page.
In addition to the recently added gamepad support, I am considering adding other extensions such as Speech Recognition with a Python to serial implementation mechanism. A prototype using the Deepgramspeech API was built and a rough cut video is available:
Code for this feature has not yet been added to the Github project.
Request for Feedback and CooperationI hope that this article will inspire you to share your thoughts on the project and consider investigating drones and controllers with makers and educational audiences that you know and are members of. I welcome early adopters who might see the potential in the EDC project to reach out to me and perhaps acquire the needed hardware.
I encourage readers to think beyond what is already implemented and suggest improvements and other enhancements. One way to interact with me is through the Discussions element of the EDC GitHub project page: EDC Discussions.
Comments