아두이노(Arduino) 개발환경 구성하기 및 준비물
코드도사에서는 소형 임베디드 장치 개발 환경인 아두이노(Arduino)에 대하여 소개를 드린적이 있습니다. 아두이노는 Atmel사의 CPU가 탑재된 Microcontroller 인데요, 개발자 뿐만 아니라 아이들과 학생들의 교육 용도로 최근에 각광받고 있는 개발 도구 입니다. 그래서 누구나 저렴한 가격에 아두이노 하드웨어와 라이브러리를 개인 작품이나 프로젝트에 활용할 수 있습니다.
이번 포스트에서는 아두이노를 시작하려면 어떤 개발환경을 구성해야 되고, 필요한 준비물은 어떤 것이 있는지 한번 살펴보기로 하겠습니다.
아두이노 우노(UNO) 준비하기
아두이노 개발환경을 구성하기 위한 가장 기본적인 것은 아두이노 하드웨어를 준비하는 것입니다. 그 중에서 가장 대표적인 시스템은 아두이노 우노(UNO) 입니다.
아두이노 우노는 아두이노 제품군들 중에서는 제일 많이 쓰이고 하드웨어 사이즈도 적당한 편이어서 처음 시작하는 아두이노 사용자들에게 추천할 수 있는 제품군입니다. 또한 가장 많이 쓰이는 제품답게 수많은 라이브러리와 예제들이 인터넷 공간 상에 공개되어 있으므로 예제를 참고하기에도 좋습니다.
저도 아두이노 우노를 테스트용으로 사용하고 있는 중입니다. 시중에서는 아두이노 우노 호환 보드만 5000원 미만의 가격으로 판매를 하고 있기 때문에 가격에 대한 부담도 적은 편입니다. 따라서 별다른 사유가 없다면 아두이노 시작을 우노로 시작하면 될꺼 같습니다.
아두이노 액세서리
아두이노는 Microcontroller를 탑재한 작은 임베디드(Embedded) 시스템이라고 볼 수 있습니다. 따라서 아두이노로 개발을 시작하려면 몇가지 액세서리가 필요합니다.
현재 제가 사용하고 있는 아두이노 우노와 몇가지 액세서리들 입니다. 우노 본체 외에 USB 케이블, LCD, 점퍼선, LED 등이 보입니다. 아마 위 구성은 아두이노를 실습하기 위한 최소한의 구성이라고 보시면 됩니다. 필요한 액세서리들을 아래 리스트로 정리하였으니 참고하시기 바랍니다.
- USB 케이블 : 아두이노 우노와 PC 간에 연결하기 위한 케이블입니다. PC의 USB 포트와 아두이노 간에 연결하며, 이 USB 케이블로 아두이노 IDE에서 컴파일한 바이너리를 아두이노의 내부 Flash에 Download 할 수 있습니다. 꼭 필요한 액세서리이니 아두이노 구입시 같이 구입하시기 바랍니다. USB 케이블로 별도의 전원공급 없이 아두이노에 전원을 인가할 수 있고, 시리얼 통신을 PC와 할 수 있습니다.
- 브레드보드(일명 빵판) : 아두이노와 각 패리패럴(LED, LCD, 센서 등)들을 연결하려면 브레드 보드를 사용해서 연결하는게 편리합니다. 패리패럴들을 테스트하려면 아두이노의 각 GPIO와 패리패럴들과 연결이 필요한데 본래는 점퍼선으로 서로 연결하려면 납땜이 필요하지만 납땜으로 연결을 하면 이후에 연결이 잘못되거나 수정이 필요할때 고치기가 수월하지 않습니다. 따라서 브레드보드를 이용하면 임시적으로 각 패리패럴들을 테스트 할때 아두이노의 GPIO와 브레드 보드간에 잠시 연결을 하고 정상동작하는지 확인하기가 수월해집니다. 양쪽의 Male 타입인 점퍼선만 서로 연결해주면 아두이노와 바로 연결할 수 있기 때문입니다. 따라서 처음에는 브레드보드를 사용하여 아두이노를 테스트 하는것을 추천드립니다.
- 점퍼선 : 브레드보드와 아두이노, 브레드보드와 패리패럴들간에 연결할 때 필요합니다. 점퍼선은 여유롭게 충분한 갯수를 아두이노 구입시 같이 구입하면 됩니다.
- LED : LED는 아두이노의 GPIO 동작 여부를 확인할 때 매우 효과적인 디버깅 수단입니다. High(1) 일때 LED가 켜지며 Low(0) 일때 LED가 꺼지기 때문에 본인이 작성한 코드가 정상적으로 동작하는지 여부를 확인할 수 있습니다. LED도 아두이노 하드웨어 구입시에 여유롭게 구입하시면 됩니다.
- LCD : 아두이노를 테스트할때 결과를 표시하기 좋은 수단이 바로 LCD 입니다. LCD는 거창하게 Color/Touch 같은 LCD를 쓰지 않아도 됩니다. 위 사진속의 LCD는 1 Color LCD 이고 아두이노와 i2c로 통신을 합니다. 최근 아두이노 테스트용으로 출시되는 LCD들은 i2c 같은 GPIO가 많이 필요하지 않은 LCD를 주로 사용을 합니다. 이들 LCD는 가격적으로도 저렴하므로 아두이노로 작성한 코드의 결과를 출력해 보는데 최적의 용도라고 볼 수 있습니다.
- 7~12V 어뎁터 : 아두이노를 코딩하고 테스트할때는 별도의 어뎁터는 없어도 됩니다. 하지만 개발 과정이 끝나고 별도로 동작을 시키려면 어뎁터가 필요합니다. 어뎁터는 7~12 V 사이의 어뎁터를 사용하면 됩니다. 전류는 1 ~ 2A 정도를 사용하면 될꺼 같습니다. 어뎁터도 아두이노 하드웨어를 구입할때에 같이 구입하면 됩니다.
기타 부품이나 액세서리는 아두이노를 사용해 보면서 필요할때 마다 구입을 하면 될꺼 같습니다.
아두이노 IDE 설치
아두이노를 사용하기 위한 준비물은 이정도면 될꺼 같습니다. 그럼 실제 아두이노를 제어하기 위한 수단이 필요합니다. 바로 아두이노 IDE를 다운로드 받아서 PC에 설치를 하는 일입니다.
위의 링크를 참고하여 아두이노 IDE를 본인의 PC에 설치하길 바랍니다. 설치는 간단하게 할 수 있습니다.
약간의 하드웨어 지식 습득하기
하드웨어 지식이라고 해서 많은 것을 필요하지는 않습니다. 몇가지 간단한 것만 익혀두면 됩니다. 아두이노를 사용하기 위해서는 알아야 할 몇가지 지식들이 있습니다.
- VCC : 직류 전원을 의미합니다. Voltage(V) 로 표시되며, 아두이노에서는 3.3V, 5V 등이 사용됩니다.
- GND : Ground, 접지를 의미합니다. 전자에서는 가장 기본적인 개념중 하나가 Ground 라고 보시면 됩니다. 약자로 GND로 표기됩니다.
- 시리얼 통신 : 아두이노가 잘 동작하는지 확인하기 위한 모니터링 인터페이스입니다. 대부분의 MCU는 시리얼 통신(UART)를 사용하며, 아두이노 또한 UART를 지원합니다. 아두이노를 잘 활용하려면 시리얼 통신에 대한 지식을 쌓는게 좋습니다.
- I2c, SPI 통신 : 아두이노와 각종 센서, 모터, LCD 등의 패리페럴들을 연결할때 대부분 i2c와 SPI 인터페이스로 연결을 하여 사용합니다. 이 두 인터페이스는 사용하는 IO가 적으며 사용하기가 간편하다는 장점이 있습니다. 이들 통신에 대한 대략적인 내용을 알고 있으면 아두이노를 다루는데에 많은 도움이 됩니다.
- 점퍼선 연결 및 브레드보드 사용법 : 아두이노와 각 패리패럴들을 연결하려면 이들 점퍼선과 브레드보드를 어떻게 사용하는지를 알아두는게 좋습니다. 어려운 부분은 아니기 때문에 초반에 익혀두면 됩니다.
위 내용들은 아두이노를 시작할때 익혀두는게 좋습니다. 참고로 아두이노 교육자료들을 보면 회로를 도식화 해놓은 모습을 많이 볼 수 있는데, 이 툴에 대한 소개를 해볼까 합니다.
위 링크에서 다운로드를 받을 수 있습니다. “Fritzing”은 복잡한 회로도를 보는거보다 간단하게 도식화 해서 아두이노 코딩을 할때 쉽게 파악할 수 있게 도움을 주는 Tool 입니다. 이후에 코드도사에서 아두이노 관련 내용들을 게재할때 Fritzing을 활용할 예정입니다. Fritzing은 오픈소스 Tool 이기 때문에 사용에 아무 제약이 없습니다. 누구나 무료로 사용하실 수 있습니다.
C 언어 문법 및 코딩 지식
아두이노 IDE를 사용하여 아두이노를 동작시키려면 C 언어를 알아야 합니다. C 언어라고 해서 다소 복잡한 배열이나 포인터를 사용하는 것은 아닙니다. ( 물론 추후에 사용할수도 있습니다. ) 아두이노 IDE는 교육적인 목적을 위해서 C 문법을 되도록 간편하게 사용할 수 있게 많은 라이브러리를 기본적으로 제공하고 있습니다. 따라서 기본적인 C 문법을 알고 있으면 아두이노 IDE로 코딩이 가능합니다.
아두이노 IDE가 C 언어 문법을 최대한 간소화 시키려고 노력은 한거 같지만 일단 기본적인 진수, 진법, 함수, 연산자 등은 꼭 알고 있어야 아두이노 IDE 사용이 수월합니다. 그래서 C 언어의 기본적인 문법과 코딩 스킬은 어느정도는 습득하는게 필요하다고 생각이 듭니다. 아두이노 IDE를 사용해 보면서 C 언어의 기본 문법과 코딩 스킬을 쌓는게 아두이노의 주요 목적이기도 하니까 아두이노 IDE로 C언어 문법을 익혀가는것도 괜찮을꺼 같습니다.
지금까지 아두이노 우노로 개발환경 구성 및 준비해야 될 내용에 대하여 알아봤습니다. 위에 언급한 대로 개발 환경을 준비한다면 당신은 아두이노를 즐길 준비가 되었다고 보면 됩니다^^