Main

April 25, 2008

The Weather Box

I completed my final project for Networked Objects, working with Lesley Flanigan.

Our original idea had been to retrieve weather information from the Internet for different cities, and use this as the basis for a simple melody. This basically what we delivered:

Built into a Fortnum & Mason tea box, is an Arduino-based polyphonic synthesizer, with an XPort Internet access module. The dial allows choosing any of 8 cities. When it is turned, the box retrieves the weather information for that city from an NOAA server, and turns it into a simple melody. Pressing the red button will replay the melody. If for any reason the box cannot establish an Internet connection, it will use the data it last retrieved for that city, which it has stored in the Arduino's on-board EEPROM.

Continue reading "The Weather Box" »

March 04, 2008

Headphone Heterotopia - tech notes

Here are some notes on Headphone Heterotopia, a project I am working on with Lesley Flanigan.

A simple box with a selection dial and a headphone jack allows you to pick a city, and experience realtime weather data from that place as a simple musical phrase.

What is happening inside the box: an Arduino microcontroller uses an XPort network controller to fetch weather data from the NOAA (via a PHP script that simplifies it), and uses it to play a melody using an audio circuit based on digital potentiometers and simple oscillators.

Most of the technical issues are now resolved: the microcontroller is successfully parsing the weather data, and feeding it to the audio synthesis routines. Still need to set up the selection mechanism for multiple cities, and build an enclosure.

Here's a picture of the guts of the thing:

weather synth

Read the past the jump for detailed description and technical issues.

Continue reading "Headphone Heterotopia - tech notes" »

February 12, 2008

Pizza Pong

For the Pong assignment, I wanted to make a wireless controller, using a pair of XBee radios to connect the sensor/microcontroller assembly to the XPort (and hence, the Internet and the shared Pong server).

pizza pong

I was at a loss regarding how to package the whole thing, however, a brief lunchtime excursion yielded the solution: a pizza box.

Click for a picture of the pizza box pong controller in action (Courtesy of David Overholt).

pizza pong

You play Pong by turning the pizza box one way and another, which moves the paddle on the screen. The connect and power buttons are set in the side, and the status LEDs shine through the dot in the "i" in "pizza". Keep reading for more info on how this miracle is achieved.

Continue reading "Pizza Pong" »

January 30, 2008

Pudding Cup reader

For the first assignment in Networked Objects, I made a cup lined with photosensors that reports on the amount of pudding remaining in the cup.

pudding cup

The system works - as the pudding is consumed, more light reaches the photosensors, and the Arduino sends this information to a Processing app which updates a bar-chart on the laptop with the amount of pudding remaining.

I had a number of challenges with this:

1) I forgot to wire the photocells as voltage dividers (ie one leg to power, the other to ground via a resistor, and also to the Arduino analog input).

2) Problems with the Simple Message System library for Arduino - it just didn't work, so I ended up writing my own serial comms handler.

3) Problems with various versions of Processing. It turns out that the version of Processing *with* Java included and the version *without* Java are actually really different. The Java-included one uses a rather old, and modified, version of Java (which is also incompatible with Eclipse). The one *without* Java uses whatever Java JVM is installed on your system, so it will be compatible with Ecllipse, but some Processing extensions won't work.

4) Finally, something is not working with my code. I am doing some basic error checking to make sure that the strings coming from the Arduino are correctly formed, and about 10% of them are not.