We wanted to hack a drone, and this seemed like a pretty fun application to try to implement.
What it does
With quite a few bugs left to work out, it theoretically acts as a security drone that patrols an area autonomously, and if it identifies someone who is not supposed to be in this area, it alerts people on a "vip-list" via text message. In addition, it uses IR sensors to help in autonomously navigating the area.
How we built it
We built it by tearing apart the drone to integrate an Arduino on top of installing node.js on the internal software. Using the Arduino, we integrated two IR sensors that were to be used in obstacle avoidance in the drone's autonomous flight routine. Then, after quite a bit of struggling, we managed to get the serial data from the Arduino back to the drone, into node.js, and then, finally, back to the host PC.
Challenges we ran into
Everything. We spent nearly an entire day trying to avoid tearing the drone apart by transferring the Arduino serial data over the drone's USB port near the battery, but after asking numerous mentors, that ended up getting absolutely nowhere. As a result, we gave up on that approach and followed the common path of tearing off the bottom of the drone and interfacing through the female headers that are included in the drone's underbelly. We had to change how our drone flew to compensate for the additional weight added by our Arduino, breadboard, etc. Many of the APIs we worked with didn't necessarily work well together, and a large amount of them were so poorly documented that the only way to really figure out their functionality was to try them out and see what the result was.
Accomplishments that we're proud of
Setting up the drone to receive commands from node.js to remote control it from our laptop, streaming data from the IR sensors hooked up to the Arduino back to the host PC, and on top of that, we're proud of our resiliency in the face of adversity.
What we learned
Many on the team learned that hardware can have some other considerations to take into account than software. In addition, we gained experience in delegating roles to help meet deadlines, etc.
What's next for Patrol.AR
Possibly improving battery life, improving detection and recognition of people, etc.