한동안 뜸한동안 여러가지를 테스트삼아 만들어보고, 부품이 올때까지 포스팅을 지연하고 있었습니다만 부품도착으로 아두이노 두에밀라노베를 완성했습니다.
그럼 아두이노가 무엇이냐?
아두이노(Arduino)는 오픈소스를 기반으로 한 피지컬 컴퓨팅 플랫폼으로, AVR을 기반으로 한 보드와 소프트웨어 개발을 위한 통합 환경(IDE)를 제공한다. 아두이노는 많은 스위치나 센서로부터 값을 받아들여, LED나 모터와 같은 것들을 통제함으로써 환경과 상호작용이 가능한 물건을 만들어낼 수 있다. 또한 플래시, 프로세싱, Max/MSP와 같은 소프트웨어를 연동할 수 있다.
- 위키백과 -
이론 정리는 재미없어서 싫지만 ... 내용의 충실함을 위해 어쩔수 없겠죠!!..
아두이노는 AVR시리즈의 칩에 부트로더라는 프로그램을 올려서 마이크로프로세서를 모르는 사람도 쉽게 다룰수 있도록 만들어놓은 도구입니다.
주로 미디어아트나 교육용로봇등에 사용되고 아두이노는 통합개발환경(IDE)를 갖추고있고,
시리얼 통신으로 프로그램을 업로드 시키기 때문에 별도의 프로그래밍장치가 필요없습니다.
아두이노와 부품들 연결을 돕는 서드파티 프로그램이나 도구들이 많아서 쉽게 사용 할 수 있습니다.
Fritzing에 아두이노보드가 있어서 프로그램에서 연결해본다음에 실제로 연결해서 테스트 할 수 있습니다.
제작중.....
여지없이 돌아온 사진으로 본문체우기 입니다. 하핫
보드는 아두이노가 오픈소스이기 때문에 회로도가 공개되있어서 직접 PCB기판을 떠도 되지만서도
귀찮아서 OR 다른작업때문에? 사진에 있는 어떤 사이트에서 무료로 1개 공급받았습니다.^
사진순서의 과정을 거쳐서 완성시켰습니다. 솔더위크로 작업했기에 실제로 판매하는 정품 두에밀라노베와 차이가 없지요.!
자꾸 두에밀라노베 하는데 (Duemilanove)는 이탈리아어로 숫자 2009를 의미한다더랍니다.
이제 이걸로 뭐할까요??
전자의 기본은 LED 켜기
뭔가를 하기위해서는 준비과정이 필요하겠지요.!
아두이노 보드와 보드를 연결하기 위한 USB 케이블이 준비되었다면 아두이노는 아두이노 IDE 프로그램만 있으면 기본적인 준비는 끝납니다.
먼저 http://arduino.cc/en/Main/Software 다음 사이트에서 아두이노 프로그램을 다운로드 받거
나 아래 다운로드 링크에서 다운로드를 받아 압축을 풀어 놓습니다.
Arduino IDE 다운로드 - 구글 드라이브로 연결됩니다.
기본적인 준비가 끝났으면 하드웨어를 준비해야지요.... !
전자의 기본 LED 켜기를 하기 위해서 LED를 디지털입출력핀 13번과 GND에 연결해줍니다.
압축푼 Arduino - Version 폴더에 들어가서 Arduino.exe를 실행시키면 다음과 같은 빈 화면을 보게 됩니다.
프로그램에서도 내가 어떤 아두이노 보드를 사용하고 통신하는 포트는 몇번인지 설정할 필요가 있는데 다음처럼 설정해줍니다.
사용하는 보드를 여기서 선택하면 되는데요. 저는 Duemilanove를 사용하고 32K 용량인 Atmega328 버전을 사용중이기에 Arduino Duemilanove W/ Atmega328을 선택했습니다.
그 다음으로 포트를 아두이노와 통신하기 위한 포트를 설정해야 하는데요.
아두이노 우노의 경우는 아두이노 폴더내에 있는 드라이버를 설치하시고, 두에밀라노베를 사용중이라면 FT232R 드라이버를 설치하면 컴퓨터 기본 포트 COM1, COM2를 제외 하고 새로운 포트가 하나 생길겁니다.
안 생긴다면 내컴퓨터- 속성- 장치관리자- 포트 or USB장치에서 확인해보세요.^
모든준비가 끝났습니다. 이제 그럼 아두이노 IDE로 코딩해볼까요.!!
아두이노는 굉장히 간단한 함수를 사용해서 제어합니다.
아두이노 보드를 보면 DIGITAL이라고 적혀있는 13개의 포트가 있는데 이 숫자가 아두이노 IDE
에서 제어시에 사용되는 포트번호입니다.... 따라서 AVR보다는 수십배 쉽죠.ㅎ
기본적으로 프로그래밍시에 void setup()과 void loop()부분은 아두이노 프로그래밍시에
반드시 하나이상 들어가야하는 함수입니다.
소스코드를 해석하면 다음과 같습니다.
아두이노에서는 소스코드를 스케치라고 부른답니다.
void setup()
{
pinMode(13,OUTPUT); // 핀의 입출력을 결정합니다. 13번을 출력으로 설정
}
void loop()
{
digitalWrite(13,HIGH); // 디지털출력을 합니다. 13번에 논리1 (5V) 출력
delay(1000); // 을 1초 유지합니다.
digitalWrite(13,LOW); // 디지털 출력을 합니다. 13번에 논리0 (0V) 출력
delay(1000); // 을 1초 유지합니다.
}
이 프로그램을 아두이노 보드에 다운로드 하면 처음으로 pinMode를 만나 13번을 출력으로 설정하고 제가 보드의 13번 핀에 LED를 연결해 두었으니 1초 LED가 켜지고, 1초 LED가 꺼지고를 무한정 반복하겠죠.
동작영상...
AVR 다음 만들어 볼 부품올 때까지 아두이노로 놀려고 합니다.ㅎ