아두이노나 개발보드를 사용하다보면 데이터값을 표시할 일이 많은데, 물론 아두이노 개발환경(Arduino IDE)에서 시리얼모니터로 보는 방법도 있습니다만, 아무래도 가시성이 떨어질수 밖에 없습니다. 그리고 아두이노에 펌웨어를 업로드한 후에 usb 케이블을 떼어내어 독립적으로 동작하면, 시리얼모니터로도 볼수 없습니다.

 

그래서 필요한 것이 디스플레이 장치입니다. 커다란 모니터같은 것이 아니고 수인치 정도의 작은크기에 꼭 필요한 정보들 예를 들어 센서의 값이나 간단한 도형등을 표시할 수 있는 장치입니다.

 

일례로 아래는 Adafruit에서 파는 1.3인치 크기의 OLED입니다. 물론 Adafruit말고 AliExpress 등 다른 곳에서도 판매합니다.

https://www.adafruit.com/product/938

아래에 있는 게 OLED이고 개발보드와 4개의 선으로 연결되어 있습니다. 화면 안에는 별들이 그려지고 있습니다.

필요한 전선은 전원선 2개(3.3V 혹은 5V와 GND)와 I2C 통신용 선 2개가 필요하며, SPI 통신 규격도 지원됩니다.

 

위 페이지에 들어가서 스펙을 보면 아래와 같습니다.

드라이버 칩세트: SSD1306

전원: 3.3V 혹은 5V

화면 크기: 34.5mm * 23mm (1.3 인치 대각선길이)

PCB 크기: 35.6mm * 33mm

무게: 약 6g

통신규격: I2C, SPI

화소: 128 * 64

통상적 소모전류량: 약 40 mA (사용량에 따라 변함)

 

사용방법은 아래의 링크에 있습니다.

https://learn.adafruit.com/monochrome-oled-breakouts/arduino-library-and-examples

처음 사용할 때는 아두이노의 예제를 따라해보는게 좋습니다.

 

간단히 사용방법을 소개하자면 아래와 같습니다.

  1. 먼저 OLED를 구동하는 라이브러리를 아두이노 IDE에 추가합니다.

2. 이 후 나타나는 입력창에서 adafruit ssd1306과 adafruit GFX 라이브러리를 검색하여 설치합니다.

3. 아두이노를 재실행하면 아래처럼 예제가 추가됩니다.

여기서 선택시 화면의 크기와 통신규격은 가지고 있는 OLED의 스펙에 맞는것을 고릅니다. 위 화면에서는 I2C로 통신하는 128 * 32 화소크기의 디스플레이를 골랐습니다.

 

아래에 보다시피 그림이나 글자 등을 표시할 수 있습니다.

 

 

지난 글에서 개발보드 중 페더가 있다고 말씀드렸는데, 이번 글에서는 페더 보드 중에서 하나를 골라 좀 더 자세히 보겠습니다.

 

이번 글에서 볼 보드는 Adafruit Feather nRF52840 Sense입니다.

https://www.adafruit.com/product/4516

이 보드는 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사의 한가지 특징은 자기네가 개발한 제품의 설계도도 공개한다는 점입니다. 아래는 해당제품의 회로도와 PCB artwork입니다. https://learn.adafruit.com/adafruit-feather-sense/downloads 각종 센서들의 사양서들도 있습니다.

 
 

 

 

이 제품의 사용방법은 아래의 사이트에 있습니다. 개별 핀설명, 전원공급 방법, 예제 코드, 설계도 등 모든 정보가 있습니다.

https://learn.adafruit.com/adafruit-feather-sense

 

 

 

지난 시간에 이어 오늘도 Adafruit에 파는 물건 중 대표 상품인 개발보드에 대해 말씀드리겠습니다.

 

개발보드란 MCU(micro controller unit)를 포함하는 크기가 작은 PCB라고 할수 있는데, 이 보드에는 MCU뿐만 아니라 전원장치, USB 시리얼 통신 장치 등이 포함되어 있습니다. USB케이블이나 LiPo 배터리로 전원을 공급하고, USB포트를 통해서 동작 코드를 업로드 해 줄 수 있습니다.

 

보통 개발보드를 사용하는 목적은, DIY(do-it-yourself) 전자제품을 만드는 분들이 센서, 엑츄에이터, 디스플레이 등을 연결하여 사용자가 원하는 특정한 목적의 기능을 수행하도록 만드는데 사용하는 일종의 범용 정보처리 회로라고 볼수 있습니다. 범용이므로 당연히 사용자가 코드를 짜서 usb케이블을 통해서 MCU에 업로드를 해줄수 있습니다. 사용하는 언어는 주로 C언어이고 아래 사진의 circuitpython처럼 python인 경우도 있습니다. 아두이노 혹은 아두이노 호환보드의 경우 arduino IDE라는 개발 프로그램을 컴퓨터에 설치한 후, C언어로 짠 코드를 usb 케이블을 통해서 개발보드에 업로드하면 됩니다.

 

예를들어 아래의 사진처럼 모터를 돌리게 할 수 있습니다.

 

아두이노 개발보드로 할 수있는 것들이 매우 많으니 한번 여기를 둘러보시길 권합니다. https://learn.adafruit.com/search?q=ard

 

