The era of controlling your devices from anywhere in the world is here and we want to include everyone in the exciting new developments.

What it does

Using easy hand gestures, you can wirelessly control electronic devices from anywhere in your home.

How we built it

To create our product, we programmed the touch pad and wireless transmitter in python and the receiving end, a Raspberry Pi, in Python with an interface written in Javascript.

Challenges we ran into

The touchpad drivers were difficult to install and the values it reported varied significantly. As a workaround to this issue, we created a baseline value for each 'pixel' on the touchpad and enumerated the values that varied greatly from their baseline, indicating a touch.

As we had to run our Raspberry Pi headless due to a lack of monitor, we initially needed to hunt down the Pi's SSH server on the open hackathon network. Eventually, we were able to setup a link-local connection for some initial configuration and transfer that to the open network. After the Pi was setup, we encountered an issue with our servos behaving erratically. It turned out that the Python GPIO library that came with the Pi did not allow for enough precision to give us any sort of fine grained control over the servos. Switching out the library for one built out of C solved the problem.

Accomplishments that we're proud of

There were two really defining moments of this hack. The first was when our web interface on the Raspberry Pi first gained full control of our servos and lights, allowing us to eventually expose an interface to the touchpad-driving code. The second defining moment was when we finally fixed all the major bugs in the touchpad-driving code, allowing it to properly detect gestures for the first time.

What we learned

We learned a lot about Python, signal processing techniques, analog servo operation, and a whole host of bits of knowledge in our building of ControlGeek, both from each other and from the great mentors HackMIT had around (we can't count how many times we called over someone from the Synaptics booth)

What's next for ControlGeek

The next step for ControlGeek would first include extending gesture support to detect different numbers of fingers, varying speed, and slow tracking. From there, ControlGeek could be hooked into any number of functionalities of a home such as lights, blinds, fans, and media players.

Share this project: