이번 글에서는 Arduino와 Processing을 연동하는 방법을 간단한 예제를 통해 알아보도록 하겠다.
* Processing을 모르시는 분은 Processing 카테고리에서 먼저 소개를 읽고 이 글을 읽으시는 것을 권장합니다.
이번 글에서는 3색 LED를 이용하여 LED를 아두이노에서 무작위로 밝히고 이를 프로세싱에 표현하는 작업을 할 것이다.
* 3색 LED
3가지 색을 한꺼번에 나타낼 수 있는 LED. R, G, B LED를 하나로 합쳐놓은 것으로 보면 된다. 사용 방법도 3개의 LED를 따로따로 사용할 때와 마찬가지로 R, G, B를 각각 밝히는 (+)극이 하나씩 있고 가운데 (-)가 하나 존재해 총 4개의 핀으로 이루어져있다.
1. Processing LED 모니터 만들기
아두이노는 컴퓨터와 통신을 할 때 '시리얼 통신'이라는 것을 사용한다. 시리얼 통신의 정의는 '연속적으로 통신 채널이나 컴퓨터 버스를 거쳐 한번에 하나의 비트 단위로 데이터를 전송하는 과정'으로써, 아두이노와 컴퓨터가 서로에게 정보를 전달하는 대표적인 통신 방법이다. 이 작업을 하기 위해 먼저 아두이노에서 LED를 무작위로 밝히는 작업을 해보자.
1) Arduino 회로도
저항은 220Ω을 사용한다.
2) Arduino - random LED 코드
3) 실행 결과
아두이노의 시리얼 통신은 시리얼 모니터에서 확인할 수 있다. 시리얼 모니터는 다음 아두이노 창 위에 돋보기 모양을 클릭하면 볼 수 있다.
위 예제 코드를 실행시키고 시리얼 모니터를 키게 되면 다음과 같은 모습이 보이게 된다.
아두이노가 이 코드에서 LED를 밝히고 그 밝힌 LED의 번호를 시리얼 통신으로 보내주게 된다.
조금 더 발전시켜서 LED를 R, G, B 세가지 색 뿐만이 아니라, 세가지 색의 밝기를 적절히 조절해 다양한 색을 만들어보자. 여기서 analogWrite()라는 새로운 함수를 볼 수 있게 된다.
analogWrite()와 digitalWrite()의 차이점은, digitalWrite()는 단순히 HIGH(=1)와 LOW(=0)로 두 가지 상태만을 전달할 수 있다. 그러나 analogWrite()는 0부터 255 사이의 숫자를 전달해 밝기를 제어할 수 있다. 이는 실제로 흐르는 전류가 0~255 사이의 값으로 변하는 것이 아니라, 아두이노가 한 번 처리를 하는 주기동안 흐르는 HIGH와 LOW의 비율을 제어하는 것이다.
3) Arduino - analog LED 코드
이를 Processing과 시리얼 통신을 연결하면 프로세싱에서도 이를 읽을 수 있게 되어 아두이노에서 프로세싱으로 정보를 전달할 수 있게 된다. 위의 코드의 결과로 밝혀지는 LED의 종류를 프로세싱으로 표현하도록 코드를 만들어보자.
4) Processing 코드
5) 실행 결과
랜덤 색상이 Processing에 표현된다면 성공한 것이다.
'Arduino > Arduino 기초과정' 카테고리의 다른 글
Arduino 회로 그리기 및 간단한 시뮬레이션 (0) | 2013.09.10 |
---|---|
[아두이노 기초편 3] 버튼 사용 + 가변저항 (2) | 2013.08.07 |
[아두이노 기초편 5]프로세싱을 이용하여 조도센서값 시각화하기 (5) | 2013.08.07 |
[아두이노 기초편 1]LED제어 & 7-segment (3) | 2013.08.05 |
First Arduino Code (0) | 2013.08.04 |