This is the device responsible for calculations and vibrations.
The software is responsible for data routing and for interfacing with the device.
I was once writing an app and wanted my phone to vibrate a certain part of the screen to indicate a change in state. I found that this is not possible because of the methods of tactile feedback employed by smartphone designers and manufacturers. Hence, I took it upon myself to make what I dreamed I had previously.
What it does
A web app controls a phased array of buzzers which interfere with each other in both a constructive and a destructive manner. This makes certain parts of the target (a piece of paper in this demo) vibrate differently depending on the phase difference between emitters (buzzers in this example).
How I built it
I created the hardware using a hot glue gun, a piece of paper, buzzers, an Arduino 101, and cardboard. The software was made using NodeJS.
Challenges I ran into
The buzzers are barely powerful enough to make a tiny vibration. Buzzers are not designed to make vibration, so much as they are made to make noise. In the future, this project could be upgraded by changing the emitter elements into vibrating motors.
Accomplishments that I'm proud of
The demo works. I am proud of myself for completing this project alone despite the daunting nature of this task.
What I learned
I had to research a lot for this project. I spent well over 10 hours on the research to find base formulas, as well as, prior applications of phased arrays.
What's next for SonicSwing
I hope to make this smaller and more efficient at transmitting vibrations. The end-goal is to have this technology change the way we use tactile information transmission in our software.