오늘은 아두이노 호환보드를 하나 소개하겠습니다. '프로 미니'라는 이름에 맞게 크기는 작지만, 다수의 입출력 포트를 제공하고 2천원 정도의 저렴한 가격에 쉽게 구할 수 있는 보드입니다.
이 글에서는, 보드에 대한 소개와 시리얼 어댑터와의 연결 방법, 그리고 간단한 블링크 예제를 통해 업로드하여 테스트하는 방법까지 다루도록 하겠습니다.
- ATmega168P 마이크로컨트롤러를 사용하였고, 5V, 16Mhz입니다.
- 14개의 디지털 I/O 포트와 8개의 아날로그 input 포트를 제공합니다.
- TTL 레벨 시리얼 통신을 위한 TX/RX 포트를 제공합니다.
- 6개의 PWM 포트(D3, D5, D6, D9, D10, D11)를 제공합니다.
- 전원 공급은 5V ~ 12V DC 범위로 공급해야하고,
- 크기는 33.3 * 18 mm 입니다.
제품 패키지입니다. '알리'에서 개당 $1.6 정도에 구입한 제품이라 이 정도 포장만해도 괜찮은 편이라 봅니다. 라벨도 안붙어있는 것들도 많거든요!
보드와, 함께 제공되는 핀 헤더입니다. 사진상 보드 위쪽 4개의 아날로그 포트가 있는데, 여기에 쓸 핀 헤더는 들어 있지 않습니다.
보드 윗 면입니다. 오른쪽에 유일한 버튼인 리셋 버튼이 있고, 보드 바깥쪽으로 입출력 포트가 빼곡히 들어 있습니다. 3cm 정도의 크기안에 정말 알차게 넣었습니다.
아래쪽 왼쪽부터 TX, RX, RST, GND 그리고 D2 부터 D9까지의 디지털 포트가 있고, 위쪽에 나머지 D10 ~ D13의 디지털 포트와 4개의 아날로그 포트, VCC, RST, GND, RAW 포트가 있습니다.
사진상 왼쪽 사이드에는 TTL 시리얼 통신을 위한 DTR, GND, VCC, RX, TX, GND 6개의 포트가 있고, 오른쪽에는 나머지 4개의 아날로그 포트가 자리하고 있습니다. 보드 한 가운데에 마이크로컨트롤러 칩이 보이네요.
보드 뒷면입니다. 나머지 포트 이름과 제조사, 제품명이 인쇄되어 있습니다.
제품 사진을 보면 알 수 있듯 USB 포트가 없습니다. 그래서, USB 포트를 통한 전원 공급이 불가능하고, USB-to-serial 드라이버 칩도 포함되어 있지 않기 때문에 프로그래밍을 위해선 USB Serial 어댑터나 RS232 to TTL Serial 어댑터 같은 외부 업로더가 필요합니다.
프로그래밍을 위해 같이 구입한 USB 시리얼 컨버터입니다. CP2102 칩을 사용했고, 5V뿐만아니라 3.3V도 지원합니다. 윈도우즈에서 사용하기 위해선 드라이버가 설치되어야 하는데, 대부분 자동으로 설치됩니다.
사진 오른쪽의 핀 헤더를 통해 아두이노와 연결하게 되고, 보드 오른쪽에 붉은 색 상태 표시 LED가 있습니다.
아무래도, 저가형 제품이다보니 간단한 문서 하나도 제공하고 있지 않습니다.
구글 검색으로 찾은 비슷한 핀 배치도입니다. 아날로그 포트 A4, A5 포트의 위치가 다르고 A6, A7 포트는 아예 없지만, 나머지 내용은 그대로 참고해도 될 듯 합니다. SPI, I2C까지 모두 지원하고 있습니다.
파워 공급은 세 가지 방법이 있습니다. 첫 번째는 USB-Serial 컨버터를 통해 5V를 직접 공급받는 방법입니다. 컨버터를 이용한 프로그래밍 및 업로드 중에는 따로 전원을 공급할 필요가 없습니다.
또 다른 방법은 'RAW' 포트를 이용한 방법입니다. RAW 포트는 보드 자체에 내장된 전원 레귤레이터에 전원을 공급합니다. 5V에서 12V까지의 범위로 공급 받을 수 있습니다.
마지막으로, VCC 포트에 직접 5V 전원을 공급하는 방법입니다. VCC 포트는 보드의 5V 라인과 연결된 포트로 내장 레귤레이터를 통해 변환된 전원을 이 포트를 통해 출력으로 사용할 수도 있습니다. 전원 공급이 5V로 일정하게 입력된다면 굳이 레귤레이터를 거치지 말고, 직접 VCC를 통해 입력하는 것이 좋습니다.
보드를 사용하기 전에 핀 헤더를 먼저 납땜했습니다. 브레드 보드에 미리 핀헤더를 꽂고 위에 보드를 올린 상태에서 납땜하면 좀더 편하게 할 수 있습니다.
위와 같이 준비하고 납땜하시면 흔들리지 않고 깔끔하게 작업할 수 있습니다.
핀 헤더 납땜을 완료한 모습입니다. 이제 브레드보드에 그대로 삽입하여 편하게 사용할 수 있습니다.
뒷면도 참고하세요. 측면 4개의 아날로그 핀은 핀 헤더가 제공되지 않기도 했지만, 필요치 않을 듯해서 남겨 두었습니다.
위에서 언급했듯이, 이 보드에 컴퓨터를 통하여 프로그램을 업로드 하기 위해선 USB to Serial 컨버터가 필요합니다. 여기서는 같이 구입한 CP2102 칩을 사용한 컨버터를 이용하여 업로드하겠습니다. 먼저 연결부터 해야겠죠!
양쪽 모두 6핀씩있지만, 다섯 개의 핀만 연결하면 됩니다.
딱 맞는 이미지가 없어서 비숫한 것으로 대체하였습니다. DTR - DTR(GRN), TX - RX, RX - TX, 5V - VCC, GND - GND 이렇게 5개의 핀을 짝지어 연결하시면 됩니다. RX와 TX를 서로 반대로 연결하는 것 잊지 마세요!
되도록이면 DTR 포트가 있는 컨버터(업로더)를 구매하시기 바랍니다. 아두이노에 프로그램을 업로드할 때, 보드 리셋을 해야 합니다. 아두이노 우노 보드처럼 자체 업로더가 있는 경우에는 자동으로 리셋해주는데, 지금처럼 외부 업로더(컨버터)를 사용할 때는, 업로더 자체에서 지원해야 합니다. DTR 포트는 자동 리셋을 가능하게 해줍니다. 이게 안되면, 매번 타이밍 맞춰서 보드의 리셋 버튼을 수동으로 눌러줘야 합니다.
보드와 컨버터를 연결한 후 컴퓨터 USB 포트에까지 연결한 사진입니다. 두 보드 모두 전원이 연결되면 적색 LED가 들어오고, 업로드시 보드에 파란색 LED가 들어옵니다.
USB 컨버터를 컴퓨터에 연결하면 CP2102칩에대한 드라이버를 자동으로 설치합니다.
드라이버가 제대로 설치가 되었다면 윈도우즈 장치관리자에서 위와 같이 확인할 수 있습니다. 만약, 드라이버가 자동으로 설치되지 않았다면 아래 링크에서 드라이버를 받아 직접 설치해보시기 바랍니다.
포트는 자신의 컴퓨터에 맞게 고쳐주고 나머지는 위 그림과 같이 설정하시면 됩니다. 인터넷에서 검색해보면 프로그래머를 다른 것으로 변경하는 글(USBasp, ArduinoISP)들도 있는데, 저 같은 경우엔 디폴트(AVRISP mkII) 그대로 잘 되었습니다.
위과 같이 설정한 후, 기본 예제인 Blink 프로그램을 업로드한 결과, 보드 내장 LED(D13)가 정상적으로 깜박이는 것을 확인했습니다. 결과가 간단해서 따로 결과 화면을 올리진 않겠습니다. 이상으로 이 글을 마무리하고, 이 보드에대한 내용은 다른 프로젝트에서 좀더 다루도록 하겠습니다.