Cyclops Blackbird Puppet

Posted by Cole

Cole's picture

My project was inspired by a story from my childhood. Some friends of mine would travel down to the sewer where they said they saw a "cyclops blackbird" who feasted on sewage. I never did see this bird personally, but this puppet is based on the character that I imagined as a child.

Video is here: http://vimeo.com/20547751

Photo is attached.

I used a photocell, pot, and code based on the theremin code but modified to adjust the sound based on the photocell reading and to adjust the brightness of a green LED with a pot. The photocell is right next to the Piezo Speaker in the mouth of the bird. When the mouth opens, the birds sings its cyclops cyborg sewage song, and when the mouth closes, the bird is "silent" but actually makes a faint humming sound.

The eye of the cyclops is a film canister (if you remember those things) with a "googly eye" glued to the end of it. The canister is illuminated with a green LED, representing the radioactive nature of the bird. The brightness of the led is controlled with a pot. All circuitry is housed in the head of the bird (an old yogurt container), and the rest of the puppet is made of scrap fabric, felt, thin cardboard packaging, glue and safety pins.

the code is below:

 

/* Theremin
 * --------
 *
 *
 * Created 24 October 2006
 * copyleft 2006 Tod E. Kurt <tod@todbot.com
 * http://todbot.com/
 */
 
int LpotPin = 0;    // select the input pin for the potentiometer
int speakerPin = 7;
int PpotPin = 2;   // select the input pin for the potentiometer
int ledPin = 9;   // select the pin for the LED
int vals = 0;      // variable to store the value coming from the sensor
 
int vall = 0;
 
void setup() {
  pinMode(speakerPin, OUTPUT); 
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
  Serial.println("ready");
}
 
void loop() {
  digitalWrite(speakerPin, LOW);
  
  vals = analogRead(LpotPin);    // read value from the photocel
  vals = vals/1.5;                 // process the value a little
  vall=analogRead(PpotPin);      // read the value from the pot
  Serial.println(vall -9 );
  analogWrite(ledPin, vall/4);
   
  for( int i=0; i<500; i++ ) {  // play it for 50 cycles
    digitalWrite(speakerPin, HIGH);
    delayMicroseconds(vals);
    digitalWrite(speakerPin, LOW);
    delayMicroseconds(vals);
  }
}
 
P1011223.JPG
P1011222_0.JPG
0
Your rating: None