For those unfamiliar with Open Hardware and Physical computing, Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments. Learn much more at arduino.cc. Fortunately, the Arduino platform has flourished over the past few years and there are many Arduinos to choose from.
While Arduinos come in a variety of shapes and sizes, they all run off ATMega controllers, and newer Arduinos almost exclusively use the ATmega328 controller. Pictured above is the Arduino Uno, the successor to the original Arduino Duemilanove and by far the most common and easy to use physical computing controller available. It is due to this simplicity - on-board power regulation and USB, prototype-friendly header pins, wide availability - that I chose this particular model for this stage of project. Though it is much larger than other controllers, it seemed that the easiest to use and most common controller was the right one to begin with in an Open Hardware project.
During the exploration phase of the project, I did explore using the LilyPad Arduino, a controller specifically made for wearable devices. However, the lack of built-in USB and power forced the controller into a much higher price point, making it impractical for this particular project. The plan it to eventually make EagleCAD custom boards for the ATMega chip, allowing perfect customization of the controller to minimize space and achieve the desired aesthetic for the completed gloves.
The first thing needed to make your Imaginary Instrument run is a program to convert the Serial Data coming in from your Arduino into MIDI. I am currently using the MIDI-Serial Conversion app creating in Processing by the awesome Mark Demers over at Spikenzie Labs (make sure to check out the many interesting music-related projects on the site). Download the app and follow Mark's excellent walkthru on the simple set-up process here. While this application works very well for a single instruments, running all six simultaneously and without external hardware is a tricky proposition, and work is on-going in C++/OpenFrameworks to create a serial conversion app that will allow live decoding of multiple Serial interfaces.
MPX4115A PRESSURE SENSOR (Freescale Conductors)
Trumpet, Tuba, and Trumbone Mouthpieces
The Trumpet, Trombone and Tuba are realized using Freescale Conductors MPX4115A pressure sensor with a small piece of plastic tubing attached. Blowing into the tubing causes the instrument to play. The embouchure of the mouth on the tube determines what partial is played, ranging over three octaves and five separate starting notes, as it is on the real world instrument.
The selection of this sensor was the result of a long experimental process. Initial explorations involved exposed piezo elements and electret microphones, with a brief detour into small fans. These options proved insufficiently sensitive, and they did not meet with approval from consulted musicians: they were insistent that pitch control was less about the strength of breath and more about the shape of the mouth.
This led to the exploration of pressure sensors, including TDH30 industrial pressure transducers used in weather balloons (consumed too much power and required custom hardware tuning to ramp back from their default 3-10,000 psi) and the DesignFlex PSF102 pressure switch, made for sip/puff wheelchair devices (incredibly accurate but too big for a wearable). Freescale Conductors’ MPX4115 series provided the best blend of default range (2.2 to 16.7 psi), size (about the diameter of a US quarter) and power.
107-2005-EV ROLLING BALL TILT SWITCH (Mountain Switch)
Trumpet and Tuba Valves
Similar experimentation went into the fingering of the Brass instrument. I tried flex sensors (too noisy and breakable), velostat, actual buttons affixed to the palm, and even considered experimenting with conductive ink. But eventually, I came around to the simple, low power, age-old solution of rolling ball tilt switches (used as early as the 1920s for Arcade games and car alarms). The mechanism is extremely simple - when the ball is connecting the circuit the sensor returns a value of 1, when it is not it returns a value of 0. This allowed for a perfect sweet spot for musicians to alternate on and off a note.
I bought a range of these simple, cost-effective sensors from Mountain Sensors (through Mouser), and found the 107-2005 model, the middle size with the leads attached, to be the most responsive and easiest to work with. This allowed for the responsiveness needed by the musicians while simultaneously forcing the trumpeter to fully pantomime playing.
PING ULTRASONIC RANGE FINDER (Parallax Inc.)
I tried the shortest-range Sharp range finder and the Maxbotix LV-EZ0 before picking up a simple Ping rangefinder at RadioShack. It worked perfectly, with its range ending at exactly the right position for playing with the slide completely closed. There is an easy to use Arduino library already built for it and the sensor easily ranges up to the arms length, with sufficient values to assign distinct stops on the slide.
FORCE SENSITIVE RESISTOR (Interlink)
Cymbals are an easy motion to model: playing the cymbals is essentially the same thing as clapping. So the ubiquitous Interlink FSR pad seemed a completely logical solution, as it would allow me to augment the player’s clap with cymbal note inside the computer. It worked perfectly on the first try.