아두이노나 개발보드를 사용하다보면 데이터값을 표시할 일이 많은데, 물론 아두이노 개발환경(Arduino IDE)에서 시리얼모니터로 보는 방법도 있습니다만, 아무래도 가시성이 떨어질수 밖에 없습니다. 그리고 아두이노에 펌웨어를 업로드한 후에 usb 케이블을 떼어내어 독립적으로 동작하면, 시리얼모니터로도 볼수 없습니다.
그래서 필요한 것이 디스플레이 장치입니다. 커다란 모니터같은 것이 아니고 수인치 정도의 작은크기에 꼭 필요한 정보들 예를 들어 센서의 값이나 간단한 도형등을 표시할 수 있는 장치입니다.
일례로 아래는 Adafruit에서 파는 1.3인치 크기의 OLED입니다. 물론 Adafruit말고 AliExpress 등 다른 곳에서도 판매합니다.
이 보드는 Nordic사의 nRF52840 칩을 기반으로 그 외에 각종 센서들, 전원장치, usb 시리얼 통신모듈 등을 탑재하고 있는 보드입니다. 보드를 자세히 보면 아래와 같습니다.
오른쪽의 큰 칩이 nRF52840이며, 왼쪽 가장자리에 마이크로 usb 포트, 위 가장자리에 LiPo 배터리 커넥터가 있습니다. 전원공급은 usb 케이블로 하거나 혹은 LiPo 배터리로 하거나 둘 중의 하나의 방식으로 가능하며, 케이블과 배터리 동시에 연결되어 있어도 동작합니다. 그리고 보드의 중간에 각종 센서 모듈들이 배치된것을 볼수 있습니다.
그럼 이 보드의 스펙을 한번 보겠습니다.
nRF52840은 ARM의 cortex M4 chip을 nordic에서 라이선스 받아 자체적으로 생산해서 판매하는 MCU입니다. 64 MHz의 클럭속도, 1MB의 플래시 메모리와 256kB의 RAM을 가지고 있습니다.
usb 시리얼 통신이 가능하여, 데스크탑 컴퓨터에 usb 케이블로 연결하여 동작 코드를 업로드할 수 있습니다. 여기에 arduino IDE를 사용해서 코딩하고 업로드를 해줄수 있습니다. 또한 citcuitpython을 이용해서 python으로도 작성이 가능합니다.
nRF52840은 BLE (Bluetooth light energy)기능이 있어 블루투스 무선 통신이 가능합니다.
21개의 디지털 입출력핀, 6개의 12bit ADC(analogue-to-digital converter), 12채널의 PWM(pulse width modulation) 출력이 가능합니다.
다른 장치와의 통신규격으로 I2C, I2S, SPI, UART 등이 지원됩니다.
보드에 LED가 1개가 있어 빛을 낼수 있습니다.
크기는 가로 51mm, 세로 23mm, 높이 7.2mm입니다.
탑재된 센서는 다음과 같습니다.
LSM6DS3TR + LIS3MDL: 3축 가속도, 자이로 + 자기장 감지
APDS9960: 근접센서, 조도센서, 색깔감지기, 동작감지기
PDM: 마이크(소리센서)
SHT: 습도센서
BMP280: 온도계, 대기압/고도 감지기
위의 스펙을 보시면, 주변 환경의 변화를 감지하여 usb케이블을 통해서 혹은 블루투스를 통해서 무선으로 감지된 정보를 전송할 수 있고, 배터리를 이용해서 원격으로 동작이 가능합니다.
지난 시간에 이어 오늘도 Adafruit에 파는 물건 중 대표 상품인 개발보드에 대해 말씀드리겠습니다.
개발보드란 MCU(micro controller unit)를 포함하는 크기가 작은 PCB라고 할수 있는데, 이 보드에는 MCU뿐만 아니라 전원장치, USB 시리얼 통신 장치 등이 포함되어 있습니다. USB케이블이나 LiPo 배터리로 전원을 공급하고, USB포트를 통해서 동작 코드를 업로드 해 줄 수 있습니다.
보통 개발보드를 사용하는 목적은, DIY(do-it-yourself) 전자제품을 만드는 분들이 센서, 엑츄에이터, 디스플레이 등을 연결하여 사용자가 원하는 특정한 목적의 기능을 수행하도록 만드는데 사용하는 일종의 범용 정보처리 회로라고 볼수 있습니다. 범용이므로 당연히 사용자가 코드를 짜서 usb케이블을 통해서 MCU에 업로드를 해줄수 있습니다. 사용하는 언어는 주로 C언어이고 아래 사진의 circuitpython처럼 python인 경우도 있습니다. 아두이노 혹은 아두이노 호환보드의 경우 arduino IDE라는 개발 프로그램을 컴퓨터에 설치한 후, C언어로 짠 코드를 usb 케이블을 통해서 개발보드에 업로드하면 됩니다.
도 있는데 영어로 되어있어서 여기보다는 다른 분들이 쓰신 아두이노 소개 블로그나 동영상을 보시는것도 좋겠습니다.
상점 홈페이지에서 shop을 눌러보면 카테고리별로 제품이 소개되는데, 아두이노(Arduino)와 패더(Feather)가 개발 보드들이며, 라즈베리 파이(Raspberry Pi)는 개발보드라기 보다는 소형 컴퓨터에 가까운 물건입니다.
먼저 아두이노는 Adafruit에서 개발한 것이 아니라 아두이노 개발사(https://www.arduino.cc/)에서 만든것이고, 예전에는 Adafruit에서 아두이노 개발보드를 판매하기도 하였으나 현재는 아래와 같은 아두이노 호환보드 몇 종류만 팔고 있습니다.
그 다음은 페더(Feather)라는 다른 종류의 개발보드를 팔고 있습니다. 페더는 Adafruit에서 직접 개발해서 판매하는 개발보드의 브랜드명입니다. STM32나 ESP32, NRF 등의 MCU를 탑재하고 있고, Arduino IDE 혹은 circuitpython으로 코딩하여 사용할 수 있습니다.
한가지 예를 들면 아래의 사진과 같습니다.
제목에 적혀있다시피 ESP32 MCU를 탑재하고 있고, 8 메가의 비휘발성 메모리(Flash), 2 메가의 휘발성 메모리(PSRAM)를 탑재하고 있습니다. ESP32는 Espressif사에서 개발한 MCU로 블루투스와 와이파이등 무선 통신기능이 탑재되어 있습니다. 또한 사진에서 왼쪽에 마이크로 usb 핀 소켓이있어 usb 케이블을 꽂을수 있게 되어 있고(전원공급 및 코드 업로딩), 위쪽에는 LiPo 배터리를 연결할 수 있는 커넥터가 있습니다. 그 외에 위아래의 가장자리에는 MCU와 연결되는 핀들이 있어, 각종 센서 등을 연결해줄 수 있습니다. (헤더 소켓이나 혹은 전선과의 납땜이 필요합니다.)
마지막으로 라즈페리 파이가 있습니다. 이 종류는 개발보드라기 보다 소형컴퓨터입니다. 왜냐하면 탑재된 정보처리장치가 MCU가 아닌 CPU (central processing unit)이기 때문입니다. MCU와 CPU의 차이는 쉽게말하면 스펙의 차이입니다. 동작 클럭, 메모리 사이즈 등의 하드웨어의 성능이 MCU에 비해 훨씬 좋기 때문에 두 종류 사이의 구분이 생깁니다. 라즈베리는 신용카드보다 약간 더 큰 크기의 보드로 모니터, 키보드, 마우스 등을 뺀 모든 것이 하나의 보드에 있다고 보면 됩니다. 예를들면 최신 버전인 라즈베리 파이 5는 아래의 사진과 같습니다.
사진을 보면 아래쪽 가장자리에서 왼쪽에서부터 전원을 위한 마이크로 usb 케이블 포트가 있고, 그 오른쪽에 HDMI 디스플레이 포트 2개, 그 오른쪽에 카메라는 위한 슬롯이 2개 있습니다. 오른쪽 가장자리에는 usb 포트 4개를 위한 소켓2개와 네트워크 케이블 커낵터가 있습니다. 위쪽 헤드들은 디지털 입출력을 위한 핀들입니다.
이 제품을 컴퓨터로 사용하려면 마이크로 usb 포트에 usb 케이블을 연결하고, usb포트에 키보드와 마우스를, 그리고 디스플레이의 hdmi 케이블을 hdmi 커넥터에 연결하면 됩니다. 보드에 와이파이와 블루투스 통신을 담당하는 칩이 내장되어 있어 무선 통신도 가능합니다. 즉 아래의 사진과 같습니다
혹시 전자회로 DIY (do-it-yourself)에 관심이 있으신가요? 그렇다면 충전식 배터리로 동작하는 것을 만들때가 많은데, 그런 프로젝트에는 LiPo (리튬폴리머 배터리) 배터리가 하나씩 들어갑니다. 그렇다면 배터리 충전기가 필요합니다. 그래서 아래 LiPo 배터리 충전기를 소개합니다.
위 사진 왼쪽에는 micro-usb 커넥터가 있어서 어뎁터에 micro-usb 5 핀 케이블을 연결하고 오른쪽의 검은색 커넥터에는 LiPo 배터리의 커넥터가 연결됩니다. 위의 제품에는 켜고끄는 스위치가 없어서 그런 스위치를 달고 LiPo 배터리에 연결하는 것은 아래의 튜토리얼에 나와 있습니다.
배터리만 연결된 상태에서는 배터리 자체의 3.7V를 5.2V로 승압해서 회로에 제공하며, 배터리와 micro-usb가 동시에 연결되어 있으면, mico-usb(전압 5V)에서 제공되는 전력이 회로에 전력을 공급함과 동시에 배터리 충전도 동시에 합니다. 그래서 회로가 동작하면서 동시에 배터리 충전도 가능합니다.
주의할 점은 이 제품은 LiPo 배터리만 사용가능하고, 다른 종류의 배터리를 지원되지 않는다는 것과, 최대 공급 가능 전류가 1A까지라는 점입니다. 그래서 작은 프로젝트의 전원 공급용으로 적당합니다.
NeoPixel 5050 RGB LED with Integrated Driver Chip - 10 Pack
Make your own smart LED arrangement with the same integrated LED that is used in our NeoPixel strip and pixels. This tiny 5050 (5mm x 5mm) RGB LED is fairly easy to solder and is the most ...
www.adafruit.com
위줄의 아래 사진을 보면 하얀 케이스안에 뭔가 조그만 사각형 칩이 있고, 아래줄 위의 케이스 뒷면 사진을 보면 전극이 4개가 위 아래 2개씩 있는 것을 볼수 있습니다. 바로 이 사각형 칩이 빛을 내는 부분이고, 이 안에 빨강, 초록, 파랑색 LED가 모두 있어서, 각 LED의 밝기를 조절해서 다양한 색상을 구현합니다. 또한 전극은 4개 중 단 3개만 사용하며, 5V전원, gnd, 그리고 DIN (data in)이 있습니다.
다수의 neopixel을 구동하기 위해서 단 3개의 선만 사용합니다. 그럼 전원(5V, GND)를 제외하고 어떻게 단 한개의 선(DIN)으로 개별 led의 색깔을 조절할까요? 그것은 바로 led들을 microcontroller(이하 mcu)에 연결해서 사용하기 때문에 가능합니다. (아래의 그림) 즉, 아두이노에 있는 mcu가 DIN을 이용해서 각 led를 호출하고, 각각의 led에 어떤 색깔을 표시할지를 지시해 주기 때문입니다. 물론, 동시에 여러개를 지시할 수 없으니까 순서대로 1개씩 호출하지만 각각을 호출하는 속도가 빠르다보니 동시에 여러개를 콘트롤하는 것처럼 느껴집니다. 즉 아래의 그림처럼 연결하면 됩니다. (출처: https://learn.adafruit.com/adafruit-neopixel-uberguide/basic-connections)
LED는 전력소모가 크므로 아두이노 보드에서 공급하는 전력으로는 단 몇개만 구동이 가능하며, 수십개의 LED를 구동하려면 별도의 전원(그림에서 아래의 5V 전원선)이 별도로 필요합니다.
개별LED를 구매할 수도 있고, 아래의 사진처럼 길다란 줄의 형태로 구매할 수 도 있습니다.
Adafruit NeoPixel Digital RGB LED Strip - Black 60 LED
You thought it couldn't get better than our world-famous 32-LED-per-meter Digital LED strip but we will prove you wrong! You wanted twice the LEDs? We got it (well, it's 1.875 times ...
www.adafruit.com
실제로 구동해보면 LED의 밝기가 상당해서 최대의 밝기로 켜면 눈이 아플정로로 휘도가 높습니다. 이 제품의 또다른 특징으로는 한번 색깔을 지정해 두면 추가적인 명령없이 계속 같은 색깔을 유지한다는 점입니다.
아래에 adafruit에서 제공하는 튜토리얼이 있습니다. (연결방법, 라이브러리, 예제 코드 등이 있습니다.)
NeoPixels are “intelligent” full-color RGB LEDs that can be controlled and chained from a single microcontroller pin. This guide presents an overview of NeoPixel products, along with tips for building and powering projects of all shapes and sizes.
learn.adafruit.com
아두이노를 가지고 계시다면 한번 구매해서 사용해 보세요. 장식용으로 그럴듯한 물건을 만들수 있습니다.
About : Adafruit Industries, Unique & fun DIY electronics and kits
About Us Adafruit was founded in 2005 by MIT engineer, Limor "Ladyada" Fried. Her goal was to create the best place online for learning electronics and making the best designed products for makers of all ages and skill levels. In the last 15 years, Adafruit has grown to over 100+ employees. Adafrui...
www.adafruit.com
이 회사는 2005년에 Limor Fried라는 MIT 출신 여성 공학도가 만든 회사인데, 설립취지는 "Her goal was to create the best place online for learning electronics and making the best designed products for makers of all ages and skill levels.", 그러니까 모든 수준의 사람들을 위한 전자제품 제작 혹은 배움을 위한 곳이라고 되어 있습니다. 아래는 설립자의 사진이 담긴 잡지 기사입니다.
Adafruit Industries, Unique & fun DIY electronics and kits
Latest News from the Adafruit Blog Metro RP2350 – now with Bigger Better RP2350B! New Products View all new products RJ-50 (10P10C) Round Panel Mount Adapter Plug $6.95 Add to Cart Dual Panel Mount Extension Cable with HDMI / DVI and USB Type-C - 1 meter long $17.50 Add to Cart Adafruit Sparkle Moti...
www.adafruit.com
아래에 카테고리 종류를 보면 알수 있지만 상당히 다양한 종류의 물건을 판매합니다. 그 중 아두이노나 라즈베리파이 등의 보드 등도 판매하는 것을 볼수 있습니다.
기본적으로 물건을 파는 온라인 상점이지만 여타의 다른 상점과 다른점은 자신들이 파는 물건을 어떻게 사용하는지 안내를 해주고 교육하는 역할도 합니다.
Share Your Projects with Adafruit Playground Adafruit Playground is a safe place to share with the wonderful Adafruit community of makers and doers. Learn More New Guides View All Adafruit Sparkle Motion Mini By Erin St Blaine Beginner New Animating Animatronics By John Park 6 Beginner New Phyx LANA...
learn.adafruit.com
이 회사는 미국의 뉴욕시에 위치해 있지만, 한국으로의 배송도 상당히 빠른 편입니다. 그 외에도 블로그나 매주 신상품 소개등의 동영상들도 주기적으로 올리고 있습니다.