I enjoy making things that are pretty easy, like changing the tv channel, slightly easier.
What it does
It allows you to assign alexa tasks (like turn on a light) to exact locations and your room. You can then snap or clap in that location and it will perform that task. You can also set base location and then have it perform tasks when you snap relative to that location. For instance, you can set a remote control for your tv as the middle of the couch and if you snap on the right side of the couch it will go up a channel and on the left down a channel.
How I built it
I synced up the time of many raspberry pis using network time protocol, and then collected audio from all of them. I would wait to hear claps of snaps, and then send that time back to a central node which would process them and calculate exactly where the clap came from. It would accomplish this by creating quadratic equations defining where the snap could come from because we know how much farther it is away from one node than the other. It would then look up the closest correlated task and call that function.
Challenges I ran into
Networks are really hard to get working when you have to connect 5 different devices to them and have them all communicate.
Accomplishments that I'm proud of
I'm just happy that it works.
What I learned
A lot about bad ways to solve systems of quadratic equations.
What's next for snapper
Set it up in my room and never get up to turn on a light again. Maybe see if I can refine and get it ready for a ready as a real alexa app and some software for raspberry pis