아두이노 보드 종류 및 선택 가이드
아두이노도 꽤나 다양한 제품군을 갖추고 있어서 뭘 선택해야 할지 고민되는 경우가 있습니다. 저도 몇 개 안써봐서 전부를 언급할 수는 없고 자주 사용되는 제품 위주로 자료를 정리했습니다.
아두이노 UNO R3 (+Duemilanoves)
아두이노 Duemilanoves 가 단종되고, UNO 가 표준 보드로써 자리잡게 되었습니다. 현재 R3 버전이 가장 보편적입니다. UNO 보드는 Duemilanoves 와 같은 프로세서를 사용하지만 USB 통신을 위한 FTDI 칩을 기본으로 내장하고 있어(ATmega16U2) 별도의 변환기 없이 PC등에 바로 USB로 연결해서 사용할 수 있습니다. 5V, 3.3V 모두 지원하기위해 레귤레이터가 내장되어 있고, USB 전원을 사용 가능하며 외부 입력 전원도 지원합니다. 안드로이드 표준 보드로, 핀 배열 등이 UNO를 기준으로 맞춰져 있으므로 확장 쉴드 등을 사용하는데 최적입니다. 처음 아두이노를 접하신다면 고민할 필요 없이 무조건 UNO R3.
Leonardo 보드는 써본적이 없는데 UNO 와 다른 점이라면 핀이 좀 더 많고 USB 통신 칩이 메인 프로세서에 내장되어 있다는 점, 그리고 디지털/아날로그 핀 수와 인터럽트 핀과 같은 몇 가지 중요한 특징이 틀립니다. 따라서 핀이 하나라도 아쉬운 경우가 아니라면 UNO 대신 선택할 이유는 별로 없어 보입니다.
아두이노 레오나르도 (Leonardo)
아두이노 레오나르도 보드는 UNO 보드와 흡사하게 생겼지만 약간 성격이 다른 보드입니다. 가장 큰 차이점은 아두이노 레오나르도 보드에는 ATmega32u4 칩을 탑재하고 있다는 점입니다. ATmega32u4 칩은 내부에 USB 통신을 위한 기능을 갖추고 있기 때문에 아두이노 UNO 보드처럼 별도의 변환기를 필요로 하지 않습니다. 아두이노 UNO 보드에서는 PC와 serial로 통신하기 위해 D0, D1(디지털 1번, 2번) 핀을 사용하는데 레오나르도 보드에서는 이게 필요없기 때문에 D0, D1 핀을 다른 모듈과의 serial 통신에 사용할 수 있습니다. 그래서 레오나르도 보드에서는 PC와의 통신을 Serial, D0-D1 핀을 이용한 serial 통신을 Serial1 으로 사용할 수 있도록 지정되어 있습니다. 별도의 serial 통신용 핀이 더 생긴 셈이기 때문에 고속으로 동작하는 통신 모듈을 함께 사용할 때 유리한 셈입니다.
그 밖에도 핀의 수가 UNO 보다 많고 특수한 기능(PWM, I2C, SPI 등등)을 담당하는 핀이 아두이노 UNO와는 완전히 틀리기 때문에 충분히 매뉴얼을 습득하고 사용해야 합니다. UNO 용 라이브러리들이 동작하지 않을 수도 있습니다. 아두이노를 처음 접하신다면 굳이 레오나르도 보드를 사용하실 필요는 없습니다만, 여러 프로젝트를 하시다 보면 (특히 serial 통신을 하는 모듈들을 사용하는 프로젝트들) 레오나르도 보드가 더 효율적인 경우가 있습니다.
아두이노 Nano
아두이노 UNO 보드의 소형화 버전입니다. UNO 보드와 같은 ATmega328 칩을 사용하므로 UNO의 기능을 그대로 제공하고 mini-B 타입 USB도 내장되어 있습니다. USB가 있어 작업하기 편하므로 굳이 Pro mini 처럼 초소형이 필요한 경우가 아니라면 Nano로도 충분할 것입니다. UNO 보드와 같은 칩을 사용하므로 개인적으로 UNO 계열의 보드라고 부르며 사용 방법도 동일하고, 라이브러리도 그대로 쓰실 수 있습니다.
Nano 보다는 Pro mini 가 조금 더 작지만 Nano는 직접 USB로 업로딩이 가능하며 3.3v, 5v 전원 핀을 가지고 있어 외부 센서의 전압을 맞추기가 훨씬 더 간편합니다. 브레드보드에 직접 꽂아서 사용하면 회로 구성하기도 편리한 점도 장점입니다. 작은 UNO, 브레드 보드용 UNO 라고 할 수 있습니다.
Nano 보드를 휴대용으로 구성하고 싶을실 때는 9V 사각 배터리를 통해 VIN, GND 핀으로 전원을 공급해주면 됩니다. 동작전압은 5V 입니다.
아두이노 Micro
Nano 보드가 UNO 보드의 소형화 버전이라면, Micro 보드는 레오나르도 보드의 소형화 버전입니다. 레오나르도 보드처럼 ATmega32u4 칩을 탑재하고 있기 때문에 특징도 레오나르도 보드와 거의 동일합니다.
Nano 보드와 비교할 때 핀수가 훨씬 많기 때문에 긴 사각형 형태를 띄고 있습니다. Nano 보드처럼 브레드보드 친화적인 보드이고 9v 배터리를 통해 휴대용으로 만들 수 있습니다. 개인적으로 사놓고 한번도 쓴적이 없어 어디있는지 생각나지 않을 정도로 초급 사용자에게는 사용성이 낮은 보드입니다.
동작전압은 5V 입니다.
아두이노 Pro / Pro mini (+ Pro micro)
Pro 가 붙은 보드들은 아두이노 제품군 중 가장 작고 얇은 제품들이지만 UNO와 동일한 기능을 제공합니다. UNO 처럼 ATmega328 칩을 사용하거든요. 그래서 개인적으로 UNO 계열의 보드라고 부릅니다. 다만 USB 통신, 동작전압과 전원 관련된 부분들이 UNO 보드와는 큰 차이를 보입니다.
Pro 보드(왼쪽 이미지)의 경우 파워버튼과 외부 배터리용 커넥터가 내장되어 있지만 사이즈가 좀 큽니다. Pro mini(왼쪽 아래 이미지)는 이마저도 없지만 대신 33x18mm 로 초소형입니다. 작은 사이즈를 위해 칩형 부품을 사용했으며 가격 절감을 위해 USB 통신기능 (FTDI 칩)마저 빼버렸습니다. 그래서 PC에 연결 및 소스 업로드를 위해서는 USB to Serial (or USB to UART or FTDI) 변환기가 별도로 필요합니다.
그리고 Pro 시리즈는 5V(16MHz), 3.3V(8MHz) 용 제품이 별도로 존재합니다. 개인적인 경험상 5V 용 Pro 보드는 사이즈와 가격외에 Nano 보드에 비해 이점이 없는듯 합니다. USB 통신 기능이 있는 Nano 보드가 사용이 훨씬 간편하거든요. 반면에 3.3V 용의 경우 3.3V 로 동작하는 센서와 별도의 변압모듈(level shifter)나 레귤레이터 없이 붙일 수 있고, LiPo 충전지(3.7v 공급)를 바로 사용할 수 있는 결정적인 장점이 있습니다. 즉, 모바일-휴대용 장치를 구성하기 위한 최적의 보드입니다. Pro 시리즈의 경우 핀이 납땜되어 있지 않기 때문에 본인이 직접해야 합니다.
휴대용 기구를 제작할 경우 많이 사용하게 되지만 UNO 등 표준 보드를 이용해 먼저 테스트를 하고 최적화 한 후에 Pro/Pro mini 로 옮기는 작업을 하는 것이 좋습니다.
개인적인 경험상 Pro 보드의 경우 거의 보기 힘들고 특별한 메리트가 없다고 생각됩니다. Pro mini 보드 중 5V 버전은 Nano 보드와 유사한데 반해 개발할 때 사용성이 나쁩니다. Pro mini 3.3V 버전은 휴대용으로 최적의 보드이며 3.3V 로 동작하는 모듈들을 다루는데 좋습니다.
Pro mini 보드는 초소형에 저가를 컨셉으로 한 보드인데 국내 가격은 자비 없습니다. 대신 해외 구매시 무척 저렴해서, Ebay 잘 뒤지면 3개 $11 정도에도 구입할 수 있더군요. 가격 메리트가 커서 보드가 여러개 필요하시다면 이 놈을 여러개 구해서 FTDI(USB to UART) 모듈 하나와 함께 쓰는 것도 좋습니다.
Pro micro는(왼쪽 사진) USB to UART 칩이 내장되어 있어서 USB 로 바로 연결해서 파워 공급이나 스케치 업로드가 가능하며 전압 레귤레이터가 내장되어 있어서 12V 까지 전원을 인가할 수 있습니다. 그런 점에서는 아래 소개할 Nano 보드와 유사하다고 할 수 있습니다. 하지만 pro 보드의 특징인 3.3/5V 버전이 별도로 존재하는 점은 동일합니다. (라고 들었습니다만 3.3V 버전은 한번도 못봤습니다.)
* Pro 시리즈 보드들은 배터리와 같은 외부 전원을 연결할 때 VCC 핀이 아닌 RAW 핀에 넣어줘야 합니다!!
아두이노 Mega2560 (+MegaADK)
기존의 아두이노 Mega를 대체하는 보드로 덩치에 걸맞게 고성능과 많은 IO 핀을 제공하는 것이 특징입니다. 로봇이나 이미지, 음성, 영상 등 상대적으로 고성능이 필요한 곳에 사용될 수 있겠습니다. 다만 표준 아두이노 UNO 보드와 핀 배열, 특징이 완전히 틀리기 때문에 아두이노를 처음 만지는 분은 고생할 수 있습니다. 온라인 상에서 공유되는 대부분의 튜토리얼이나 라이브러리가 UNO에 맞추어져 있는 관계로 소스 컴파일 자체가 안되기도 하고 원하는 동작이 안되는가 하면, 확장 쉴드가 제대로 동작하지 않을 수도 있습니다. (최근의 확장 쉴드는 UNO, Mega2560을 모두 지원하도록 설계되고 있다고는 합니다.) 예로 SPI 통신을 하는 센서를 사용하는 경우 UNO와 Mega 에서 전용으로 할당한 핀 번호가 틀립니다. 처음 아두이노를 접하실 경우 이때 어디가 문제인지 찾기가 힘듭니다. 막연히 더 파워풀한 보드에서 넉넉한 핀을 가지고 싶다고 선택하기 보다는 보드 특성을 파악하고 선택해야 겠습니다.
안드로이드는 v3.1 부터 USB를 통한 악세사리 장치를 지원하는 표준인 ADK(Accessory Development Kit)를 사용할 수 있습니다.(External library를 통해 v2.3.4 도 지원) Mega ADK는 ADK 지원을 위한 보드로 안드로이드에 연결시 앱에서 ADK 라이브러리를 사용해서 연동할 수 있습니다. ADK는 아두이노가 USB Host (마치 PC 처럼) 역할을 하면서 안드로이드 기기와 USB 연결을 합니다.
개인적인 생각입니다만 근래에는 블루투스를 이용한 무선 연결을 통해 안드로이드나 iOS와의 연동을 많이 사용하고 그 편이 HW/SW 적으로 간단하므로 굳이 ADK 를 이용할 필요는 없어 보입니다. ADK 관련 자료도 찾기가 좀 어렵고 사용법도 복잡하더군요. ADK에 대해 미리 사전조사를 하고 블루투스나 WiFi 와의 특징 비교를 해보신 후 Mega ADK 구입을 고려하세요. 우리나라에서는 잘 안팔리는 보드들의 가격이 상당히 높게 책정되는 경향이 있어 구입할 때 가격면에서도 불리합니다. 만약 안드로이드 폰이 4.0 이상의 버전이라면 일반적인 UNO, NANO 보드에서도 OTG 케이블을 이용해 USB 연결 및 통신이 가능합니다. https://www.hardcopyworld.com/?p=241
Lily Pad
바느질로 보드 및 센서, 악세사리를 옷에 장착하는 Wearable 컨셉의 특수 보드입니다. 일단 외모가 이쁘고 전도성 실과 전도성 패브릭 소재 등을 함께 활용해서 옷에 다양한 효과나 기능을 추가하는게 가능합니다. Lily Pad의 경우도 USB to Serial 변환기가 없으므로 외장 변환기를 사용해야 합니다. Lily Pad USB 버전에만 USB 포트를 내장하고 있습니다.
이런 특수 보드는 쉴드나 세트로 판매되는 악세사리가 얼마나 도움이 되는가를 따져보고 선택해야 합니다.
아두이노 FIO (Funnel IO)
무선통신 컨셉의 특수 보드입니다. LiPo 배터리 연결단자와 충전기능을 기본으로 제공하고 XBee 모듈 장착을 위한 소켓을 포함하고 있습니다. USB 단자가 있으나 충전용이고 무선으로 코드 업로드를 지원합니다. 외장형 FTDI(USB to Serial 변환기) 모듈을 사용할 수는 있습니다.
N:N 연결이 필요한 경우 Xbee 활용도가 좀 있겠지만 가격이 비싸서.. 차라리 Nano 버전에 다양한 주파수의 RF 통신 모듈 중 하나를 선택해서 구성하는게 저렴하고 편리해 보입니다. 저도 사용해 본 적이 없고, 사용해 볼 일이 있을까 싶은 보드입니다.
아두이노 보드 특징 비교
Name | Processor | OperatingVoltage/ Input Voltage | CPU Speed |
Analog In/Out |
Digital IO/PWM |
EEPROM [KB] |
SRAM [KB] |
Flash [KB] |
USB | UART |
Uno | ATmega328 | 5 V/7-12 V | 16 Mhz | 6/0 | 14/6 | 1 | 2 | 32 | Regular | 1 |
Due | AT91SAM3X8E | 3.3 V/7-12 V | 84 Mhz | 12/2 | 54/12 | – | 96 | 512 | 2 Micro | 4 |
Leonardo | ATmega32u4 | 5 V/7-12 V | 16 Mhz | 12/0 | 20/7 | 1 | 2.5 | 32 | Micro | 1 |
Mega 2560 | ATmega2560 | 5 V/7-12 V | 16 Mhz | 16/0 | 54/15 | 4 | 8 | 256 | Regular | 4 |
Mega ADK | ATmega2560 | 5 V/7-12 V | 16 Mhz | 16/0 | 54/15 | 4 | 8 | 256 | Regular | 4 |
Micro | ATmega32u4 | 5 V/7-12 V | 16 Mhz | 12/0 | 20/7 | 1 | 2.5 | 32 | Micro | 1 |
Mini | ATmega328 | 5 V/7-9 V | 16 Mhz | 8/0 | 14/6 | 1 | 2 | 32 | – | – |
Nano | ATmega168 ATmega328 |
5 V/7-9 V | 16 Mhz | 8/0 | 14/6 | 0.512 1 |
1 2 |
16 32 |
Mini-B | 1 |
Ethernet | ATmega328 | 5 V/7-12 V | 16 Mhz | 6/0 | 14/4 | 1 | 2 | 32 | Regular | – |
Esplora | ATmega32u4 | 5 V/7-12 V | 16 Mhz | – | – | 1 | 2.5 | 32 | Micro | – |
ArduinoBT | ATmega328 | 5 V/2.5-12 V | 16 Mhz | 6/0 | 14/6 | 1 | 2 | 32 | – | 1 |
Fio | ATmega328P | 3.3 V/3.7-7 V | 8 Mhz | 8/0 | 14/6 | 1 | 2 | 32 | Mini | 1 |
Pro (168) | ATmega168 | 3.3 V/3.35-12 V | 8 Mhz | 6/0 | 14/6 | 0.512 | 1 | 16 | – | 1 |
Pro (328) | ATmega328 | 5 V/5-12 V | 16 Mhz | 6/0 | 14/6 | 1 | 2 | 32 | – | 1 |
Pro Mini | ATmega168 | 3.3 V/3.35-12 V 5 V/5-12 V |
8 Mhz 16Mhz |
6/0 | 14/6 | 0.512 | 1 | 16 | – | 1 |
LilyPad | ATmega168V ATmega328V |
2.7-5.5 V/2.7-5.5 V | 8 Mhz | 6/0 | 14/6 | 0.512 | 1 | 16 | – | – |
LilyPad USB | ATmega32u4 | 3.3 V/3.8-5V | 8 Mhz | 4/0 | 9/4 | 1 | 2.5 | 32 | Micro | – |
LilyPad Simple |
ATmega328 | 2.7-5.5 V/2.7-5.5 V | 8 Mhz | 4/0 | 9/4 | 1 | 2 | 32 | – | – |
LilyPad SimpleSnap |
ATmega328 | 2.7-5.5 V/2.7-5.5 V | 8 Mhz | 4/0 | 9/4 | 1 | 2 | 32 | – | – |
아두이노 정식 보드, 쉴드 모음
BOARDS (Compare Specs) |
SHIELDS |
KITS |