Introduction: Singing Lazy Susan (Crazy Adam) With Hand-made Sensor Brush.

Jean-Baptiste LABRUNE, Noah Vawter, and Aithne Sheng-Ying Pao are three people from MIT Media Lab who share the interest in food and music. We believe that having food together is one of the best ways people get to know more about each others.

We designed the Singing Lazy Susanhttp://www.youtube.com/watch?v=vc4PSgXDp64. Through the interaction with the Singing Lazy Susan, we found the eating patterns and behaviors unique to each person, which reflect our personalities and interests. The dining experience expands to a new domain.

Here we demonstrate how we made the singing Lazy Susan as an "introducing-yourself" tool or a "personality-reflection" interface at a dining table.

Step 1: Select Materials

Considering your Lazy Susan will be holding your food singing and spinning happily, the material selection is important.

first of all, the board should be able to bear the weight of all the food and drinks, and should not be too heavy it self so that it can spin smoothly with food on it.

Second, to make later crafting easier, you should avoid choosing a material too hard to draw holes through.

We experimented with different materials and found that a 0.5 inch thick foam board is perfect for this!

Next step is to measure the size of nuts and find corresponding screws for later use.

Step 2: Lazy Susan in Good Shape

-Use a pen and threads to make a compass/divider by fixing one end of the thread to the pen and the other end to the center of the board.
-the length of the thread depends on the size of the board depending on the size of the dining table you want.
-draw a circle with the pen+thread divider on the board
-cut the round board out of the foam carefully.

Step 3: Pierce Susan

Now draw some holes on the body of Susan...
make sure to draw the holes in the same size as you measured in step 1.

Step 4: Connecting to the Turning Base

Now you have a round foam board with holes around the center, and you have some screws and nuts. Use them to connect the board with a turning base. You can probably find one under a desk in someones office or on the street for free...

If you want to make sure Susan (or Adam) really turn crazily, add some oil around the turning base as shown in this picture.

Step 5: Hand-made Sensor Brush

Now it's the step to make a sensor sensing the table turning and to control the on and off of the music.

It's basically a hand-made brush as shown in the picture -- made with two pieces of any kind of conductive materials, here we used spring steel. We used the bench grinder to shape the steel a little bit. Align the strips well (~ 15 degree angle to the board.) Arrange copper tapes parallel to the line that links the ends of the two metal strips on the board.

We came up with the idea of wrapping the ends of the metal strips with copper tapes, so that the brush can travel across copper tapes smoothly in both directions and can conduct/sense the table turning.



Step 6: Making an Arm

We've experimented with different ways to connect the brush to the table. We tried wood and different glue but they didn't turn out to work very well. Finally we decided to use Acrylic and 3-min Epoxy.

Cut a piece of Acrylic to form an arm, connecting the turning base and the brush. Use 3-min Epoxy to fix the Acrylic arm to the turning ring, and use a glue gun to attach the brushes to the arm.

Step 7: Making Feet

Finally, the back of Lazy Susan looks like this.

To make more space for the wires and Arduino board under the turning table, we blocked up the base by making little "feet" with glue gun.

Step 8: Arduino, Speaker, and Code

Now Connect the hand-made brush sensor and a speaker to Arduino board.
The code is as follows:

int noteIndex=999;
int sensorPin = 2; // select the input pin for the potentiometer
int speakerPin = 9;
int sensorValueOld = PI ;
int sensorValue = 0; // variable to store the value coming from the sensor
int length = 15; // the number of notes
char notes[] = "cDfcDFfDc"; // a space represents a rest
int beats[] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
int tempo = 300;

void playTone(int tone, int duration) {
for (long i = 0; i < duration * 1000L; i += tone * 2) {
digitalWrite(speakerPin, HIGH);
delayMicroseconds(tone);
digitalWrite(speakerPin, LOW);
delayMicroseconds(tone);
}
}

void playNote(char note, int duration) {
char names[] = {
'c', 'C', 'd', 'D', 'e', 'f', 'F', 'g', 'G', 'a', 'A', 'b','S'};
int tones[] = {
1915, 1804, 1700, 1607,
1519, 1432, 1351, 1275,
1204, 1136, 1073, 1014, 956 };

// play the tone corresponding to the note name
for (int i = 0; i < 8; i++) {
if (names[i] == note) {
playTone(tones[i], duration);
}
}
}

void setup() {
// declare the ledPin as an OUTPUT:
pinMode(speakerPin, OUTPUT);

pinMode(sensorPin, INPUT);
digitalWrite(sensorPin,HIGH);

Serial.begin(9600);

}

void loop() {
// read the value from the sensor:
sensorValue = digitalRead(sensorPin);
if(sensorValueOld == sensorValue){
// do nothing!

} else { // value has changed! Lazy Susan has moved!

Serial.println(sensorValue);

// point to next note in sequence
noteIndex++;
if(noteIndex>=strlen(notes)){noteIndex=0;}
playNote(notes[noteIndex], beats[noteIndex] * tempo);
delay(tempo / 2);

}
sensorValueOld = sensorValue;

/*
if (sensorValue != 0){
for (int i = 0; i < length; i++) {
if (notes[i] == ' ') {
delay(beats[i] * random(PI,tempo)); // rest
}
else {
playNote(notes[i], beats[i] * tempo);
}

// pause between notes
delay(tempo / 2);
}

}
*/
}

Step 9: Eat and Sing

Now flip Lazy Susan (Crazy Adam) over. Put it on top of a table under a tree.

Steal someone's leftover from the kitchen. (One of the best parts of this project is low cost.)

see demo video of hungry graduate students