DIY Drone Gesture Control - DIY Motion Controller
Together with the DJI FPV Drone we, RC and FPV hobby enthusiasts, got a new accessory: DJI Motion Controller.
It does a pretty obvious thing that we know for years from the Nintendo Wii controller: with this device, you get gesture control over your FPV Drone. You tilt it left, drone turns left. You tilt it back, drone gains altitude. You press the index finger "trigger" and the drone goes forward! There are some problems though. First of all, it works only with the DJI FPV Drone. And second of all, it cost an extra $200!
What if, I could make a similar device that works with any drone or airplane? To be honest, I was thinking about a device like that for a while now, and DJI Motion Controller was just a final argument to sit down for a few days and make an Open Source version of a Motion Controller that can be connected to any OpenTX radio as a Trainer Slave and use gestures to fly!
The DIY Motion Controller is based on ESP32 board with MPU6050 gyroscope and few extra elements like buttons, analog joystick, etc. It can be connected to any OpenTX radio (I'm using Radiomaster TX16S) that allows accepting SBUS signal on trainer port.
The exact list of part is:
- ESP32 LORA32 V2 - future wireless version will require 2 boards. Other ESP32 with OLED will do, but you will have to adjust pin mapping
- MPU6050 gyro board
- 10mm push button
- 7mm push button
- Analog joystick - current 3D printed model supports this kind of joystick. The future version might require a different joystick
- AWG30 wires
- Optional 18650 holder - for future wireless version
- STL for the controller available here
As you can see in the video it works! However, it's not the end of the project as I intend to improve it in at least a few ways:
- The wired connection to the OpenTX radio is suboptimal. Next step is to develop a wireless mode to simplify usage
- There is still no way to arm/disarm the drone, so at least one switch will have to be added
- The analog Arduino joystick is too big and not precise enough. I will try to replace it wit PSP or similar joystick for altitude and yaw control
The source code with all the required details is available on GitHub. You will need an access to a 3D Printer to print the joystick, but STL file is available over there as well.
I'm Paweł Spychalski and I do things. Mainly software development, FPV drones and amateur cinematography. Here are my YouTube channels: