여러분이 획기적인 아이디어와 훌륭한 기술로 안드로이드용 앱을 개발하고 계시다면 아마도 최근 구글 IOIO행사에서 발표된 Open ADK (공개형 안드로이드용 엑세서리 개발킷)에 대해 들어보셨을 겁니다.

안드로이드용 오픈 엑세서리 개발 보드는 PC에 각종 USB 장치를 연결하여 확장된 기능을 사용할 수 있는것 처럼 안드로이드와 결합하여 사용가능한 하드웨어 장치를 개발하기위해 사용됩니다. 이미 많은 안드로이드 기기가 GPS, 가속센서, 자기 센서등을 내장한채 보급되고 있습니다만, Open ADK와 호환 개발 보드를 사용하면 그밖에 특화된 센서를 연결하거나 좀더 고급의 유저 인터페이스를 결합시킬 수 있게됩니다.  그렇다고 새로운 기기의 개발에만 필요한것이 아닙니다. 표준화된 규칙을 이용하여 기존에 개발되어 있는 제품들과도 손쉽게 연동이 가능해 지므로 큰 노력 없이도 안드로이드와 많은 엑세서리와 연동할 수 있게되어 하드웨어 개발자와 안드로이드 디바이스 및 앱 개발자 모두에게 효과적인 환경이 제공되는것 같습니다.

Open ADK 관련 정보는 공개되어 있으므로 관련 개발보드는 직접 개발하실 수도 있습니다. 하지만 많은 분들에겐 이미 상용화된 제품을 이용하시는것이 효율적일겁니다.  이번에 소개해 드릴 제품도 그중의 하나입니다.

 

 



안드로이드 요요  ( IOIO for Android )

해당제품에 있는 실크 이미지를 잘 보시면 안드로이드 로봇이 한손에 요요를 갖고 노는것이 보입니다.  IOIO를 yo-yo 라고 발음한다고 하는데 안드로이드와 함께 연결되어 IO(Input Output) 기능을 수행하는 녀석을 요요로 표현한것은 매우 적절한 비유인것 같습니다.  서두가 길었습니다.  이제 본격적으로 요요 보드를 소개해 드리겠습니다.

아래의 정보들은 http://codaset.com/ytai/ioio/wiki 에 있는 요요 Wiki 정보와 요요 제조사의 튜토리얼 정보를 참고로 하였습니다.   (변경안내:  위 codaset 링크를 비롯한 모든 자료가  https://github.com/ytai/ioio/wiki 로 이전되었으니 신규 사이트 정보를 이용해주시기 바랍니다.)

1부. 둘러보기

요요,  너의 정체가 무엇이냐?

제품에 떡 하니 자리를 차지하고있는 녀석은 MICROCHIP사의 PIC24FJ256 MCU입니다.   보드 둘레로 총 48개의 IO핀이 있고 VIN , GND, 5V, 3.3V 전원 연결핀이 있으며 USB 기기를 연결 할 수 있는 커넥터가 있습니다. 

어짜피 요요 보드의 펌웨어를 직접 변경하지 않으시고 사용하셔도 되므로 내장 MCU 칩이 AVR이건 PIC이건 상관없습니다.


요요 사용법

1. 전원
요요는 USB 호스트 역활을 수행하는 보드이며 연결된 안드로이드기기에 전원을 공급하여 충전할 수 있게 개발되어 있습니다.  즉, 자신뿐 아니라 연결된 안드로이드까지 커버할 정도의 충분한 전력이 필수적으로 요구됩니다.

VIN과 GND 단자에  전압이 7~12V정도의  *1A이상 전류 공급이 가능한 전원을 사용해야합니다.
정전압 5V 전원의 경우엔  VIN 단자 대신 5V 단자와 GND 사이에 직접 정전압 전원을 연결하셔도됩니다.  3.3V 단자에서는 레귤레이터로 감압된 3.3V 전원을 출력하여 활용할 수 있습니다.  (단, 3.3V단자에 3.3V 전원을 입력하는건 안됩니다)
관련 정보를 꼭 읽어보시고 연결하시기 바랍니다.

보드에 전원을 입력하면 POWER LED에 불이 들어옵니다.

2. Charge 전류량 조정용 트리머
요요에 전원을 연결후 안드로이드 기기와 연결해주면 안드로이드 기기의 충전이 시작되는 것을 확인할 수 있습니다.
하지만, 기기의 배터리 상태와 기기특성에 따라 충전과 요요 기기 인식이 안되는 경우가 있습니다. 이는 요요가 적절한 전력을 공급하지 못하는 경우인데요, 이때는 USB단자 옆에 있는 트리머를 시계방향으로 회전하여 전류공급량을 늘려주면됩니다. 기기마다 특성이 다른점에 대처하기 위해 본 트리머 설정기능을 제공하는것 같습니다.


3. 안드로이드 기기 설정

안드로이드 앱을 개발해오신 분들이라면 다 알고계신 내용입니다.

설정 > 응용프로그램 > 개발 > USB 디버깅  설정을 켜주셔야 합니다.


4. 프로그래밍

요요 보드 자체는 별도의 프로그래밍 작업이 필요없습니다.
안드로이드 기기에서 요요 보드에 있는 48개의 IO핀을  범용 디지털 입력,출력,아날로그입력(ADC),TWI, SPI,UART,PWM 등의 용도로 설정하고 값을 IO할 수 있는 라이브러리가 제공되기 때문입니다.   즉, 요요를 연결하면 안드로이드 기기에서 제어가능한 48개의 IO핀이 생겼다고 보시고 안드로이드 디바이스를 프로그래밍을 하시면 됩니다.

5. 케이블 연결 방법

케이블은 기존에 안드로이드 개발에 사용하셨던 기기용 USB 케이블을 그대로 사용하시면 됩니다.
PC와 안드로이드 디바이스를 USB 케이블로 연결 후 요요 연동용을 위한 프로그래밍을 하신 후,
PC쪽 단자를 뽑아서 요요에 연결하시면 됩니다.


6. 요요 보드 사용법

본래 요요보드는 Android 1.5 부터 지원되는 MicroBridge (ADB의 구현)를 활용하도록 개발되었으며 이는 구형 안드로이드OS(1.5이상) 에서도 활용이 가능한 장점이 있습니다.  하지만 최근에 새롭게 발표된 Open ADK (Android 2.3.4 이상 지원)의 지원도 가능하도록 새로움 펌웨어가 제공되고 있습니다. IOIO의 ADK 펌웨어는 현재 beta버젼이며 필요하신 경우 요요보드의 펌웨어를 변경후 사용가능한 방법입니다.

본 글에서는 펌웨어 변경없이 요요의 기본 연동방식을 이용합니다. 제가 갖고있는 안드로이드 기기가 1.5~2.2 정도만 지원되므로 당장 Open ADK 방식의 테스트는 어려울것 같습니다;;

7. ADB?  MicroBridge? 
개발시 디버그 용도로 사용되는 통신방법 및 툴 정도로 생각하면 될 것 같습니다. 이를 활용하여 안드로이드에 연결된 장치와 통신을 할 수 있습니다.  여러분도 보유하신 MCU보드에 USB호스트 기능만 추가하고 본 프로토콜 구현만 해주시면 안드로이드 연동 보드 개발이 가능합니다.  사실 Open ADK도 이것에서 파생되었다고 볼 수 있습니다.


8. 요요 IO 핀맵

요요 보드 뒷면에는 동그라미와 네모, 알바벳 P 등으로 각 핀의 기능을 간략히 표현하고 있습니다.  가령 네모 박스된 핀들은 모두 아날로그 입력핀으로 사용할 수 있으며,  동그라미 표시된 핀은 5V 입력이 허용되는 핀입니다.  요요의 기본 입출력 전압 레벨은 3.3V이지만 일부 핀의 경우 5V 입력이 허용되는 것 입니다. 자세한 핀별 용도는 별도의 상세페이지로 소개되고 있습니다. (IOIO핀맵 핀별 기능소개)


2부. 실습

이제는 직접 요요보드에 프로그래밍 후  기초적인 IO를 수행해 보도록 하겠습니다.
아래에 소개된 예제들은 안드로이드 프로그래밍이 처음인 분들을 위한 튜토리얼에 포함되 기본 예제와 아래의 IOIO 기본 공개 예제들을 그대로 사용하거나 몇 줄만 수정한 것입니다. 직접 해당 소스를 보시고 응용해보시기 바랍니다.
http://codaset.com/ytai/ioio/source/master/tree/software/applications

안드로이드 프로그래밍 자체가 처음이신 분들은 요요를 사용하시기 전에 우선 안드로이드 프로그래밍 기본예제를 꼭 실습 후 진행하시길 권장드립니다.  안드로이드  개발환경 설치 및 디바이스 인식 등이 마무리 되어야 요요 보드 응용 개발이 가능합니다.  거꾸로 마이크로 콘트롤러 보드와 같은 전자회로에 대한 경험이 없으신 분들은 Open ADK 보드의 기준 플래폼인 아두이노로 기초 학습을 진행하실것을 추천드립니다.


예제1-1. 상태 LED 제어하기

안드로이드 프로그래밍이 처음인 분들을 위한 튜토리얼에 포함된 기본 예제입니다.
보드에 내장된 stat(상태) LED를 On/Off 하는 예제이므로 별도의 전자회로를 연결할 필요가 없이 요요 보드에 전원만 공급해주면 테스트 해볼 수 있는 간단한 예제입니다. 


동영상1. 요요 기본사용방법과 예제1-1 수행 장면입니다.



예제1-2. 디지탈 출력으로 SSR제어하여 220V 전등 On/Off하기

예제1-1.의 소스에서 상태 LED를 제어하는 소스를 그대로 한줄 더 복사하여 특정 디지탈 출력핀을 On/Off하고, 이 출력 값을

SSR(Solid State Relay)

에 연결하여 가전용 전등을 On/Off 하는 예제입니다.


동영상2. 안드로이드로 220V 전등 On/Off 제어



예제2-1. 아날로그 입력 및 PWM 출력

IOIOSimpleApp

예제가 사용되었습니다.

가변저항으로 0~3.3V 범위의 임의 전압을 만들고 요요 보드의 ADC(아날로그 입력) 기능으로 입력받은 전압값을 수치화 하여 보여주는 예입니다.  더불어  디지탈 출력핀을 통해 PWM 파형을 출력하는 예제입니다.  기본 예제에서는 스크롤바의 위치에 대응하여 0.5ms ~ 2.5ms duty의 파형을 출력하도록 되어있으며 정확한 출력이 나오는지 확인을 위해 오실로스코프로 관측해봤습니다.

동영상3. PWM 출력과 아날로그 입력

예제2-2. PWM 출력으로 서보모터 제어

예제2-1. 에서 사용한 소스를 그대로 활용하여 RC서보모터를 구동할 수 있습니다.  다만 일부 서보모터의 회전각 범위는 0.5~2.5 ms 범위를 지원하지 않으므로 서보모터의 안전을 위해 이값을 0.8~2.2ms 범위로 수정하여 테스트 하였습니다.
이를 위해 PWM duty 관련 소스를 아래와 같이 수정하였습니다.

      pwmOutput_.setPulseWidth(800 + (int)(seekBar_.getProgress() * 1.4));


예제2-3. PWM 출력으로 전압메터 변화보기

이번 예제도 예제2의 소스를 그대로 사용하였습니다.   0~5V 범위의 전압을 측정할 수 있는 아날로그 전압 메타를 PWM 출력 핀에 연결하여 PWM duty 변화에 따른 출력 전압변화로 눈금의 변화를 확인해 보는 예제입니다.  기본 소스는 duty를 0~100%로 수정하면 약 0~3.3V 출력 변화를 확인 하실 수 있습니다.  전압 메타는 보유하신 멀티테스터 전압계를 이용하셔도 됩니다. PWM 파형의 Duty 비율을 조절하는것으로 서보모터 제어나  LED의 밝기 제어, 색상 제어 등 을 하실 수 있습니다.


동영상4. PWM제어로 RC서보모터 제어 및 전압메터 변화 관측

제품 링크

 

추가사항

IOIO 공식 자료 링크 변경 안내
 글 내용중 codaset 사이트에 보관되었던  모든 자료가 

https://github.com/ytai/ioio/wiki

로 이전되었으니 신규 사이트 정보를 이용해주시기 바랍니다.)

 

안드로이드용 엑세서리를 만든다?

올해 2011년 구글 IOIO 행사에서 소개된 Open Android ADK(엑세서리 개발 킷)에 대해 들어보셨나요?  간단히 말하면 스마트폰을 비롯한 각종 안드로이드 기기와 결합하여 활용 가능한 하드웨어 개발을 지원하는 개발킷을 공개한 것 입니다.
자세한 정보는 http://developer.android.com/guide/topics/usb/adk.html  에서 확인 하실 수 있습니다.

현재 안드로이드 기기용 엑세서리 개발 킷은 크게 두가지가 있습니다.

안드로이드 엑세서리 개발 킷

1.  첫째는 위에서 소개해 드린 Android 3.1 과 함께 발표된 Open Android ADK ( Android v2.3.4 부터 지원) 입니다.
2.  두번째는 MicroBridge 같은 Android Debug Bridge(ADB) 구현을 통한 지원입니다. 새로 발표된 ADK 에 밀려 곧 잊혀져 버릴지 모르지만 Andorid 1.5 이상만 되도 지원이 가능하다는 무시 못할 장점이 있습니다.


엑세서리 개발용 보드

소프트웨어 개발을 위해 필요한 개발도구와 SDK 와 더불어 엑세서리 개발을 위해선 안드로이드와 결합하여 사용 가능한 마이크로콘트롤러 보드가 있어야합니다.  이를 위한 제품들이 ADK 관련 기술페이지에 링크되어있습니다.

그중, 현재 아트로봇샵에서 취급중인 제품은 아래와 같습니다.

우선은  Android IOIO(요요라고 발음함) 보드 사용기를 별도의 페이지로 소개해 드리고, 차후에  Seeeduino Android ADK 보드도 소개해 드릴까합니다.

1. 안드로이드 요요 소개글 보러가기




로보밥 아두이노 튜토리얼(Robobob Arduino Tutorial) 첫번째 이야기



RT1. 아두이노 설치하고 LED Blink 깜빡이 프로그래밍 하기


다루는 내용
. 아두이노 프로그래밍 환경(스케치) 설치하기
. PC에 아두이노 보드 인식시키기
. 프로그래밍한 뒤 아두이노에 전송하여 작동시키기

개요:
본글은 아두이노를 처음 사용하는분들을 위한 안내문입니다.
모든 아두이노 보드의 설치작업은 유사하며, 사용되는 USB시리얼 통신용 칩에 따라 드라이버 파일이나 inf설정 파일만 다릅니다. 본 글을 통해 아두이노 프로그래밍 환경인 스케치(Sketch)를 설치하고, 아두이노 보드를 PC에 인식시킨 후 아두이노에 기본 장착된 LED를 제어하는 프로그램을 전송하여 실행시키는 과정까지 다루고 있습니다.
아마도, 마이크로콘트롤러와 프로그래밍에 대해 아무것도 모르시던 분들도 1시간내에 아두이노에 장착된 LED를 제어해보고 그 가능성을 경험해보실 수 있을실 겁니다.

순서
.아두이노 스케치를 다운로드 받아서 설치하기
.아두이노를 PC에 인식시키기
.스케치(아두이노 개발환경)의 실행
.예제 소스 불러오기(Blink; LED깜빡이)
.예제 컴파일 및 아두이노에 전송
.작동 상태 확인

자, 그럼 차근 차근 하나 둘 순서대로 진행해 보겠습니다


1단계. 준비물 확인

준비물

CASE 1 :: 아두이노 보드 자체에 USB시리얼 변환기능이 포함된 제품의 경우
 .아두이노 UNO

, Mega2560

 .USB 케이블 (A to B 타입단자)  
CASE 2 :: 아두이노 FIO, Pro, Pro mini, LilyPad  등(내장 USB시리얼변환기가 없는 경우)
 .아두이노 보드 [

아두이노 리스트

]
 .FTDI USB시리얼 변환기 [

제품선택 가이드

]
 .A to mini-B 타입 USB케이블 [

 

]

아두이노는 Linux , Mac OS, Windows 모두를 지원하며 본 글은 Windows 환경의 경우를 기본으로 소개합니다.


2단계. 아두이노 개발환경 설치하기

그림을 그리듯 프로그래밍도 Sketch 하세요!

아두이노 공식 홈페이지인

Arduino.cc

에 가보시면, 아두이노(Arduino) 소개문이 있습니다.
이를 한 줄로 요약하면, 아두이노란 오픈소스 전자기기 프로토타입 플래폼이라는 얘기인데요, 간단히 말하자면, 전자기기 개발에 사용하는 소프트웨어와 하드웨어가 공개되어 있다는 겁니다.

바로 지금 설치하려는 Sketch(스케치) 프로그램이 아두이노 개발에 사용되는 공개형 개발환경입니다.
무료일 뿐만 아니라 소스코드도 공개되어 있습니다. 아래의 링크에서 최신버전을 다운로드하시기 바랍니다.

http://arduino.cc/en/Main/Software

 

사용하시는 OS용 파일을 선택하여 다운로드 합니다. 본 예제에서는 Windows 를 선택합니다.


다운로드 받은 파일은 zip압축파일이며 이를 원하는 위치에 압축 해제합니다.
(*가령 윈도우의 경우 파일명은 arduino-0022.zip(87MB) 이며 버전이 업그레이드되면 제목의 숫자가 증가됩니다.)

압축을 해제하면 arduino-0022 같은 폴더가 보이며 그안에 arduino.exe 실행 파일이 보입니다.
아두이노 개발환경(스케치)은 설치과정 없이 곧바로 실행할 수 있게 배포되므로 이것으로 설치과정이 완료되었습니다. ^^.
arduino.exe 를 실행하면 아두이노 개발환경이 열립니다. 일단 종료해 둡니다.

3단계. PC에 아두이노 연결하기

UNO와 대다수의 아두이노 보드들은 PC와 연결시 별도의 전원이 없이 작동이 가능합니다.
즉, USB케이블을 통해 시리얼통신 신호를 주고 받는것과 더불어 전원도 공급받게 됩니다.

호환되는 USB케이블로 PC와 아두이노를 연결합니다.
FIO나 Pro mini같은 아두이노의 경우 FTDI USB시리얼 변환보드를 경유해 PC와 연결합니다.
전원 ON상태 표시등(초록색 LED)에 불이 들어옵니다.


4단계. 드라이버 설치하기

아두이노(가령 UNO)와 PC를 케이블로 연결하면, 잠시 후 새장치를 발견하여 드라이버를 설치한다는 메시지가 나오게됩니다.
그리고 몇 초 동안 짱구를 돌리며 열심히 노력하던 우리의 윈도우OS는 결국 자동인식에 실패했다는 메시지를 남기곤 숨어버립니다. (단, 윈도우 환경과 보드 종류에 따라 드라이버를 자동인식하여 설치하는 경우도 있습니다.)

결국 여러분이 직접 드라이버를 골라서 설치해 주셔야하는데요,  많은 분들이 이미 이 작업에 익숙해져 있으실 겁니다. 가령 아래의 순서대로 하시면 됩니다.  (다른방법을 사용하셔도 되며, 드라이버 위치만 참고하시면 됩니다.)

.윈도우 시작 > 제어판 > 장치 관리자("장치 및 프린터" 그룹)  를 엽니다.
.장치리스트에서 "포트"를 선택하면, "Arduino UNO (COMxx)"라는 장치명이 보입니다.
.해당장치를 우측버튼으로 클릭한 뒤 "드라이버 업데이트"를 선택합니다.

.직접 드라이버 검색위치지정을 선택합니다.
UNO와 Mega2560 의 경우:
  > 2단계에서 다운로드 후 압축해제한 arduino-00xx 폴더내에 있는 drivers 폴더를 선택
Pro, Pro mini, FIO, LilyPad등의 FTDI시리얼 보드 사용제품의 경우:
  > drivers폴더안에 있는 FTDI USB Drivers 폴더를 선택

.위도우가 UNO 장치 인식을 완료하게됩니다.

장치 설치가 완료된 이후엔 장치관리자 "포트" 장치 리스트에서 인식된 아두이노 보드의 COM번호를 알아두는게 중요합니다.


4단계 순서대로 다시 보기
(드라이버 설치 과정 캡쳐이미지, WINDOWS 7 기준)
드라이버 설치과정을 아래의 캡쳐된 이미지 순서대로 다시한번 살펴봅니다.


아두이노와 PC를 연결합니다.
가령, UNO + USB Cable + PC USB 포트
가령, Pro mini + FTDI USB 시리얼 변환기 + USB mini Cable + PC USB 포트


윈도우가 장치를 발견하고 드라이버 자동설치를 시도합니다.

 

 

드라이버 자동설치에 실패합니다.

(아두이노 종류와 OS에 따라 자동설치 되는 경우도 있습니다.)

참고로, UNO와 Mega2560의 경우 MAC OS와 Linux에서 자동 인식된다고 합니다.

정상적으로 장치설치가 완료되면 포트(COM & LPT) 리스트에 등록되게 되지만,

정상인식이 되지 않아 장치관리자 "기타장치"에 Arduino UNO란 이름으로 등록되어있습니다.

 

다음의 절차를 통해 장치를 정상 인식시킵니다.

 

장치인식을위해 해당 장치(가령 Arduino UNO)를 우측버튼으로 클릭 후, 드라이버 소프트웨어 업데이트를 선택합니다.

 

자동검색을 하지말고,  수동으로 컴퓨터에있는 드라이버 찾아보기를 선택합니다.

 

찾아보기 버튼을 누르고, 해당 장치드라이버가 있는 폴더를 찾아 지정해줍니다.

 

UNO와 Mega2560의 경우, 2단계에서 설치한 아두이노 프로그램 폴더(arduino-00xx)내에 있는 drivers 폴더를 선택해줍니다.

FIO, LilyPad, Pro, Pro mini등은 drivers폴더안에 있는 FTDI USB Drivers 폴더를 선택해줍니다.

 

*참고사항: UNO와 Mega2560은 dirvers폴더에 들어있는 inf(설정)파일 한개만 있으면 됩니다.

 기타 구형 아두이노들은 FTDI칩을 사용하므로 FTDI칩 인식용 장치드라이버 파일들이 필요합니다.

 

 

보안경고가 나오면 설치 허용을 선택합니다.

 

 

 

 

장치 인식이 완료되었습니다.

 

장치관리자 > 포트 정보를 보면  Arduino UNO(COMxx)와 같이 새로운 COM포트로 등록된 것을 확인할 수 있습니다.

컴퓨터 환경에 따라 COM번호는 다른 번호로 할당될 수 있습니다.

위 과정은, Windows OS 버젼별로 약간의 차이가 있지만 거의 비슷합니다.

자, 이제 아두이노 프로그램 설치와 장치인식이 모두 완료 되었습니다.
이제 본격적으로 프로그래밍을 해보고 아두이노에 전송하여 작동시켜 보도록 합시다!


5단계. 아두이노 개발환경(스케치)을 실행합니다.

2단계에서 설치된 arduino.exe 를 실행합니다.
앞으로 자주 실행을 해야 하므로 단축아이콘을 만들어두면 편리합니다.

심플 담백한 스케치화면

6단계. 아두이노 보드종류 선택하기

'단순 무식한 컴파일러에게 아두이노의 종류를 알려주세요!'

아두이노 보드들이 많은 부분에서 호환성을 갖고 있지만, 구동속도( 8MHz, 16MHz),  전압레벨( 3.3V , 5V), 포트의 수, 프로그래밍 용량등의 차이가 있으므로 개발을 할때 이를 고려해 줘야 합니다. 스케치 개발환경에서 여러분이 사용하는 아두이노의 종류가 무엇인지 자동인식하지 못하므로 직접 보드 종류를 지정해 주는 과정을 꼭 하셔야합니다.

스케치 메뉴에서 Tools > Board를 선택한 뒤 목록에서 자신의 보드명을 찾아서 선택해 줍니다.( 가령, Arduino UNO)

 

7단계. 시리얼 포트 선택하기

'스케치에게 아두이노와 통신할 COM번호를 알려줍니다'

PC와 아두이노간의 프로그램 전송 및 데이타통신을 위해서는, 4단계에서 아두이노 통신용으로 등록된 COM번호(위 경우 COM9번)를 지정해줘야합니다.

스케치 메뉴에서 Tools > Serial Port를 선택한 뒤 연결된 아두이노 포트번호를 지정합니다.

