Archive for the ‘code samples’ Category

기말_프로토타입 제작

June 18, 2008

실험 3에서 조형적인 부분에 대해서 덧붙여 프레젠테이션 한 것입니다.

——————————————————————————-

int motorPin0 = 2; //the H bridge takes two outputs from the Arduino to control the motor.

int motorPin1 = 3;  

int state = 0; //declare the state variable 

int value = 0;        

int val;

int porPin = 1;  

int ledPin = 9;                      

 

 

void setup() {

  pinMode(motorPin0, OUTPUT);   //the motor control wires are outputs

  pinMode(motorPin1, OUTPUT);

  pinMode(ledPin, OUTPUT); 

  pinMode(porPin, INPUT);  //cds input

  Serial.begin(9600);

}

void loop() {

  val = analogRead(porPin); //read the pot

  Serial.println(val);

  if (val>=600) {

    digitalWrite(motorPin0, HIGH);

    digitalWrite(motorPin1, LOW);

    for(value = 0 ; value <= 255; value+=5) // fade in (from min to max) 

    { 

      analogWrite(ledPin, value);  // sets the value (range from 0 to 255) 

      delay(30);     // waits for 30 milli seconds to see the dimming effect 

    } 

    for(value = 255; value >=0; value-=5)   // fade out (from max to min) 

    { 

      analogWrite(ledPin, value); 

      delay(30); 

    }  

  }

  else {

    digitalWrite(motorPin0, LOW);

    digitalWrite(motorPin1, LOW);

  }

}

—————————————
코드는 포토셀 값이 커지면 (어두워 지면) 모터가 움직여 앞으로 가게 되고 그러는 동안에 LED 가 숨쉬듯 페이드 인, 아웃 을 하게 되고, 다시 포토셀 값이 작아지면 (밝아지면) 멈추게 되는 원리 입니다.

flash + zinc 를 아듀니오와 연동하는 source @ phyCom cafe

May 22, 2008

http://cafe.naver.com/physicalcomputing.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=77#

지난번에 수업중에 와서 발표를 했던 진환군이 후배들을 위해 친절하게 플래시로 시리얼 통신하는 법을 올려놓았네요.

참고하세요~

…Y

arduino code sample: 6 switches + 6 output (LEDs)

May 19, 2008

여러분, 참고하세요~ 5월21일 아듀니오 워크샵합니다. 그다음주에는 이 블로그에 다큐멘팅된 사이트로 발표할 계획이니 “post”빨리 만드세요. 이번주 금요일에 체크하여 학점에 반영됩니다. 테크박스도 설명 넣으세요!

김영희 교수 :-)

아래는 6개의 스위치 인풋을 사용하여 6개의 다른 LED를 키는 코드 샘플입니다.

—————————————————————————

// intialize your LEDs on their appropriate Digital pins

int ledPin5 = 5;
int ledPin6 = 6;
int ledPin9 = 9;
int ledPin10 = 10;
int ledPin11 = 11;
int ledPin13 = 13;

// same goes for the switches. Each switch according to its input on the Arduino
int switchPin2 = 2;
int switchPin3 = 3;
int switchPin4 = 4;
int switchPin7 = 7;
int switchPin8 = 8;
int switchPin12 = 12;
// initialize the state of each switch. Start them in the OFF position.
int switchState1 = 0;
int switchState2 = 0;
int switchState3 = 0;
int switchState4 = 0;
int switchState5 = 0;
int switchState6 = 0;

int inByte = 0;

void setup(){
Serial.begin(9600);
//set each switch as an INPUT, using the pinMode function

pinMode(switchPin2, INPUT);
pinMode(switchPin3, INPUT);
pinMode(switchPin4, INPUT);
pinMode(switchPin7, INPUT);
pinMode(switchPin8, INPUT);
pinMode(switchPin12, INPUT);

//set each LED as an OUTPUT, using the pinMode function pinMode(ledPin5, OUTPUT);

pinMode(ledPin6, OUTPUT);
pinMode(ledPin9, OUTPUT);
pinMode(ledPin10, OUTPUT);
pinMode(ledPin11, OUTPUT);
pinMode(ledPin13, OUTPUT);
}

void loop(){

// the state of your switch means READING the switch. Use digitalRead command

switchState1 = digitalRead(switchPin2);
switchState2 = digitalRead(switchPin3);
switchState3 = digitalRead(switchPin4);
switchState4 = digitalRead(switchPin7);
switchState5 = digitalRead(switchPin8);
switchState6 = digitalRead(switchPin12);

// if your switch state reads “on“, then…

if(switchState1 == 1){
digitalWrite(ledPin5, HIGH);
Serial.print(“switch1=”);
Serial.println(switchState1,BIN);

}
else{
digitalWrite(ledPin5, LOW);
Serial.print(“switch1=”);
Serial.println(switchState1,BIN);
}

if(switchState2 == 1){
digitalWrite(ledPin6, HIGH);
Serial.print(“switch2=”);
Serial.println(switchState2,BIN);
}
else{
digitalWrite(ledPin6, LOW);
Serial.print(“switch2=”);
Serial.println(switchState2,BIN);
}

if(switchState3 == 1){
digitalWrite(ledPin9, HIGH);
Serial.print(“switch3=”);
Serial.println(switchState3,BIN);
}
else{
digitalWrite(ledPin9, LOW);
Serial.print(“switch3=”);
Serial.println(switchState3,BIN);
}

if(switchState4 == 1){
digitalWrite(ledPin10, HIGH);
Serial.print(“switch4=”);
Serial.println(switchState4,BIN);
}
else{
digitalWrite(ledPin10, LOW);
Serial.print(“switch4=”);
Serial.println(switchState4,BIN);
}

if(switchState5 == 1){
digitalWrite(ledPin11, HIGH);
Serial.print(“switch5=”);
Serial.println(switchState5,BIN);
}
else{
digitalWrite(ledPin11, LOW);
Serial.print(“switch5=”);
Serial.println(switchState5,BIN);
}

if(switchState6 == 1){
digitalWrite(ledPin13, HIGH);
Serial.print(“switch6=”);
Serial.println(switchState6,BIN);
}
else{
digitalWrite(ledPin13, LOW);
Serial.print(“switch6=”);
Serial.println(switchState6,BIN);
}
}

