JavaScript Drones!
Watch the videos:
Part 1 → https://www.youtube.com/watch?v=JzFvGf7Ywkk
Part 2 → https://www.youtube.com/watch?v=ozMwRq-IT2w
Flying a Drone with React and Node.js
IBM is giving away 2,000 DJI Tello drones as part of a contest and I made this video to help them promote it.
- Enter the contest at https://developer.ibm.com/contest (US/ Canada Only)
- More details about the challenge at https://developer.ibm.com/blogs/2018/11/12/win-a-drone-program-a-drone-change-the-world/
Software Used
- React (with React Hooks!)
- Styled Components for styling
- Node.js and UDP4 sockets for communicating with drone
- Socket.io WebSockets for sending data to/from the browser
- Next.js for easy react setup
Hardware Used
- DJI Tello Drone
- Extra Batteries - it comes with one and I bought two extra. For continual development I'd say you only need two — one in the charger and one in the drone. For flying away from your house you definitely need at least 3 as they only last about 10-15 mins.
- Fast Battery Charger with 4 slots
Using This Code
Frontend
- cd
frontend
npm install
npm run dev
Backend
- cd
backend
npm install
- connect to drone via wifi
npm start
Troubleshooting
Docs for Tello are available here
I had to update the firmware of my drone when it came in the mail before I could use this 1.3 API. Do this via the Tello app on your phone.
If you let the drone's WIFI connection lapse, you have to restart the server by typing rs
into the terminal. This will re-run the command command
that puts the drone in SDK mode. If you don't do this, it will ignore any commands you send it.
License — WTFPL
I want you to build cool stuff with this.
Please hack on it and make your own cool things.
Examples & Resources
- jsolderitsch/tello-nodejs - very simple JavaScript examples
- FFMpeg + Node.js Video in the browser complicated example
- Some Japanese Developer Figured out how to get video working with WebRTC
- Drone Keyboard for Tello
- Link your repo here for others to learn!