NIME week 3

September 29, 2009

Sound clash featuring The Roots and Antibalas

thanks to Drew for this one.

Boredoms 9 drummers, rehearsal

Still looking for the Don Buchla piece.

Computational Cameras Week 2

February 9, 2009
Matt and I, trapped in Processing

Matt and I, trapped in Processing

Matt and I experiment with blog detection and background removal in Processing.

GRANPA LOVES VALENTINES DAY  http://vimeo.com/3141522

RAINBOW IMAGE DETECTION  http://vimeo.com/3139804

Fun with java.lang.RuntimeException:createPlayer()failed

February 2, 2009

When Matt and I tried to play around with the Mpowerplayer sdk we had a problem getting the code to work. We could only get this message “java.lang.RuntimeException: unknown protocol: capture”

picture-1

and once we successfully synched up my roommates Razr to my computer we were able to send the file to it but it also didn’t work and instead gave this error “java.lang.RuntimeException:createPlayer()failed”
We tried uploading other applets to the phone and they worked fine. So there has to be something wrong with our initial code.

Reasons for using cameras on mobile devices.

Sending friends and loved ones a live travel log of a road trip or expedition.

Sending weekly photo entries of ones (those who apply) facial hair onto a beard growing contests monitoring page.

Sending photos of berries and fungi to experts/friends, who can help determine its safety/potency.

Playing modern-day version of scavenger hunt, where another person has to find the uploaded images in the order that they were taken, retracing the path of the one who took them.

A delirious person continuously uploading pictures of him/herself to prove his/her own existence

Talking Servos!

October 24, 2008
Two servos interacting in a loop

Two servos interacting in a loop

Hello all,

For this lab I decided to get a little creative and try to have two servo motors interact with eachother. In the past couple of years I have been getting more interested in the concept of kinetics. Even though this lab isn’t really the best example of kinetics, I thought it would be fun create something similar. I wanted to have two servos interact with eachother, creating a continuous loop. Each servo was triggering the other’s photosensor which in turn would trigger the others motor. Its a little complicated to explain, as it was also difficult to code. But I think it is easier to show rather than tell. Just click the link below.

VIDEOS! (click links below)

Early servo tests

Servos interacting!

Breadboard

Breadboard

CODE:

int servoPin = 11;     // Control pin for servo motor
int servoPin2 = 3;     // Control pin for servo motor
int minPulse = 500;   // Minimum servo position
int maxPulse = 2500;  // Maximum servo position
int pulse = 0;        // Amount to pulse the servo
int minPulse2 = 500;   // Minimum servo position
int maxPulse2 = 2500;  // Maximum servo position
int pulse2 = 0;        // Amount to pulse the servo

long lastPulse = 0;    // the time in milliseconds of the last pulse
int refreshTime = 20; // the time needed in between pulses
long lastPulse2 = 0;    // the time in milliseconds of the last pulse
int refreshTime2 = 20; // the time needed in between pulses

int analogValue = 0;  // the value returned from the analog sensor
int analogPin = 1;    // the analog pin that the sensor’s on
int analogValue2 = 0;  // the value returned from the analog sensor
int analogPin2 = 0;    // the analog pin that the sensor’s on
int ct;
int ct2;
int servoValue;
int servoValue2;

void setup() {
pinMode(servoPin, OUTPUT);  // Set servo pin as an output pin
pinMode(servoPin2, OUTPUT);  // Set servo pin as an output pin
pulse = minPulse;           // Set the motor position value to the minimum
pulse2 = minPulse;           // Set the motor position value to the minimum
Serial.begin(9600);
}

