DJ Drone

home

Onboard Computer

The onboard computer controls the drone while it is in the air and drives the speaker for playing music. It relays information to and from the Air traffic Controller (ATC) during flight to keep running jobs and the drone position information synchronized between the ground and the air.

The onboard computer was designed as an inexpensive, lightweight attachment that hangs from the bottom of the drone during flight. It is powered from the drone's battery using a cable provided for powering a camera gimble. The onboard computer consists of a Raspberry Pi Linux-based credit-card-sized computer, which has built-in WiFi capabilities for communication with the ground, and a lightweight speaker. The Raspberry Pi commands the drone using the USB port provided on the side of the drone and communicates with the ATC through a nearby WiFi access point.

The onboard computer periodically sends a http GET request to the ATC to retrieve the current job information to update its local destination information. It then sends a http POST request to the ATC containing data about its current location, song playback progress, velocity information, and battery levels for use by the ATC, user application, and admin interface. When a job is completed, the onboard computer sends another http request to the ATC indicating that the job is finished and it is waiting for the next command.

The Raspberry Pi uses the external program "mplayer" to play music, with a custom python wrapper that provides functions for getting playback progress, song data, etc. from a python script. Mplayer plays a wide range of audio formats, making our project also compatible with most music file formats. The songs are stored locally on the Raspberry Pi's local storage to avoid any audio streaming issues with transferring data over WiFi.