본문 바로가기
아두이노_프로세싱/아두이노+프로세싱

[아두이노+프로세싱] 프로세싱의 마우스 값으로 LED 밝기 제어

by 돌돌쌤 2012. 8. 9.

프로세싱과 아두이노를 연결하여

아두이노에 연결된 자원을 제어해보자

이번엔 간단히 LED으 밝기를 제어해보자.


프로세싱과 아두이노는 Serial 통신으로 연결하고

서로 데이터를 주고 받을 수 있다.


일단 프로세싱에서는 Serial 라이브러리를 활용한다.


프로세싱 스케치

-----------------------------------------------------------------------------

import processing.serial.*;      //Serial 라이브러리 임포트


Serial mport;                    // mport라는 시리얼포트 선언

void setup(){

  size(512,100);

  mport = new Serial(this,Serial.list()[1],9600);   //컴퓨터에 배정된 시리얼포트중 

                                                                    //2번째포트로 9600rate의 포트 사용

}


void draw(){

  background(mouseX/2);    // 마우스 x좌표값에 따른 배경색 변화

  mport.clear();                   // 주석처리해도 무방

  mport.write(mouseX/2);     //선언한 포트로 마우스값 전송

}

------------------------------------------------------------------------------


위 스케치에서

Serial.list()[1]부분은 컴퓨터에서 할당한 포트중에서 두번째 포트를 선택하는 것으로

[0],[1],[2],[3]......순이다.

아두이노에서 확인해보면 아래그림과 같다.




아두이노 스케치

----------------------------------------------------------------------------------------

int pdata = 0;               // 프로세싱에서 받을 데이터 변수 선언


void setup(){

  Serial.begin(9600);    // 시리얼 통신 시작

}


void loop(){

  if(Serial.available()>0){                      // 넘어오는 데이터가 있으면

    pdata = Serial.read();                       // 시리얼에서 오는 데이터 저장

    pdata = map(pdata,0,255,0,250);         // 데이터를 0~255명확한 한계지정

    analogWrite(10,pdata);                      // 아날로그 값으로 표현

  }

}

---------------------------------------------------------------------------------------



작동 영상