Mar 29, 2008

periodic / a periodic behaviour


long t;

int ledPin13 = 13;
int ledPin12 = 12;
int ledPin11 = 11;
int ledPin10 = 10;

int inPin = 7;
int val = 0;

boolean flex13 = false;
boolean flex12 = false;
boolean flex11 = false;
boolean flex10 = false;

int t13 = 6000;
int t12 = 3000;
int t11 = 6000;
int t10 = 3000;

int rndMin = 4000;
int rndMax = 8000;

int base13 = 6000;
int base12 = 3000;
int base11 = 6000;
int base10 = 3000;

int flexTime = 500;

void setup(){ 
  pinMode(ledPin13, OUTPUT);
  pinMode(ledPin12, OUTPUT);
  pinMode(ledPin11, OUTPUT);
  pinMode(ledPin10, OUTPUT);
}

void loop(){
  
  val = digitalRead(inPin);
  t = millis(); 
  
  if (t % t13 == 0){
    flex13 = true;
  }
  if ((t - flexTime) % t13 == 0){
    flex13 = false;
    if (val == LOW){
      t13 = int( random(rndMin,rndMax));
    }
    if (val == HIGH){
      t13 = base13;
    }
  }  
  if (t % t12 == 0 && t % (t12*2) != 0){
    flex12 = true;
  }
  if ((t - flexTime) % t12 == 0 && (t - flexTime) % (t12*2) != 0){
    flex12 = false;
    if (val == LOW){
      t12 = int( random((rndMin/2),(rndMax/2)));
    }
    if (val == HIGH){
      t12 = base12;
    }
  }
  if (t % t11 == 0){
    flex11 = true;
  }
  if ((t - flexTime) % t11 == 0){
    flex11 = false;
    if (val == LOW){
      t11 = int( random(rndMin,rndMax));
    }
    if (val == HIGH){
      t11 = base11;
    }
  }
  if (t % t10 == 0 && t % (t10*2) != 0){
    flex10 = true;
  }
  if ((t - flexTime) % t10 == 0 && (t - flexTime) % (t10*2) != 0){
    flex10 = false;
    if (val == LOW){
      t10 = int( random((rndMin/2),(rndMax/2)));
    }
    if (val == HIGH){
      t10 = base10;
    }
  }
  
  if (flex13 == true){
    digitalWrite(ledPin13, HIGH);
  }else{
    digitalWrite(ledPin13, LOW);
  }
  if (flex12 == true){
    digitalWrite(ledPin12, HIGH);
  }else{
    digitalWrite(ledPin12, LOW);
  }
  if (flex11 == true){
    digitalWrite(ledPin11, HIGH);
  }else{
    digitalWrite(ledPin11, LOW);
  }
  if (flex10 == true){
    digitalWrite(ledPin10, HIGH);
  }else{
    digitalWrite(ledPin10, LOW);
  }

}


Mar 28, 2008

naussicaa's mowe





Nason told me about this amazing (for me:)) project.


mowe

Mar 26, 2008

wording what i am trying

Feedback system -through attending today's David class-
Charles and Rob are working on a kinetic output based on the units having their own internal connection with each other.
So with a sound input, I would like to focus on effecting this output by enhancing and diminishing its behavior like a volume control, or putting a variation in their behavior so that it possibly produces our own solution for manipulating the state of 2 separate spaces. I have made 3-4 prototypes and compared them to really understand different sensitivities of sound data based on different methods. I hope that this could possibly control the sensitivity of our project itself.


Mar 22, 2008

B_soudnInput_prt4_Using headphones as a microphone

Thanks for Frank, we finally got the sound input work readily using radio shack amplifier.

Using headphones as a microphone



processing sketch__soundAnalysis using prt4



>> the code (processing+arduino)___please thanks to Luibo




Mar 21, 2008

Conceptual Model


Conceptual Model, originally uploaded by thetarbre.

We would like to manipulate a special organization by creating a certain behavior of a partition panel based on its internal connection.
Units change their transparency through reading vibrations creating each other. (Piezo Element)
As the tool for reading ambient noise, the microphones would be set up in two separate rooms.
When analyzed and interpreted, this incoming noise data would act as a master control of the state of separate rooms by possibly enhancing or diminishing the behavior of the panel overall.

