Lighting Flower 1.2
Lighting Flower는 빛에 반응하고, 빛을 반사하는 꽃을 말합니다.
이것은 완성된 작품이 아닌, 하나의 독립된 모듈로 다른 작품들에 응용할 수 있도록 제작되었습니다. Lighting Flower가 응용된 작품은 Lighting Chair, Flowall, 각종 퍼포먼스에 응용되었습니다.
Lighting Flower의 초기 모델은 철사와 반사판을 이용해 단순히 빛을 반사시키며 돌아가는 형태였습니다.
꽃잎이 펴졌다 닫혔다를 했으면 좋겠다는 김영희 교수님 의견을 듣고 Lighting Flower는 1.2 버전으로 진화하기위해 다시 옷을 벗고 초기 디자인부터 다시하게 됩니다.

메카닉 디자인 ideation 입니다. 진주현 학생의 도움을 받아 제작하게 되었습니다.
버젼 1.1의 진정한 Stupid Pet trick Version 입니다.이것에 디자인을 하여 탄생한 녀석이 아래의 Lighting Flower 1.2 버젼입니다.
꽃잎이 열고 닫히니 확실히 화려하고 Robotic한 분위기가 나게됩니다.
단지 꽃잎을 열기 위해 만든 하단의 회전축이 너무 커서 디자인이 굉장히 까다롭습니다.
1.3으로 진화하기 위해선 처음부터 다시 디자인을 해야할 필요성을 느낍니다.
http://www.flickr.com/photos/absurdee/2494433496/
+
아듀이노 워크샵때 배포한 코드 입니다. 보통 Servo 모터는 for문으로 구현하는 경우가 대부분인데
for문의 경우 한번 코드에 들어가면 나올수가 없기때문에 순간적인 빛 감지에 반응하기가 어렵습니다.
If 문으로 짠 코드입니다, 초기에 빛값과 후의 빛값을 비교하여 빛의 차이를 감지하여 모터를 돌리는 소스입니다.
필요하신 분들은 참과 바랍니다.
—————————————————————————
#include <Servo.h>
Servo servo1;
Servo servo2;
int cds;
int cdsint[3];
int intval;
int nowLight;
int sens=100;
int t1=0,t2;
void setup()
{
servo1.attach(14);
servo1.setMaximumPulse(2200);
servo2.attach(15);
Serial.begin(9600);
cdsStart(5);
}
void loop()
{
cdsRead(5);
if(nowLight>=sens) {
if(t1<=180) {
servo1.write(t1);
servo2.write(t1);
t1=t1+1;
Servo::refresh();
if(t1>=180) {
t2=180;
}
} else {
servo1.write(t2);
servo2.write(t1);
t2=t2-1;
Servo::refresh();
if(t2<=0) {
t1=0;
}
}
}
}
void cdsStart(int Pin) {
cdsint[0] = analogRead(Pin);
Serial.println(cdsint[0]);
delay(500);
cdsint[1] = analogRead(Pin);
Serial.println(cdsint[1]);
delay(500);
cdsint[2] = analogRead(Pin);
Serial.println(cdsint[2]);
delay(500);
intval = (cdsint[0]+cdsint[1]+cdsint[2])/3;
Serial.print(“Intitial Light val in 5 Pin =”);
Serial.print(intval);
delay(2000);
}
void cdsRead(int Pin) {
cds = analogRead(Pin);
nowLight = cds – intval;
Serial.println(nowLight);
}
—————————————————————————
