Inspiration

I wanted to make something silly and "hacky". Original idea was to have it pull on a chord to turn a light on and off but that required too much force for this drone.

What it does

It delivers snacks using various activation methods. It can be launched, called, and landed from a web app. These three actions can be performed with a controller via an IR sensor. The drone can also be called by screaming loud enough. A facial tracking option can be opened to perform landing, launching, and requesting commands. This requires the user to move their head into the zones marked within the image on their screen.

How I built it

The Tello drone requires a device to be connected to its wireless network in order to transmit commands. This means that for a device to host a server for a client interface it must have multiple network connections. I needed to use two devices. One machine ran a node.js server that handled client requests received though its wireless network that it forwarded to the second device via Ethernet. The first device also ran the python script using an opencv haarcascade to track the users face. The script is spawned as a child process of the node server. The node server used a serial library to receive input form the microphone and IR sensor connected to the Arduino. When the node server forwards a request it is received by a python http server running on the second device. The device parses the JSON it receives and sends the appropriate commands to the Tello drone via the wireless network.

Challenges I ran into

Designing a means of carrying the snack that didn't cause the drone to lose all control and crash. Honestly surprised the method I used worked as well as it did. Had to stop a few times to simplify the process so the software didn't become more complicated than it needed to be. I don't know much javascript or node so that's generally where I struggle. Drones short battery life can also be limiting.

Accomplishments that I'm proud of

I got all the silly things I wanted done and it doesn't crash into my wall.

What I learned

The amount of stuff I keep on my desk that's easily blown away.

What's next for SnackDrone

Might try to add some more silly unnecessary features like a calendar scheduler.

Share this project:

Updates