IP over Xylophone Players (sketches)

Posted by sgeiger

sgeiger's picture

IP over Xylophone Players

Members: Stuart, Emily, and Yoon

Introduction

IP over Xylophone Players (IPoXP) aims to construct an Internet connection between two computers using xylophone-based Arduino interfaces, with human operators transmitting data by striking designated keys.  Inverting the traditional mode of human-computer interaction, the computer uses the human as an interface to communicate with another computer.  
 

Overly-Technical Background

All messages sent on the Internet follow the Internet Protocol (IP), meaning that they are separated into packets, each of which are made up of a string of bits -- 1s and 0s.  IP is founded on the idea that these bits can be transmitted via any medium -- copper wire, fiber optic cable, radio waves, etc. --  as long as you have a standard way to encode and decode them. 

When the Arduino is established as an serial-based network interface in each computer, the operating system automatically sends outgoing Internet traffic in packets as strings of ASCII characters to the Arduino, and all ASCII characters the Arduino sends to the serial port are treated as incoming packets.  The Arduinos turn each 8-bit ASCII character into two 4-bit hex characters, which correspond to one of 16 notes on the xylophone.  

Image 0: Don't be scared.  Here is one of the smallest IP packets, a ping request, with its constituent elements decoded (top) and represented as a series of hexadecimal characters (below).  Because of the standardization of IP, all of that information at the top is compressed into 84 digits.  For example, the blue highlighted portion represents the source IP address, my computer at 192.168.1.21, which appears as the hex characters c0 a8 01 15 starting with the 53rd digit.  An ethernet cable might send these as 32 1s and 0s, high and low pulses of electricity, while a modem might have to only send two tones to represent this entire IP address, if it has 65536 distinct tones.  For our interface, the IP address 192.168.1.21 would be transmitted as 8 notes.

 

 

Artifact Overview

Image 1: Materials.  To bring our Internet Protocol over Xylophone Players (IPoXP) project to life, we propose using two xylophones, 4 xylophone mallets, 32 Piezos, 32 LEDs, two Arduinos, 4 multiplexers, two computers, and lots of wiring.


 

Image 2: Functional diagram of the basic units of the interface.  Two Arduinos are connected via USB/serial link to two laptops running a Unix-based OS (Linux or OS X), one with access to the Internet and one without.  Each Arduino is connected to their local Xylophone's LED ports and the remote Xylophone's piezo sensors.

 

Storyboard

Image 3: When a packet is to be sent, Computer 1 translates the packet into a string of ASCII characters, which it sends to the Arduino over the USB/serial interface.  The Arduino converts each 8-bit ASCII character into two 4-bit hexadecimal values, which correspond to the 16 lower keys on the xylophone.  Arduino 1 will light up a LED on the corresponding Xylophone 1 key for the first digit in the packet.





Image 4: When the user strikes the key, it vibrates and activates the piezo  sensor mounted on the bottom of the key on Xylophone 1, which is sent to an input on Arduino 2.  Arduino 1 senses that a key has been pressed (method to be determined -- sensor in the mallet?) and lights up the key corresponding to the next hex character in the packet. 

 


Image 5: The piezo sensor on xylophone 1 is linked to a (multiplexed) input on Arduino 2, which is connected to Computer 2 via serial/USB.  Arduino 2 decodes each pair of inputs as a single ASCII character, and stores it in its buffer.

When the packet is finished, an ‘End of File’ key will be used to signal that there are no more characters in the packet.  Arduino 2 will send the string of ASCII characters over serial/USB to Computer 2.  If Computer 2 sends a reply to the packet, this process repeats in the reverse direction: Arduino 2 will convert the next packet message into hexadecimal and light up the corresponding LEDs on Xylophone 2 in turn.  The process repeats until the packet exchange is complete.

If a user strikes the wrong key, this EOF key can also be hit to end the packet early, which will generate a malformed packet, a manageable error in any modern network stack.

0
Your rating: None