Connie – Final Project

This project features a lovely, be-jeweled turd that talks. The LEDs are synced with the audio to create the illusion that the turd is, in fact, do the talking. I had originally hoped to make this as an example of how people say things that are insubstantial and amount to basically a pile of crap. Though now looking at it the poop seems to become a character of its own – that may one day rise above its state of abject shit and evolve into the most fabulous poo that ever pooped.

A Shitty Spiel from Connie D on Vimeo.

The audio file was originally played in processing where the values were then sent to Arduino.

Processing:

import processing.serial.*;
Serial myArduinoSerial;
int valueToSend;

import ddf.minim.*;
Minim minim;
AudioPlayer diatribe;

PImage goldenpoop;

void setup() { 
  size(249, 188);
  goldenpoop = loadImage("goldenpoop.jpg");

  minim = new Minim(this);

  diatribe = minim.loadFile("poopy.mp3");

  float vol = diatribe.getVolume();

  println(Serial.list());

  myArduinoSerial = new Serial (this, Serial.list()[0], 9600);
}

void draw() {

  image (goldenpoop, 0, 0);

  AudioBuffer theBuf = diatribe.mix;
  float vol = theBuf.level();
  float convertedVol = map(vol, 0, 1, 0, 255);

  valueToSend = (int)convertedVol;

  vol = diatribe.getVolume();
  println("volume: " + valueToSend);

  myArduinoSerial.write(valueToSend);
}

void mousePressed() {
  diatribe.rewind();
  diatribe.play();
}

void stop() {
  diatribe.close();
  minim.stop();
  super.stop();
}

 

Arduino:


const int leds[ ] = {
  3, 5, 6, 9, 10, 11};


void setup() {
  // initialize the serial communication:
  Serial.begin(9600);
  for (int i=0; i< 6; i++){
    pinMode (leds[i], OUTPUT);
  }
}

void loop() {
  byte brightness;

  if (Serial.available()) {
    brightness = Serial.read();

    for (int i=0; i<6; i++){
      analogWrite(leds[i], brightness);
    }
  }
}



Post a comment