Early Hair-emin test
Video of met | on | i | me from the Black Water series
(kinetic and light enhanced sculptural book object)
Final process notes:
My projects for Interactive Electronics were conceived around two modalities: the modality of persistence and the modality of flexibility (or Ludic failure). By pursuing my work along these two contrasting lines, I opened an exploration of physical computing that alternately invited rational, rigorous innovation and performative, playful inquisition. While both these approaches are reflexive in their use of process-derived feedback to guide design, the alternate methods of engaging with obstacle yields insight into two possible (though not mutually exclusive) methods of integrating process into praxis.
Project 1: the Hair-emin
The first project/modality was the Hair-emin, a project conceived along the modality of persistence. As such, it had a fixed and strong conceptual objective, which I worked towards, regardless of problems that arose in the instantiation process. The goal was to produce an instrument that could be played by brushing hair. Through the various problems that arose in the prototyping process, I kept this as a fixed goal, and so worked through the various difficulties without sacrificing the conceptual intention. This meant carefully evaluating the material requirements of such components as a pressure sensitive feedback mechanism, a usable Piezo to pick-up interface, and constructing a usable chassis to house the project as a musical instrument. Major design problems included finding a way to get the pulling motion of brushing to result in a pushing force against a pressure sensitive analog sensor that would then feed data through the Arduino program to the Piezo unit. My initial attempts involved a rod that was ringed by a spring, but later I found that creating a wood housing for the spring was more effective. Another problem was finding a way to attach the hair to the spring mechanism. By using springs on either side of a button I was able to create a physical interface that allowed pulling from attached hair to produce feedback on a pressure sensor without fraying the fishing wire used to attach the hair to the spring mechanism. A week before the final deadline I had been able to create a prototype that registered pulling force and generated tones based on this data. Unfortunately, while creating the final chassis to house the instrument, I tore the delicate plastic on my Force-Resistive Sensor and was unable to procure another before the final deadline. However, once a new sensor is bought, the project should yield a successful instantiation of the Hair-emin concept.
Project 2: Black Water
My second project was conceived around a Ludic engagement with failure. In other words, I chose to let failures in the proto-typing process guide the final product rather than work against these failures in a persistent fashion. This made the second project a more inquisitive, open-ended exploration of the formal potentials of mechanical and electronic components in an artistic context. The initial “loose concept” was to create a wall mounted painting that would be layered with a thread woven overlay, that contracted and relaxed using micro servos to alter the composition based on movement in the room. Early problems in this concept involved the working of the chains by servo, and it was found that a horizontal orientation alleviated this problem. As such, the first object int he Black Water series shifted its orientation and grew into a art object with both kinetic and light components though without an “interactive” component. As this object came into being, I was interested in the contrasting use of black paint and text as formal components in the work, accentuated by light. As a result I created a group of 6 art objects that used various arrangements of LED light, text, and black paint to express the modalities of chance, failure, regeneration, and post-textual composition.
Codes:
Project 1:
int sensorPin = 0; // analog pin used to connect the pressure sensor
int pressureVal; // variable to read the value from the pressure sensor
int songTone = 440; // song tone
void setup() {
pinMode (10, OUTPUT); // Piezo Pin
Serial.begin(9600);
}
void loop () {
pressureVal = analogRead(sensorPin); //reads pressure sensor
pressureVal = 1024-pressureVal;
Serial.println(pressureVal);
songTone = map(pressureVal, 105, 125, 200, 1000); //adjust for range of sensor data
if (songTone > 220) {
tone (10, songTone);
}
else {
noTone (10);
delay (1);
}
}
Project 2:
// Controlling a servo position using a potentiometer (variable resistor)
// by Michal Rinott <http://people.interaction-ivrea.it/m.rinott>
#include <Servo.h>
Servo myservo1; // create servo object to control a servo
Servo myservo2;
Servo myservo3;
Servo myservo4;
Servo myservo5;
int pos1 = 0;
int pos2 = 0;
int pos3 = 0;
int pos4 = 0;
int pos5 = 0;
int light1 = LOW;
int light2 = LOW;
int light3 = LOW;
int light4 = LOW;
int light5 = LOW;
int light6 = LOW;
int light7 = LOW;
int light8 = LOW;
void setup()
{
pinMode (1, OUTPUT);
pinMode (2, OUTPUT);
pinMode (4, OUTPUT);
pinMode (7, OUTPUT);
pinMode (8, OUTPUT);
pinMode (11, OUTPUT);
pinMode (12, OUTPUT);
pinMode (13, OUTPUT);
digitalWrite (12, HIGH);
myservo1.attach(3);
myservo2.attach(5);
myservo3.attach(6);
myservo4.attach(9);
myservo5.attach(10);
Serial.begin(9600);
}
void loop()
{
//light change
if (light8 == light2){
light1 = !light1;
}
if (light1 == light3){
light2 = !light2;
}
if (light2 == light4){
light3 = !light3;
}
if (light3 == light5){
light4 = !light4;
}
if (light4 == light6){
light5 = !light5;
}
if (light5 == light7){
light6 = !light6;
}
if (light6 == light8){
light7 = !light7;
}
if (light7 == light1){
light8 = !light8;
}
digitalWrite(1, light1);
digitalWrite(2, light2);
digitalWrite(4, light3);
digitalWrite(7, light4);
digitalWrite(8, light5);
digitalWrite(11, light6);
digitalWrite(12, light7);
digitalWrite(13,light8);
pos1 = pos1 + 33;
pos5 = pos5 + 36;
pos2 = pos2 + 41;
pos4 = pos4 + 49;
pos3 = pos3 + 62;
if (pos1 > 179) {
pos1 = pos1 - 180;
}
if (pos5 > 179) {
pos5 = pos5 - 180;
}
if (pos2 > 179) {
pos2 = pos2 - 180;
}
if (pos4 > 179) {
pos4 = pos4 - 180;
}
if (pos3 > 179) {
pos3 = pos3 - 180;
}
//forward positions
myservo1.write(pos1);
delay(200);
myservo5.write(pos5);
delay(200);
myservo2.write(pos2);
delay(200);
myservo4.write(pos4);
delay(200);
myservo3.write(pos3);
delay(200);
//apply backwards modifier
pos1 = pos1 - 28;
pos5 = pos5 - 28;
pos2 = pos2 - 28;
pos4 = pos4 - 28;
pos5 = pos5 - 28;
//test <0
if (pos1<0){
pos1 = pos1 + 180;
}
if (pos5<0){
pos5 = pos5 + 180;
}
if (pos2<0){
pos2 = pos2 + 180;
}
Aaaa if (pos4<0){
pos4 = pos4 + 180;
}
if (pos3<0){
pos3 = pos3 + 180;
}
//backward postions
myservo1.write(pos1);
delay(200);
myservo5.write(pos5);
delay(200);
myservo2.write(pos2);
delay(200);
myservo4.write(pos4);
delay(200);
myservo3.write(pos3);
delay(200);
}
Materials:
Arduino unit x 2
Blue LEDs x 20
Micro Servos x 5
Modified DC Adapters x 4
Force Resistive Sensor x 1
Piezo x1
Violin Pick-up x 1
Black hair x 2
Jewelery Chain x 5
Black Water Novel x 4
Canvas x 8
Black Acrylic x 4
Elmer’s Spray Glue
Krazy Glue
Sharpie Chisel Tip
Mounting Tape
Electrical Tape
Screws
Bass Wood panels and blocks





