What? Crowd controlling a Parrot Drone using the Yo! app at Major League Hacking (MLH) HackNotts
When? 29th – 30th November 2014
Where? University of Nottingham
Who? Originally a team of 4 until we lost 2 people!
What About It?
Major League Hacking is
“…the official student hackathon league. Each semester, more than 15,000 developers, designers, and makers compete for their school’s glory at the 100+ official MLH hackathons in the United States, Canada, Mexico and Europe.
MLH Hackathons are weekend long programming competitions where student packers get together to show off their technical skills. Students from hundreds of universities team up to build things like websites, applications, hardware packs, and at the end of the weekend they show them off to the world.”
So this was my first MLH Hackathon! I attended with CompSoc, the University of Edinburgh computer society, travelling on a long and delayed coach journey to get to to a Jury’s Inn in Nottingham to hack for 24 hours! After general introductions and messing around trying to come up with interesting ideas that haven’t already been done before, I ended up in a group with 3 others trying to hack the Parrot quadcopter that had been brought to the event.
So Parrot A.R. drones is a radio controlled flying quadcopter that can also be controlled by their apps.
And for those that have somehow escaped one the biggest marketing efforts this century, the Yo! app is “the world’s most pointless app” that literally just sends a notification with a “yo!” noise to someone’s phone when you click on their username. Anyway we setup the commands for the quadcopter by creating the Yo usernames:
I’m not going to lie, it was a bit of a sticky tape precarious setup but it just about worked and was a lot of fun! We ended up using the API in Node.js, connecting to the quadcopter’s WiFi connection on my laptop and then using a direct connection to someone’s mobile data to connect to the internet (as the WiFi connection was already in use) so that we could use Ngrok to allow the script to respond to calls generated from the Yo! app. The script vaguely calculated the net results of Yo!s from different usernames to calculate the appropriate commands – e.g. if more Yo!s go to MLHQUADUP than MLHQUADDOWN then the copter goes up.
Unfortunately when we gave the demo there was not a lot of space and certain members of CompSoc, that I had mistakenly trusted with the knowledge of the takeoff and landing commands, spammed the system so that it would not initially takeoff as it was simultaneously landing and then was trying to fly forward into the crowd. *sigh* I had the satisfaction of knowing that it worked, if only for a little bit, and I had fun, so oh well I guess?