Mobile Peripheral Packs (“Swan”)
I’m currently exploring the hardware and software options for making a wearable peripheral that connects to a pocket computing device. Below are the details of two test rounds. I’m working on a fun mini-demo to show my findings: a swan armband and 3D software inspired by theatrical influences like Brazilian carnivals and the recent film Black Swan. The user would wear the armband and control an openGL swan through his movement. The Swan demo will have its party premiere at the Lower East Side Girls Club's Mardi Gras Ball!
After soldering the Bluetooth Mate to its connector and connecting all the hardware components (see below), I modified a simple Arduino sketch to read accelerometer values into the Lilypad Arduino and transmit those values via Bluetooth. I also modified a simple Processing sketch to read the transmitted values and translate them into a color display.
Below: The simple hardware set up with Lilypad Arduino + Bluetooth Mate (lower left), power supply (lower right), and accelerometer (top).
Below: I tilt the accelerometer and see the colors change on my computer.
Next, I wanted to try setting up my Lilypad hardware to with a mobile output device. I have an iPod Touch and have experience with its SDK, so I figured that would be a good place to start. But after reading more on Sparkfun’s Bluetooth Mate page and seeing that the Bluetooth Mate’s profile is different from that of most smartphones and video game controllers, I realized that the Bluetooth Mate (which has an SPP (Serial Port Profile) profile) will not easily communicate with a smartphone (most of which have a HID (Human Interface Device) profile).
I looked into the possibility of a workaround, but this seemed too intensive for my short-term demo purposes. The Arduino Bluetooth platform uses a bluetooth radio with a HID profile, but at high monetary cost. I would like to eventually just build a circuit for the bluegiga module in the Arduino Bluetooth-- but again, that would be a slightly longer-term project.
After reading that the Wii, PSP, and Xbox all use Bluetooth HID, I decided to change tactics and switch from the Lilypad to the low-cost, frequently hacked Wii Remote. On to Round 2!
Dr. Matthias Ringwald runs the BTstack project, which provides support for devices with a limited Bluetooth Stack. Installing BTstack on an iOS device requires jailbreaking, which is not ideal for my long-term purposes, but will do for now. The BTstack “getting started” directions were helpful, but because my iTouch runs the latest iOS, I had to make a few accommodations:
Other Helpful links:
Now that I have a Wii Remote communicating with my iTouch, my next step is to modify the BTStack “WiiMote Demo” and build my “Swan” peripheral.
For the inner guts of the peripheral, I pulled the circuit board from the Wiimote and added my own buttons and two battery holders. The Wiimote does not have separate battery holders--its external white casing keeps the batteries in place. Note that in this battery configuration, the batteries are connected in series (Wiimote positive -> battery1 positive -> battery1 negative -> battery2 positive -> battery2 negative -> Wiimote negative). This is why two battery holders were needed instead of one.
To protect the electronic parts with something soft and light, I placed them in a removable "kimono" that I made from felt and velcro.
The external armband is made from costume components from Trims de Carnival, a great store in the fashion district. Perfect for my Mardi Gras costume!
My "Swan" demo app is a re-working of the openGL, input, and MVC paradigms in Ringwald's "WiiMoteOpenGLDemo" project. There is a "Noble" swan model, a "Shy" swan model, and a "Crazy" swan model. Below are some videos of the swan software/hardware demo, "performed" by artist Crista Grauer, DuKode collaborator Ilias Koen, and myself. This demo took place at Crista's amazing home and studio in the Soho section of New York. Note that the last of these videos involves a little technical discussion about the software and 3D programming.