0

Algo Final

The Cutest Blobs Ever



Download Source Code


0

Final Thesis Writing Portfolio

A compilation of all my writing from the semester:


0

Calm Technology :: The Reminder

For the calm technology project I wanted to make a key holder that would alert me when I was leaving my house without my keys. Using an IR sensor to detect motion in front of it, and a peizo sensor on the top to detect weight, a small melody would play to remind you to take your keys.

Unfortunately this iteration of the project was a little unpredictable. At times it would would perfectly, and at others I would be able to get the sound to stop. That being said, I was able to capture some footage of the product working! However, all the electronics were outside of the box.

Code:

#include "pitches.h"

// analog pin for reading the IR sensor
int IRpin = 1;

const int numReadings = 10;
int readings[numReadings]; // the readings from the analog input
int index = 0; // the index of the current reading
int total = 0; // the running total
int average = 0; // the average

int melody[] = {NOTE_C4, NOTE_G3,NOTE_G3, NOTE_A3, NOTE_G3,0, NOTE_B3, NOTE_C4};
int melody2[] = {NOTE_G3, NOTE_B3, NOTE_C4, NOTE_C4, NOTE_G3, NOTE_A3, NOTE_G3,0};

int noteDurations[] = {
4, 8, 8, 4,4,4,4,4 };

// for pressure sensor
int fsrAnalogPin = 0; // FSR is connected to analog 0
int fsrReading; // the analog reading from the FSR resistor divider

void setup() {
Serial.begin(9600); // start the serial port
// initialize all the readings to 0:
for (int thisReading = 0; thisReading < numReadings; thisReading++){
readings[thisReading] = 0;
}
}

void loop(){
fsrReading = analogRead(fsrAnalogPin);
//Serial.print("Analog reading = ");
//Serial.println(fsrReading);

// subtract the last reading:
total= total - readings[index];
// read from the sensor:
readings[index] = analogRead(IRpin);
// add the reading to the total:
total= total + readings[index];
// advance to the next position in the array:
index = index + 1;

// if we're at the end of the array...
if (index >= numReadings)
// ...wrap around to the beginning:
index = 0;

// calculate the average:
average = total / numReadings;
// send it to the computer (as ASCII digits)
//Serial.print("average: ");
//Serial.println(average, DEC);

float line = (4800*0.393700787)/(average - 20); //give distance in inches
Serial.print("line: ");
Serial.print(line);
Serial.print(" Analog reading = ");
Serial.println(fsrReading);

if (line > 5 && line < 10){
Serial.println("IR YES");
if (fsrReading > 50){
Serial.println("WEIGHT YES");
playTone();
}
}
}

// int fade = map(line, 0, 30, 0, 255);
//
// for (int i=0; i< totalPins; i++){
// analogWrite(ledPin[i],fade);
// }

void playTone(){

// iterate over the notes of the melody:
for (int thisNote = 0; thisNote < 8; thisNote++) {

// to calculate the note duration, take one second
// divided by the note type.
//e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
int noteDuration = 1000/noteDurations[thisNote];
tone(8, melody[thisNote],noteDuration);
tone(8, melody2[thisNote],noteDuration);

// to distinguish the notes, set a minimum time between them.
// the note's duration + 30% seems to work well:
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
}
}


0

Light/Time :: Breath

For this project I wanted to create a tool that I could using for a performance I am creating. The concept behind it, is that a dancer is able to control a light source with her breath. The fluctuations through the expanding and contracting of her chest vary the strength of the light. The piece then becomes a metaphor for life, drawing attention to the constant physical act of breathing, and how it keeps us alive.

It was made by using a stretch sensor that detected the amount of movement in the chest while breathing. This data was then sent to another arduino using an xbee. The receiving arduino was connected to a servo, that would adjust a dimmer switch according to the stretch data it was being sent.

The Reciever

Code:

#include
Servo myServo;
float timer;
byte incomingByte;
int servoPos [3];

void setup(){
Serial.begin(9600);
myServo.attach(11);
}

void loop(){
// see if there's incoming serial data:
if (Serial.available() > 0) {
// read the oldest byte in the serial buffer:
// servoPos[0] = Serial.read();
// servoPos[1] = Serial.read();
//servoPos[2] = Serial.read();
// for (int i = 0; i < 3; i = i + 1) {
incomingByte = Serial.read();
Serial.println(int(incomingByte));
myServo.write(int(incomingByte));
}
}

The Transmitter

Code:

int stretchAnalogPin = 0; // stretch is connected to analog 0
int stretchReading; // the analog reading from the stretch resistor divider

int expand = 56;
int contract = 41;

void setup()
{
Serial.begin(9600);
}

void loop()
{
stretchReading = analogRead(stretchAnalogPin);
//Serial.println(stretchReading);
byte servoPos = byte(map(stretchReading, contract, expand, 30, 150));
Serial.print(servoPos);
delay(100);
}


0

Final Thesis Presentation

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.



0

Pre-Final Thesis Presentation


0

Portrait


0

E-Mail Diary :: 6/18/08

I have a habit of sending myself emails that act as journal entires of sorts. I find myself typing the thoughts and sending them to myself when I am away from my journal or stuck at a computer. I did this act most consistently when I worked at an advertising agency. I would spend hours a day at my desk, bored, and would spend my time writing, appearing to work.I came across this particular “diary entry” that expresses my emotional state during a particularly difficult time in my life.

I was still playing around with the xtranormal.com site, pairing certain content and see how the juxtapositions read. I decided to use the text from this entry as a sort of monologue for the monotone actor that plays me. I was able to choose a green screen backdrop for the video, so I superimposed it on top of the home videos of me dancing as a child.

When combined, it speaks to the loss of innocence that occurs when we grow up. We never consider the hard ships and traumas that we face as an adult, and perhaps take for granted our naivety. It is almost as if their pairing gives me to opportunity to talk to my younger self.

After talking briefly with Cynthia about this initial investigation, I was encouraged to think about my decision is choosing an avatar to represent my “present” self. Initially I wanted to use it to represent the fact that the piece of writing was generated and stored digitally. I also am interested in the emotionless quality of the avatar, as it reveals some deeply personal information. That being said, we did discuss the performative nature that a piece like this could take. I promise to entertain the idea over break.


0

Impetus and Motivation


0

Video Overlay Tests

Inspired by the overlayed photographic compositions that I made earlier in the semester, I wanted to make a version using the home video footage. I wanted to create a wash of images and sound, that blurred everything into one picture. For test one, I left all the video footage playing at the same transparency for the entire duration. For test two I wanted to experiment by bring certain clips into the foreground, and then recessing them back. This was to give the idea that memories fade in an out, creating a stream of conscious association. I also played with desaturating the collective memories, with the clearer memories having color. For the third experiment I slowed everything down to create a visual that was more amorphous and cloudy.


Pages ... 1 2