연결된 시리얼 장치가 여러개일때 아두이노의 COM번호 식별이 안될경우, 아두이노를 케이블에서 제거할때 목록에서 사라지는 COM번호가 아두이노 할당 COM번호입니다. (4단계에서와 같이 장치관리자에서 포트 리스트를 확인해도 됩니다.)




8단계. Blink 예제 소스코드 불러오기

스케치 메뉴에서 File > Examples > 1.Basics > Blink를 선택하여 불러옵니다.
새로운 창이 뜨면서 아래와 같은 간단한 예제소스코드가 불러들여지게 됩니다.

아래의 소스는 아두이노 13번핀을 1초마다 ON, OFF를 반복하게 합니다.

/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.
 
  This example code is in the public domain.
 */

void setup() {               
  // initialize the digital pin as an output.
  // Pin 13 has an LED connected on most Arduino boards:
  pinMode(13, OUTPUT);    
}

void loop() {
  digitalWrite(13, HIGH);   // set the LED on
  delay(1000);              // wait for a second
  digitalWrite(13, LOW);    // set the LED off
  delay(1000);              // wait for a second
}


9단계. 컴파일 및 아두이노에 전송하기

 

 

verify & compile 하기 (생략 가능)
소스코드를 검증하고 컴파일하기 위해  재생버튼같이 생긴 verify & compile 버튼을 눌러줍니다.

Verify/Compile

참고로, 컴파일이란 사람이 이해가능한 소스코드를 기계어로 번역하는 과정입니다.
컴파일을 하기전에는 아두이노의 종류에따라 일부 설정을 달리하여 컴파일하므로 자신이 사용중인 아두이노 보드의 종류를 잘 설정(6단계 참고)해줘야합니다. 보드 종류가 틀리면,  컴파일 결과를 전송하거나 전송 후 작동시 문제가 될 수 있습니다.
앞으로 소스코드를 수정한 뒤 검증이 필요할때마다 이 버튼을 눌러주면 소스코드 검증이 이뤄지고 문제시 오류메시지를 확인할 수 있습니다.

컴파일 과정

컴파일이 완료되면 Done compiling 메시지가 뜨고 하단 메시지창에 프로그램 용량이 표시됩니다.

UNO가 약 30KB 프로그램 용량을 지원하므로 1/30 정도 크기입니다.

 

upload 하기
이제 컴파일된 정보를 아두이노로 전송하기위해 upoad 버튼을 눌러줍니다.  ctrl-U 단축키를 눌러도 됩니다.

Upload to I/O Board

참고로, verify & compile 버튼을 누르지 않고 곧바로 upload버튼을 눌러도 됩니다.
(이경우, 자동으로 컴파일 과정이 수행된 후 업로드가 이뤄지게 됩니다. 그리고, 소스코드 수정 후 곧바로 upload 버튼을 눌러주는 것 보다는 verify버튼을 눌러서 코드검증을 한 뒤에 문제가 없는경우 upload하는 것을 추천드립니다. )



10단계. LED Blink - 발광다이오드의 깜빡임 확인하기


upload버튼을 누르면 아두이노 시리얼통신 관련 Tx RX  LED들이 빠르게 점등되는것 을 볼 수 있습니다.
아두이노와 PC가 서로 정보를 주고(Tx, Transmit) 받기(Rx, Receive) 하면서 컴파일된 정보를 전달하는 과정입니다.
이과정은 UNO의 경우 5초도 안걸립니다.

소스코드에서 정의한대로 아두이노 보드를 보면 LED 하나가 1초 주기로 점등하는 것을 확인 할 수 있습니다.
UNO를 비롯한 최근의 모든 공식 아두이노 보드들은 디지탈 13번 핀에 LED와 저항이 달려있으므로 별도로 LED를 장착하지 않아도 간단한 LED 제어 테스트를 해볼 수 있습니다.

unoBlinking.swf
다운로드

UNO LED Blink 예제 실행 장면

11단계. 문제처리
 내용추가 예정


12단계. 참고사항

. LED사용할땐 꼭 저항과 함께 사용하세요
 직접 원하는 핀에 LED를 장착하여 작동하려면 저항과 함께 연결해 주시기 바랍니다.  [

]


+ Recent posts