Mar 14, 2008

B_vibrationalSensors>>to charles and rob

The basic configuration of the Piezo element is shown here:
>>code

Listening to each other -revealing materiality through the vibrational interaction of each component-
We hope to make the interaction among each component of our output that would require a relatively small scale of input from each. So in parallel with working on sound input (that would be sensing a wider range of presence), the exploration of output based on input of the Piezo element would be good to start with.

Raw Piezo Element.
I heard that microphones are made of piezoelectric film. Those piezoelectric sensors consist of a small piezoceramic plate and electrode and are generally used to detect strain or very slight force changes. When bent, they produce varying voltage within a relatively ready-response.

Mar 11, 2008

Mar 8, 2008

B_soundInput_prt2


[Prototyepe2]
_using Velleman K1803 Universal Mono Preamplifier from Jameco (part no. 117612).
>>I need the dynamic microphone.
Specification

  • power supply: 10-30V DC / 10mA
  • output impedance: 1Kohm
  • adjustable output level: max. 40dB
  • frequency range: 20Hz to 20kHz ± 3dB
  • max. input signal: 40mV

B_soundInput_prt1

[protptype1]
_building my own amplifier with radioshack "LM386 Audio Amplifier"





B_soundInput_prt1 from chie fuyuki on Vimeo.

Mar 6, 2008

ASM06_Arduino meets Processing...visualizing Potentiometer values

For dealing explicitly with the complexity of sound input, it is effective to visualize the data in processing. Here are the steps I made for letting Arduino talk to Processing.

refer to
->> Processing Serial Library
->> Arduino Play Ground / Arduino meets Processing / Potentiometer




[step1]

ASM06_001AP-potValues

It is a potentiometer value that has to be visualized here in its processing code.
When the pot knob is turned, the incoming value gradually changes. (
>>a variable resistor)

>> Arduino Code
>> Processing Code










  • import processing.serial.*;
  • Serial myPort;
  • PFont myFont;
  • String inString; // Input string from serial port:
  • int lf = 10; // ASCII linefeed
  • int value = 0;
  • int valNorm = 0;
  • String buf="";
  • int xpos = 0;
  • void setup() {
  • // if(inString==null)inString="100";
  • size(460,100);
  • myFont = loadFont("CourierNewPSMT-18.vlw");
  • println(Serial.list());
  • myPort = new Serial(this, "COM2", 14400);
  • myPort.bufferUntil(lf);
  • frameRate(20);
  • }
  • void draw() {
  • while(myPort.available() > 0){
  • value = myPort.read();
  • println("value "+value);
  • serialEvent(value);
  • }
  • background(255);
  • uploading();
  • fill(0);
  • textFont(myFont, 18);
  • text("pot receives; " + valNorm,10,35); //"received: " + inString
  • }
  • void serialEvent(int serial){ // if serial event is not a line break
  • if(serial!=10) {
  • buf += char(serial); // add event to buffer
  • println("buf"+buf);
  • }
  • else {
  • valNorm = int(buf); // if serial is line break set valNorm to buff and clear it
  • println("valNorm---"+valNorm);
  • buf="";
  • }
  • // convert valNorm to xpos
  • // xpos = constrain ( ( ((valNorm-100)*(width+100))/width ) ,0, width-12);
  • // if(output) println("xpos: "+xpos);
  • }
  • void uploading(){
  • noStroke();
  • fill(255, 0, 0);
  • rect((valNorm*0.44)+1023/width, 60,4,40 );
  • }



Mar 4, 2008

Mar 3, 2008

HYPOSURFACE




The piece Hyposurface is a facetted metallic surface that has potential to deform physically in response to electronic stimuli from the environment (movement, sound, light,etc). Driven by a bed of 896 pneumatic pistons, the dynamic 'terrains' are generated as real-time calculations.

The piece marks the transition from autoplastic (determinate) to alloplastic (interactive, indeterminate) space, a new species of reciprocal architecture.

The Aegis Hyposurface effectively links information systems with physical form to produce dynamically variable, tactile 'informatic' surfaces. Aegis is perhaps the world's first such dynamic screen.

Any digital input (microphone, keyboard, movement sensor) can trigger any physical output (a wave or pattern or word.)