void loop() {
analogValue = analogRead(analogPin);      // read the analog input

servoValue=  analogValue;

//pulse = map(servoValue,0,1023,minPulse,maxPulse);    // convert the analog value
// to a range between minPulse
// and maxPulse.
analogValue2 = analogRead(analogPin2);      // read the analog input
//pulse2 = map(analogValue2,0,1023,minPulse2,maxPulse2);    // convert the analog value
// to a range between minPulse
// and maxPulse.

Serial.print(“pin 0: “);
Serial.print(analogValue2, DEC);
Serial.print(” pin1: “);
Serial.println(analogValue, DEC);      // print the pot value back to the debugger pane
delay(10);                     // wait 10 milliseconds before the next loop

if (analogValue < 400) {
pulse= 500;
pulse2= 2500;
}

if (analogValue2 < 400) {
pulse2= 500;
pulse= 2500;
}

/* ct++;

if (ct > 40){
pulse = map(500,0,1023,minPulse,maxPulse);

if (ct > 60){
pulse = map(0,0,1023,minPulse,maxPulse);

if (ct > 70){
ct=0;
}

}*/

// }

/*if (analogValue2 > 100) {

ct2++;

if (ct2 < 30){
pulse2 = map(500,0,1023,minPulse,maxPulse);

if (ct2 < 60){
pulse2 = map(0,0,1023,minPulse,maxPulse);

if (ct2 < 70){
ct2=0;
}

}

}

}
*/

// pulse the servo again if rhe refresh time (20 ms) have passed:
if (millis() – lastPulse >= refreshTime) {
digitalWrite(servoPin, HIGH);   // Turn the motor on
delayMicroseconds(pulse);       // Length of the pulse sets the motor position
digitalWrite(servoPin, LOW);    // Turn the motor off
lastPulse = millis();           // save the time of the last pulse
}
if (millis() – lastPulse2 >= refreshTime2) {
digitalWrite(servoPin2, HIGH);   // Turn the motor on
delayMicroseconds(pulse2);       // Length of the pulse sets the motor position
digitalWrite(servoPin2, LOW);    // Turn the motor off
lastPulse2 = millis();           // save the time of the last pulse
}
}

SERIAL LAB (video at bottom!)

October 9, 2008
My pals Arduino and Breadboard

My pals Arduino and Breadboard

Potentiometer

PotentiometerBread board ready for serial communicationCode for Processing and Arduino

In this lab we setup a serial connection with the Arduino and Processing.

After reinstalling my Arduino software my computer finally agreed to help me complete this lab.

It was a pretty straight forward lab. I setup my broad board according to the pictures on the Pcomp site and then used the code provided to program both Processing and Arduino.  I then tweaked the potentiometer to change the Y values on the screen. (video attached at bottom)

Code for Processing and Arduino

Code for Processing and Arduino

Serial Lab 1 from Winslow Porter on Vimeo.

LOVING HANDS <3

September 18, 2008

Here is my Love-o-meter project.

Couples hold hands and the thermosistor reads how deep there love is.

I wanted to recreate a machine that was reminiscent of the Love-o-Meters that I saw as a child at the Hampton Beach Casino on the coast of New Hampshire. Of course my presentation was not a 2 ton machine with a coin slot and a dozens of dazzling lights, but it stayed true to the idea of a “hands on” haptic experience.

I started the coding by  using pieces of both of the previous labs. I wanted to be able to use my potentiometer to get the analog values (temperature) but have it affect the LED’s digitally (on or off).

LOVING HANDS Code

LOVING HANDS Code

The final result was one of a lot of trial and error. Setting the proper heat ranges required many test subjects all with different hand temperatures. I wanted to make it difficult to light the final LED, so I made it a very high range, reserved only for those with really warm hands.

I constructed a box out of foam core to house my 3 LEDs. Each one representing a higher level of love, emphasized by a the size of the heart.  I was amazed at how such a simple housing could heighten the affectiveness of the box. After all, most of the real Love-o-meters are just dolled up, simple potentiometers as well.

RAIN SENSOR

September 18, 2008

Here you can see the rising water level causes the foam float (with a conductive surface on top) to touch a piece of metal, completing the circuit.

This is my first week’s project. It is designed to sense when rain reservoirs are full. It is a very basic switch, but I could see that this could be very helpful for communities who don’t have access to clean drinking water. Many of these devices could be placed in trees with the LED’s positioned at the base.

I found this project really interesting because it allowed me to understand how some of the most essential pieces of technology are just an on or off switch.

The code that I used was pretty minimal, but totally sufficient for the task at hand.

Please excuse the poor design of this page, for this is also my first blog post ever!

Hello world!

September 16, 2008

Welcome to WordPress.com. This is your first post. Edit or delete it and start blogging!