Our inspiration came from our interests in the fields of science and physics. Additionally, our desire to make something unique and fun also contributed to the project.
What it does
Wopi is a combination of an iOS and OS X app that tracks high frequency sound (beyond the range of human hearing) between nodes. By using two or more mobile devices as nodes, wopi detects sound between them and calculates the relative distance between the nodes and the object. This distance is in turn reflected on the OS X app, in this case, as a simple game of PONG. Changes in the distance correspond to movement of the pong paddle, where the aim is to move it into position to hit the ball.
How I built it
Each phone listens at very high sample rates in order to calculate the amplitude of very high frequency tones. The data is then filtered slightly in an effort to reduce background noises (however, a quiet room is most ideal). The audio data and channel (left, right, or back) are encoded and sent over wifi to the host. The host, or laptop in this case, takes all of the data from each of the nodes in an attempt to calculate the position of the frequency emitter; this is implemented using heavy filtering. The calculated position is then translated to a corresponding position on the screen which is used to control the pong paddle.
Challenges I ran into
Bluetooth communication between the nodes and host was unsuccessful. Calculating relative distance and creating the most effective algorithm for translating intensity to position were very difficult. Sending data over local network was troublesome; streams were constantly closed and prevented us from using them as an effective solution.
Accomplishments that I'm proud of
We are extremely proud of the algorithm created for detecting relative position from intensity.
What I learned
We learned quite a bit about sound.
What's next for wopi