None of us knew one another before this event started -- we met here at HackIOT, brainstormed a cool project idea, and got hacking! One of us bought a tiny drone several weeks ago to hijack for cool projects; using that piece, we came up with a complex internet of things surrounding it!
What it does
The network is linear, and just a tad complex:
- The user conducts hand gestures over a Leap device
- The Leap send raw information over serial to an attached computer
- The computer processes the raw information into a single letter (the command for the drone) and sends it over WiFi to a Raspberry Pi server
- The Raspberry Pi relays the command to an Arduino board
- The Arduino board responds by raising/lowering the voltage outputs of pins
- These pins are connected to the PCB of a handheld RC controller, controlling it's radio output
- The radio output it intercepted by the drone, effectively responding to the command
All in all, we have a great number of devices networked to create a cool interactive remote user experience.
How we built it
We split our team into component groups: one looked into the Leap SDK, another into making a TCP/IP client/server, a third into Arduino, and a fourth into hijacking the controller: we worked collaboratively, allowed us to efficiently build the system, combine major contributions, and seek others' aid and expertise. This project drew from all our knowledges of electrical engineering, software engineering and design practices, and forces us to learn new programming languages and skills.
Challenges we ran into
As always, no journey is without challenge.. we found issues with:
- The Leap device often mistook gestures, was incredibly difficult to use on Ubuntu, and frequently was unrecognized by Ubuntu/Arch -- not fun...
- The drone itself, being small and cheap, was quite inconsistent, making it VERY hard to control accurately!
Accomplishments that we are proud of
Many great accomplishments:
- Two of us experienced Python in depth for the first time
- We used our EE knowledge from coursework to aid our project!
- We reverse engineered a controller, measured resistances and voltages, designed circuits, soldered wires, desoldered others, to create an Arduino-controlled RC controller!
- We jointly discussed, researched, and created cool 3D algorithms (such as determining qualifying gestures from the data stream)
What we learned
We all learned at least one major concept in a field largely unknown to us -- be it Python, TCP/IP networking, effective usage of Git's branches, practical EE, Arduino, or impromptu introductions to Raspberry Pis! All of us learned a great deal from this hackathon.