Animatronics

Sprawl

In late 2014, I was asked by Washington Ensemble Theatre to design and build animatronic costumes for Sprawl. Multiple characters transform into insectoid creatures over the course of the play, and WET wanted a final visual that had moving antennae, operational jaws like an ant’s mandibles, glowing parts, etc. Below are some photos from the development process.

The LEDs cycle through the color wheel, using the following code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/*
This program controls an RGB LED that fades through the
color wheel and assumes common cathode LEDs. See comment
below to change to common anode.
 
*/
int redPin = 8; // sets Red LED to digital pin 8
int greenPin = 9; // sets Green LED to digital pin 9
int bluePin = 10; // sets Blue LED to digital pin 10
int redLevel = 0; // sets Red starting level
int greenLevel = 0; // sets Green starting level
int blueLevel = 0; // sets Blue starting level
float counter = 0;
float pi = 3.14159265359; // sets pi to 11 places for scaling
 
//uncomment the following line if using a Common Anode LED
//#define COMMON_ANODE
void setup()
{
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
Serial.begin(9600);
}
 
void loop()
{
counter = counter + 1;
redLevel = sin(counter/100)*1000;
greenLevel = sin(counter/100 + pi*2/3)*1000;
blueLevel = sin(counter/100 + pi*4/3)*1000;
redLevel = map(redLevel,-1000,1000,0,100);
greenLevel = map(greenLevel,-1000,1000,0,100);
blueLevel = map(blueLevel,-1000,1000,0,100);
analogWrite(redPin,redLevel);
analogWrite(greenPin,greenLevel);
analogWrite(bluePin,blueLevel);
 
delay(10);
}
 
void setColor(int red, int green, int blue)
{
#ifdef COMMON_ANODE // if using common anode, adjusts color values accordingly.
red = 255 - red;
green = 255 - green;
blue = 255 - blue;
#endif
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}

HoganSound