HackLab 2014 - The JaegerBomber
- 12 May 2014
As a child I used to look out over the ponds near my house to see the marsh sparrows swoop and dive and think to myself “will man ever be able to do that by proxy of a giant four rotor machine that can parachute alchohol to those that need it most?”
Thanks to MWR I finally found out. The plan was simple, use standard quadcopter hardware, but run it all through an Android phone that would be built into the copter. The copter would use all of Android’s on board kit to stay level, navigate and deliver parachuted Jagermeister to people. The JagerBomber was born…
Android has a number of functions that we had at our disposal, but key is Android’s OTG functionality. It was originally designed to allow Android to operate as a USB master and accept HID devices. However it can also do a lot more. Using Java serial libraries, it is possible for applications on a device to send and receive data over a serial connection to an Arduino. The Arduino is connected to the OTG and can even be powered from it. The Arduino will then control our rotors via ESCs.
To have just a day to build such a device was always going to be a challenge. The six of us split up duties. Whilst some would be the airframe and mounting points for the phone, others worked on programming Arduino to parse serial data and turn it into PWM data for the ESCs to carefully control the motors. Team C worked on the most difficult part, the Android application. This needed to take input from the user (by running a TCP server over Wi-Fi), adjust based on current readings from the accelerometers and gyroscopes and provide updates to the Arduino.
By the end of the day we had the first parts finished, and the copter powered up nicely. Team C, despite learning a lot about using Android’s inputs, were unable to finish the app. Though the theory appeared sound limitations such as understanding relative altitude meant it was not possible to launch the copter without risking injury to itself and others.
The skills applied and learnt were wide and varied. The serial connection needed to be efficient, so a protocol was developed that would be as short as possible, and quick to decode by the Arduino. Programming Java required learning about using Android inputs, serial connections and their limitations.
Can’t play the video? Click to download it.