Thursday, May 1, 2008

[prototype12_relays]













hooked up three relays, each to its own 9v and flexinol...



but there was very little movement. We tried tightening the flexinol, using lighter gauge piano wire, connecting to bigger scarier batteries, but without much success. Experimented with paper (instead of piano wire) and got a much greater range of movement.



PBASIC CODE:

' {$STAMP BS2}
' {$PBASIC 2.5}

check VAR Byte
proIn VAR Byte

Main:
DO
check = IN3
proIn = IN10

SERIN 16, 16780, [proIn]

IF proIn > 0 THEN
IF proIn <>

HIGH 9
LOW 2
HIGH 15
PAUSE 5000
LOW 9
HIGH 2
LOW 15

ENDIF
ENDIF

IF proIn > 13 THEN
IF proIn <>

LOW 9
HIGH 2
LOW 15
PAUSE 2000
HIGH 9
LOW 2
HIGH 15
PAUSE 2000
LOW 9
HIGH 2
LOW 15
PAUSE 2000
HIGH 9
LOW 2
HIGH 15

ENDIF
ENDIF

IF proIn > 20 THEN
IF proIn <>

HIGH 15
LOW 2
HIGH 9
PAUSE 1500
LOW 15
HIGH 2
LOW 9
PAUSE 1500
HIGH 15
LOW 2
HIGH 9
PAUSE 1500
LOW 15
HIGH 2
LOW 9

ENDIF
ENDIF

LOOP
END

Labels: , , ,


Saturday, March 29, 2008

arduino.prototype_007c_002 = flexinol + skin + switch controlling behaviour

video close ups and code
 



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);
  }

}

Labels: , , , , , ,


Thursday, March 27, 2008

arduino.prototype_006 = multiple flexinol wires

prototype_006a = multiple flexinol wires at periodic movement



prototype_006b = multiple flexinol wires at aperiodic movement
(one of our flexinol wire broke)

Labels: , , ,


Tuesday, March 25, 2008

ardiuno.prototype_004 = flexinol wire + relay [DIAGRAM + VIDEO]

ardiuno.prototype_004 = flexinol wire + relay [DIAGRAM + VIDEO]
here is the diagram for 1 input + 1 output + 1 relay








here is the diagram for 3 input + 3 output + 3 relay
























here is the video for 1 input + 1 output + 1 relay


Labels: , , ,


Tuesday, March 11, 2008

arduino.prototype_004 = flexinol wire + relay

arduino.prototype_004_a = flexinol wire + 1 relay

our first prototype utilizing a relay to provide more power to flexinol wire, this first prototype uses only one relay to test out the circuit to make sure its working.

















arduino.prototype_004_b = 3 flexinol wires + 3 relay + 3 input
after successfully getting the relay to work, we have now added two more relay to drive two more flexinol wires. as of right now, all three flexinol wires have seperate input, later prototypes will incorporate these into one single input

















//Flexinol_with_relay 20080311_LivingArchitecture
int ledPin2 = 2;
int ledPin4 = 4;
int ledPin6 = 6;

void setup()
{pinMode(ledPin2, OUTPUT);
pinMode(ledPin4, OUTPUT);
pinMode(ledPin6, OUTPUT);}

void loop()
{
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin4, LOW);
digitalWrite(ledPin6, HIGH);
delay(3000);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin4, HIGH);
digitalWrite(ledPin6, LOW);
delay(3000); }


note: video and a clearer circuit diagram to come, and it for the next series of prototypes we intend to combine these multiple inputs into one single input, possibily testing with a simple switch, then moving of to different types of inputs

Labels: , , , ,


This page is powered by Blogger. Isn't yours?