——————————————————————

한글로 설명을 덧붙인 코드는 아래와 같습니다.

// your LED를 Digital pins 번호와 동일하게 intialize 한다

int ledPin5 = 5;
int ledPin6 = 6;
int ledPin9 = 9;
int ledPin10 = 10;
int ledPin11 = 11;
int ledPin13 = 13;

// 스위치도
int switchPin2 = 2;
int switchPin3 = 3;
int switchPin4 = 4;
int switchPin7 = 7;
int switchPin8 = 8;
int switchPin12 = 12;

// 각 스위치의 상태를 initialize한다.  OFF상태에서 시작한다.
int switchState1 = 0;
int switchState2 = 0;
int switchState3 = 0;
int switchState4 = 0;
int switchState5 = 0;
int switchState6 = 0;

int inByte = 0;

void setup(){

//9600은 baud rate입니다.  (baud rate 설명은 아래에 있습니다.)
Serial.begin(9600);

//각 스위치를 INPUT으로 pinMode function을 사용하여 이니셜한다.

pinMode(switchPin2, INPUT);
pinMode(switchPin3, INPUT);
pinMode(switchPin4, INPUT);
pinMode(switchPin7, INPUT);
pinMode(switchPin8, INPUT);
pinMode(switchPin12, INPUT);

// 각 LED를 OUTPUT으로 pinMode function을 사용하여 이니셜한다.

pinMode(ledPin5, OUTPUT);
pinMode(ledPin6, OUTPUT);
pinMode(ledPin9, OUTPUT);
pinMode(ledPin10, OUTPUT);
pinMode(ledPin11, OUTPUT);
pinMode(ledPin13, OUTPUT);
}

void loop(){

// the state of your switch는 digitalRead command를 사용하여 스위치를 READING함을 뜻한다.

switchState1 = digitalRead(switchPin2);
switchState2 = digitalRead(switchPin3);
switchState3 = digitalRead(switchPin4);
switchState4 = digitalRead(switchPin7);
switchState5 = digitalRead(switchPin8);
switchState6 = digitalRead(switchPin12);

// if your switch state reads “on“, then…

if(switchState1 == 1){
// ledPin5를 켜라
digitalWrite(ledPin5, HIGH);

// switch1= 을 시리얼모니터에 프린트함.
Serial.print(“switch1=”);

// binary 즉 0와1 상태를 한라인에 프린트하는 function, 8bit data를 읽을 경우에는 BYTE를 사용한다.
Serial.println(switchState1,BIN);

}
else{
digitalWrite(ledPin5, LOW);
Serial.print(“switch1=”);
Serial.println(switchState1,BIN);
}

if(switchState2 == 1){
digitalWrite(ledPin6, HIGH);
Serial.print(“switch2=”);
Serial.println(switchState2,BIN);
}
else{
digitalWrite(ledPin6, LOW);
Serial.print(“switch2=”);
Serial.println(switchState2,BIN);
}

if(switchState3 == 1){
digitalWrite(ledPin9, HIGH);
Serial.print(“switch3=”);
Serial.println(switchState3,BIN);
}
else{
digitalWrite(ledPin9, LOW);
Serial.print(“switch3=”);
Serial.println(switchState3,BIN);
}

if(switchState4 == 1){
digitalWrite(ledPin10, HIGH);
Serial.print(“switch4=”);
Serial.println(switchState4,BIN);
}
else{
digitalWrite(ledPin10, LOW);
Serial.print(“switch4=”);
Serial.println(switchState4,BIN);
}

if(switchState5 == 1){
digitalWrite(ledPin11, HIGH);
Serial.print(“switch5=”);
Serial.println(switchState5,BIN);
}
else{
digitalWrite(ledPin11, LOW);
Serial.print(“switch5=”);
Serial.println(switchState5,BIN);
}

if(switchState6 == 1){
digitalWrite(ledPin13, HIGH);
Serial.print(“switch6=”);
Serial.println(switchState6,BIN);
}
else{
digitalWrite(ledPin13, LOW);
Serial.print(“switch6=”);
Serial.println(switchState6,BIN);
}
}

———————————————————————–

baud rate
baud는 변조속도, 즉 컴퓨터의 디지털 신호를 전화선을 통해 전달될 수 있는 아날로그 신호로 바꿔주는 속도를 나타낸다. 프랑스의 발명가 Jean Maurice Emile Baudot가 만든 단위로 예전에는 전신기를 조작할 때 초당 전송하는 클록의 숫자를 나타낼 때 사용했던 단위이지만 현재는 1초에 변조할 수 있는 횟수를 나타낸다.