아두이노에 대한 소개페이지(https://learn.adafruit.com/ladyadas-learn-arduino-lesson-number-0)

도 있는데 영어로 되어있어서 여기보다는 다른 분들이 쓰신 아두이노 소개 블로그나 동영상을 보시는것도 좋겠습니다.

 

상점 홈페이지에서 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 커넥터에 연결하면 됩니다. 보드에 와이파이와 블루투스 통신을 담당하는 칩이 내장되어 있어 무선 통신도 가능합니다. 즉 아래의 사진과 같습니다

 

 

 

아래처럼 아예 키트로 팔기도 합니다. (디스플레이와 라즈베리 파이 보드 별도 구매)

https://www.adafruit.com/product/5824

 

 

그래서 라즈베리 파이는 크기가 작은 컴퓨터로 쓸수 있습니다. 참고로 라즈페리 파이에는 마인크래프트 파이버전(minecraft pi edition, minecraft 교육용 버전)와 매스매티카(mathematica)를 무료로 쓸수 있습니다.

 

 

 

혹시 전자회로 DIY (do-it-yourself)에 관심이 있으신가요? 그렇다면 충전식 배터리로 동작하는 것을 만들때가 많은데, 그런 프로젝트에는 LiPo (리튬폴리머 배터리) 배터리가 하나씩 들어갑니다. 그렇다면 배터리 충전기가 필요합니다. 그래서 아래 LiPo 배터리 충전기를 소개합니다.

 

PowerBoost 1000 Charger - Rechargeable 5V Lipo USB Boost @ 1A

https://www.adafruit.com/product/2465

 

위 사진 왼쪽에는 micro-usb 커넥터가 있어서 어뎁터에 micro-usb 5 핀 케이블을 연결하고 오른쪽의 검은색 커넥터에는 LiPo 배터리의 커넥터가 연결됩니다. 위의 제품에는 켜고끄는 스위치가 없어서 그런 스위치를 달고 LiPo 배터리에 연결하는 것은 아래의 튜토리얼에 나와 있습니다.

https://learn.adafruit.com/adafruit-powerboost-1000c-load-share-usb-charge-boost/assembly

 

배터리만 연결된 상태에서는 배터리 자체의 3.7V를 5.2V로 승압해서 회로에 제공하며, 배터리와 micro-usb가 동시에 연결되어 있으면, mico-usb(전압 5V)에서 제공되는 전력이 회로에 전력을 공급함과 동시에 배터리 충전도 동시에 합니다. 그래서 회로가 동작하면서 동시에 배터리 충전도 가능합니다.

 

주의할 점은 이 제품은 LiPo 배터리만 사용가능하고, 다른 종류의 배터리를 지원되지 않는다는 것과, 최대 공급 가능 전류가 1A까지라는 점입니다. 그래서 작은 프로젝트의 전원 공급용으로 적당합니다.

 

 

지난번에 소개한 adafruit에서 판매하고 제가 직접 사용해본 부품들에 대해서 한개씩 리뷰를 해보려 합니다. (저는 adafruit와 아무 관련이 없으며 헙찬받은바도 없습니다.) 오늘은 그 첫번째로 Neopixel에 대해서 써보겠습니다.

 

Neopixel은 adafruit에서 판매하는 일종의 LED (light emitting diode: 발광 다이오드)인데 이 제품의 특징은 여러개를 한줄로 연결해서 프로그램이 가능하다는 것입니다. 아래에 제품의 사진이 있습니다.

네오필셀 사진 (상), 확대 정면 사진 (하)

 

확대 뒷면 사진 (상), 여러개의 led들이 연결된 strip형태 제품 (하)

 

 

제품 판매 주소는 아래에 있습니다.

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를 구매할 수도 있고, 아래의 사진처럼 길다란 줄의 형태로 구매할 수 도 있습니다.

https://www.adafruit.com/product/1461

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에서 제공하는 튜토리얼이 있습니다. (연결방법, 라이브러리, 예제 코드 등이 있습니다.)

https://learn.adafruit.com/adafruit-neopixel-uberguide/the-magic-of-neopixels

 
Adafruit NeoPixel Überguide

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

아두이노를 가지고 계시다면 한번 구매해서 사용해 보세요. 장식용으로 그럴듯한 물건을 만들수 있습니다.

 

 

 

안녕하세요 그린탐입니다.

 

오늘은 좀 다른 얘기를 해보려 합니다. 오늘 주제는 Adafuit인데요, 무슨 과일이 아니라 각종 전자부품을 디자인해서 판매하는 사이트입니다. 주소는 아래와 같습니다.

https://www.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 설립자, Limor Fried

 

아래의 주소에서 각종 전자 부품을 검색하고 구입할 수 있습니다.

https://www.adafruit.com/

 
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

 

 

 

아래에 카테고리 종류를 보면 알수 있지만 상당히 다양한 종류의 물건을 판매합니다. 그 중 아두이노나 라즈베리파이 등의 보드 등도 판매하는 것을 볼수 있습니다.

 

 

기본적으로 물건을 파는 온라인 상점이지만 여타의 다른 상점과 다른점은 자신들이 파는 물건을 어떻게 사용하는지 안내를 해주고 교육하는 역할도 합니다.

https://learn.adafruit.com/

 
Adafruit Learning System

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

 

 

 

이 회사는 미국의 뉴욕시에 위치해 있지만, 한국으로의 배송도 상당히 빠른 편입니다. 그 외에도 블로그나 매주 신상품 소개등의 동영상들도 주기적으로 올리고 있습니다.

https://blog.adafruit.com/

 
Adafruit Industries - Makers, hackers, artists, designers and engineers!

electronics, open source hardware, hacking and more...

blog.adafruit.com

재미삼아 한번 들러서 구경해보시길 권합니다.

 

+ Recent posts