아두이노를 다룰 때, 아두이노 자체에서만 동작하는 "Arduino software(아두이노 소프트웨어)"만 써왔다.
pc에서 아두이노 기기를 다룰려면, 드라이버를 이용해서 코딩해야 한다. 
찾아보니 Visial Studio에서 연동하는 게 있기는 한데..
간단하게 동작되는 것만 하고 싶었는데. Processing(프로세싱) 이라는 툴 및 언어를 이용하면 될 것 같다. 
(프로세싱 언어가 자바랑 비슷한 문법을 하고 있다. 자바 개발자에게는 어쩌면 딱이다.)

프로세싱은 UI 및 아두이노와 serial 통신을 책임져준다. 


"손에 잡히는 아두이노" 책에서 간단히 소개할 때는 그런가 보다 했는데..
조금씩 이해하면서 접근해야지. 


설치 
http://processing.org/download/ 에 접속해서 1.5.1 를 다운받는다. 
 

 


UI Loo& Feel 은 꼭 아두이노 소프트웨어처럼 생겼다. 하지만 거의 자바와 비슷한 문법을 취하고 있다. (사실 내부는 jvm을 사용하고 있다.)


실제 돌아가는지 테스트해본다. 

http://arduino.cc/en/Tutorial/Dimmer




다음과 같이 설정한다. 



아두이노 소프트웨어에 다음의 코드를 넣는다.  


const int ledPin = 9;      // the pin that the LED is attached to

void setup()
{
  // initialize the serial communication:
  Serial.begin(9600);
  // initialize the ledPin as an output:
  pinMode(ledPin, OUTPUT);
}

void loop() {
  byte brightness;

  // check if data has been sent from the computer:
  if (Serial.available()) {
    // read the most recent byte (which will be from 0 to 255):
    brightness = Serial.read();
    // set the brightness of the LED:
    analogWrite(ledPin, brightness);
  }
}




프로세싱 코드


SERIAL 포트 중에 연결되어 있는 녀석으로 수정해야 한다. 
내 pc에는 1번 값에 com3로 arduino로 연결되어 있어서 1로 수정했다.  


 import processing.serial.*;
 Serial port;
 
 void setup() {
 size(256, 150);
 
 println("Available serial ports:");
 println(Serial.list());
 
 // Uses the first port in this list (number 0).  Change this to
 // select the port corresponding to your Arduino board.  The last
 // parameter (e.g. 9600) is the speed of the communication.  It
 // has to correspond to the value passed to Serial.begin() in your
 // Arduino sketch.
 port = new Serial(this, Serial.list()[1], 9600);  
 
 }
 
 void draw() {
 // draw a gradient from black to white
   for (int i = 0; i < 256; i++) {
   stroke(i);
   line(i, 0, i, 150);
   }
 
 // write the current X-position of the mouse to the serial port as
 // a single byte
 port.write(mouseX);
 }
 



그리고, processing 코드를 돌려보면 검은색 부분으로 마우스를 이동하면 LED가 꺼지고,
밝은 색 부분으로 마우스를 이동하면 LED가 켜진다. 




좋은 Reference 

http://www.arduino.cc/en/Tutorial/HomePage
http://processing.org/learning/
http://www.learningprocessing.com
http://www.cre8ive.kr/blog/2009/02/27/arduino-processing-%EC%97%B0%EB%8F%99/
책 - "손에 잡히는 아두이노"



Posted by 김용환 '김용환'

댓글을 달아 주세요

  1. Favicon of http://cafe.naver.com/iphonediy BlogIcon 제갈식 2013.05.16 09:49  댓글주소  수정/삭제  댓글쓰기

    내용이 좋아서 퍼갑니다.

    잘 읽었어요

    http://cafe.naver.com/iphonediy

  2. 2014.02.28 13:51  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

  3. Favicon of https://captainharok.tistory.com BlogIcon 김진팔 2017.04.12 18:56 신고  댓글주소  수정/삭제  댓글쓰기

    저는 프로세싱과 아두이노를 이용해서 led를 켜려고 합니다.
    지금은 켤때는 z 끌때는 x 키를 사용하는대요
    같은 키를 한번 누르면 켜지고 또 누르면 꺼지게 할 수 있을까요?

    지금은 이런 코드를 사용하고 있습니다.
    if( key == 'z'||key == 'Z' ){
    arduino.digitalWrite(ssr,Arduino.HIGH);
    }
    else if( key == 'x'||key == 'X' ){
    arduino.digitalWrite(ssr,Arduino.LOW);
    }