" /> Anthony Ko: March 2007 Archives

« February 2007 | Main | April 2007 »

March 29, 2007

ROTOR


438988611_bb04e003ca_o

For the one week curiosity cabinet...
Scrolling text is projected onto the back of the cabinet. The scrolling text was achieved by running a small camera over printed text using a motor and old printer chassis. The direction of the motor was controlled by an Arduino, some switches, and relays.

This project is a prototype for a larger piece where the concept relies on motion controlled cameras and video switchers to create continuous scrolling text. The basic idea is illustrated below.






...the Arduino code - bits and pieces pulled from the ardunio site:
int switchPin = 2; // switch input
int motor1Pin = 3; // H-bridge leg 1
int motor2Pin = 4; // H-bridge leg 2
int speedPin = 9; // H-bridge enable pin
int ledPin = 13; //LED
int led2Pin = 6;

int inPin = 2; // the number of the input pin
int outPin = 13; // the number of the output pin

int state = HIGH; // the current state of the output pin
int reading; // the current reading from the input pin
int previous = LOW; // the previous reading from the input pin
// the follow variables are long's because the time, measured in miliseconds,
// will quickly become a bigger number than can be stored in an int.
long time = 0; // the last time the output pin was toggled
long debounce = 200; // the debounce time, increase if the output flickers


void setup() {

// if (DEBUG)
Serial.begin(19200);

pinMode(inPin, INPUT);
pinMode(outPin, OUTPUT);

// set the switch as an input:
pinMode(switchPin, INPUT);

// set all the other pins you're using as outputs:
pinMode(motor1Pin, OUTPUT);
pinMode(motor2Pin, OUTPUT);
pinMode(speedPin, OUTPUT);
pinMode(ledPin, OUTPUT);
pinMode (led2Pin, OUTPUT);

// set speedPin high so that motor can turn on:
digitalWrite(speedPin, HIGH);

// blink the LED 3 times. This should happen only once.
// if you see the LED blink three times, it means that the module
// reset itself,. probably because the motor caused a brownout
// or a short.
blink(ledPin, 3, 100);

}

void loop() {

reading = digitalRead(inPin);

// if the input just went from LOW and HIGH and we've waited long enough
// to ignore any noise on the circuit, toggle the output pin and remember
// the time
if (reading == HIGH && previous == LOW && millis() - time > debounce) {
if (state == HIGH)
state = LOW;
else
state = HIGH;

time = millis();
}

digitalWrite(outPin, state);

previous = reading;

// if the switch is high, motor will turn on one direction:
if (digitalRead(switchPin) == HIGH) {
digitalWrite(motor1Pin, LOW); // set leg 1 of the H-bridge low
digitalWrite(motor2Pin, HIGH); // set leg 2 of the H-bridge high
}
// if the switch is low, motor will turn in the other direction:
else {
digitalWrite(motor1Pin, HIGH); // set leg 1 of the H-bridge high
digitalWrite(motor2Pin, LOW); // set leg 2 of the H-bridge low
}
}

/*
blinks an LED
*/
void blink(int whatPin, int howManyTimes, int milliSecs) {
int i = 0;
for ( i = 0; i < howManyTimes; i++) {
digitalWrite(whatPin, HIGH);
delay(milliSecs/2);
digitalWrite(whatPin, LOW);
delay(milliSecs/2);
}
}

things the thesis is not

Download file

March 23, 2007

midterm thesis prep writeup

on the wiki

March 16, 2007

links for 2007-03-16

March 14, 2007

links for 2007-03-14

  • The Libsyn guys get acquired by Wizzard and are now doing some regular video podcasts. Entertaining stuff. Leave them a voice comment and they'll send you free stuff. awesome.
    (tags: podcast libsyn)

March 11, 2007

"living shadow" project, some notes

The initial idea for the shadow project was install a rear projection screen in a public space such as a hotel lobby and as people walked by a set of cameras, video of them would be buffered and then then processed to look their shadow as it was projected onto the screen next to them.


The projected "shadow" of the walking subject would be modified to suggest that the shadow was its own entity. For instance, the speed of the shadows walk could be sped up, or the detached shadow would continue walking if the subject stopped. The intention was to create a shadow that moved independently and would quietly bring notice to itself from the subject's peripheral vision.

After getting about a quarter way through with a MAX/MSP prototype, I felt like I wanted to make something that was less screen based and more physical. I wanted something that would respond with physical movement. A variation shadow concept was to translate the video to a set of moving LEDs that would be attracted to the proximity of objects such as the hand. A person could sit and interact with it, a bit like the way someone would play with a sea anemone at the tide pools. The lights would come close to the hand, but quickly retract as one got too close.

Untitled-4

I went through some different places where the LED configurations could be installed...
wall, floor, table, bench...

If I placed the moving LEDs on the floor, people would probably interact with it using their feet...not to many people would be willing to get on their hands and knees...

Thought about putting it on a bench, offer some visual cues on where to sit and such, but in class Peggy explained that, "no girl is going to want to put her ass on something that lights up - make it a table instead"...

Using the bench configuration and changing the interaction into something less blatant, another idea came up where instead of a person causing the lights to change or move they would change according to the outside environment. Have the bench placed inside, in a hallway or some dim windowless waiting area, and have a sensor outside sending about the angle of the sun rays to the LED's on the bench, so depending on where the sun is during the day, the "shadow" would be displayed at a different angle on the bench, in a similar fashion to a sundial.

bench_shadow copy

Some ideas for the wall configuration...
Set it up like a low resolution pinscreen...except the the shape of the person walking by would be represented without the need to push the pins...use motors or magnetics?...might be visually interesting to place a large sheet of latex over the pins...

Crazy idea...
crowd surfing machine. use huge foam pins to carry a stage diver across....

...more sketches to come.


March 10, 2007

links for 2007-03-10