Hello everyone! I'm Francesco, a young developer with a strong passion for technology.
I started this project because I wanted to make a drone based on Raspberry Pi and universal windows platform (UWP). To make this happen, I had to use Windows 10 IoT core running on Raspberry Pi 2/3 and all the other stuff listed above.
The idea is simple: you get drone's hardware except for receiver and transmitter that are replaced by a Raspberry Pi and a Windows 10 device. In the first place, the communication between the drone and the controller was based on wi-fi connection, but then after some tests, I’ve implemented a new setup based on 4G/LTE connection.
How does it work
I've made a universal app called "Drone" that runs on a Windows 10 device (master) and on the Raspberry Pi (slave). In order to replace the wi-fi connection I've made a web app called "DroneRemote" that uses web socket to allow the communication between the drone and the controller based on 4G/LTE connection. In addition, the web app displays telemetry data, GPS data and in-flight pictures. The Raspberry Pi is connected to the flight controller through serial connection (USB), the protocol used to communicate with the flight controller is MultiWii Serial Protocol (MSP), that allow to simulate the RC controller. Finally, an Xbox one controller, connected to a Windows 10 device, is used to pilot the drone.
Button Map - Xbox One Controller
I solve the connection range problem using 4G/LTE connection between the drone and the controller. I was worried about the connection latency, but I've noticed that is less than 100ms.
Other features and improvements
I'm working on the implementation and testing of a brand new setup based on 4G/LTE communication between the drone and the controller using web sockets.
1 / 5 • DroneRemote Web App
I've added the ultrasonic sensor (HC-SR04) it's working properly, but for now I can only read data from it, so I'm able to get the distance from the ground. I'm working on autonomous take off and landing features.
1 / 2 • Drone App - Lumia 950XL
I've added the GPS module, it's working properly, but for now I can only read data from it, so I'm able to get the drone position on a map.
I've added the LifeCam HD-3000 it's working properly, camera video streaming works great, latency is low, better than expected. I've also made some improvements to the web app, now I'm able to display telemetry data, GPS position path on a map and photos taken from the camera.
I've posted the entire visual studio solution on my GitHub repository.
I'd love to improve my project with some other cool features:
- Improve GPS functionality - UAV functions (Return to home and GPS Hold)
- Improve ultrasonic sensor - Autonomous take-off and landing