Hardware | 8x8 LED matrix 와 Colorduino 이용해 보기

|

1. 8x8 LED Matrix


한동안 LED bar 나 LED 전구, 74HC595 등을 사용하다가,

"FULL COLOR 8x8 LED Dot Matrix" 라는 문구를 보게 됩니다.


때는 바야흐로 2017년 5월 24일...

아래 제품을 구입하게 됩니다.


* Full Color 8x8 8*8 Mini Dot Matrix LED Display Red Green Bule RGB Common Anode Digital Tube Screen For Diy 60mmx60mmx5mm

https://www.aliexpress.com/item/5mm-8x8-8-8-Full-Colour-RGB-LED-Dot-Matrix-Display-Module-Common-Anode/32452391556.html



정말 이쁘게 생겼죠?




2. 도착


큰 무리 없이 잘 도착 했습니다.



dot 의 한개씩 자세히 보면, 조그마한 3가지 LED가 하나의 dot 를 이룹니다.



우리가 흔히 알고 있는 3색 - 빨강, 파랑, 녹색이 모든 색을 표현하는 원리를 이용하는 구조로 생각할 수 있습니다.



핀이 많은 것을 보면, full color 임은 확실해 보입니다.

단색일 경우는 아래 보이는 pin 수보다 훨씬 적습니다.



자... 그럼 arduino 와 어떻게 연동될까요.

인터넷 바다에서 검색에 검색을 거듭합니다.





3. 구현 방법


RGB 를 섞어 색을 만들며, 색의 변화를 컨트롤 하는 주된 기능은 "Pulse Width Modulation" 이라고 합니다.

한국에서는 "펄스 폭 변조" 라는군요. (그냥 직역이지 않소...)


* Pulse-width modulation

https://en.wikipedia.org/wiki/Pulse-width_modulation


SparkFun 에서도 관련한 설명을 해 놓은 web page 가 있어서 여기에 링크를 걸어 놓습니다.


* Pulse Width Modulation

https://learn.sparkfun.com/tutorials/pulse-width-modulation/all


간단히 이야기 하면, 펄스의 "" 만을 조정하여, 빛의 강약이나 모터의 구동 속도를 조절하는 것입니다.

눈으로 보기에는 자연스러운 흐름이지만, 주파수적으로는 끊어서 조정하는 방법이라고 합니다.



"난, arduino 를 가지고 놀려고 했는데, 공부를 해야 하는군" 이라는 생각을 다시금 깨우쳐 주는 대목입니다.


자, 그래서 8x8 led dot matrix 를 구동하려면 어떤 선례들이 있는지 찾아보니, 잘 정리된 글들이 대략 다음과 같군요.

결론부터 이야기 하면, 필자도 이런 이야기를 합니다.


"Pulse width modu - WHAT ?"


읽어보면, 결국 74HC595 + ATmega328 등을 이용하여, 전용 breakout 보드를 만들어서 컨트롤 하고 있었습니다.
이게 단순한게 아니었구나...

* 8×8 RGB LED Matrix

http://blog.spitzenpfeil.org/wordpress/projects/8x8-rgb-led-matrix/


* 64 Pixel RGB LED Display - Another Arduino Clone

- https://www.instructables.com/id/64-pixel-RGB-LED-Display-Another-Arduino-Clone/


* How to Build a 8×8 RGB LED Matrix with PWM using an Arduino

http://francisshanahan.com/index.php/2009/how-to-build-a-8x8x3-led-matrix-with-pwm-using-an-arduino/


* nrj/LEDMatrixControl

https://github.com/nrj/LEDMatrixControl


여기까지 하려면 시간이 많이많이많이 걸리겠는걸... 라고 생각 후, 일단 덮고 다른걸로 한동안 시간을 보내게 됩니다.





4. Colorduino


시간이 흘러 흘러 1년...



우연히 Colorduino 라는 제품의 존재를 알게 됩니다.


알게 된지는 꽤 되었지만, 직접 breakout 보드를 만들어 보고자 무시해 왔지만, 너무 일이 커지는듯 하여 포기하고,

1년이 훌쩍 지난 2018년 11월, 이 구동 driver 격인 breakout 보드 구입을 위해 조사하게 됩니다.


제조사는 ITead 라는 회사군요.


* ITEAD Intelligent Systems Co.Ltd.

https://www.itead.cc/


현재 Colorduino 는 version 1.4 까지 나와있는 듯 합니다.


* Colorduino V1.4 Color Rainbow Matrix RGB LED Driver Shield For Arduino

https://www.itead.cc/colorduino-v1-4.html


아래 스샷들은 제품 website 에서 가져온 내용인데,

지금까지 고민한 것들이 모두 구현되어 있는 모습을 보여주고 있습니다.



PWM 을 위해서 전용 chip이 채용되었군요.



컨트롤을 위해서 arduino 에서 사용하는 ATmega328 이 채용되었습니다.


그래서 Arduino IDE 와 FTDI 를 통해서 연결 시,

보드를 ATmega328 을 채용한 보드 - Uno, Duemilanove, Nano - 를 선택하면 문제가 없습니다.


관련된 library 및 example 소스는 WIKI 형식으로 정리가 되어 있습니다.


* Colorduino V1.3 (WIKI)

https://www.itead.cc/wiki/Colorduino_V1.3


* Colorduino V1.4 (WIKI)

https://www.itead.cc/wiki/Colorduino_V1.4


사용된 각 chip 의 datasheet 는 아래와 같이 이 post 에 첨부해 놓습니다.


* Datasheet

- Colorduino : DS_IM120410004_Colorduino.pdf

DM163 : DS_DM163.pdf

M54564FP : DS_M54564FP.pdf


* Fritzing Parts

Colorduino.fzpz





5. Colorduino / Funduino 구입


AliExpress 에서 검색하면, Colorduino 의 clone 제품인 "Funduino" 가 판매되고 있습니다.

잘 보면, Colorduino V1.3 버전을 기준으로 만든 제품입니다.


* Free shipping ! Full color 8 * 8 LED RGB matrix screen driver board Colorduino for arduino

https://www.aliexpress.com/item/Free-shipping-Full-color-8-8-LED-RGB-matrix-screen-driver-board-Colorduino-for-arduino/2045397138.html



위의 ITead 사이트의 V1.3 과 비교해 보면, 완벽히 동일하다는 것을 알 수 있습니다.





6. Funduino 도착


가격이 좀 있다 보니, 2주만에 도착했습니다.



뽁뽁이로 잘 쌓여서 도착했습니다. 믿음직 스러운 배송입니다.



상면샷 입니다. 깔끔하게 만들어져 있네요.



다시금 Colorduino 와 동일함을 느끼게 됩니다.



ATmega328 도 보이며, PWM 을 위한 DM163 도 보입니다.



뒷면에는 당당하게(?) Funduino v1.A 라고 마킹되어 있습니다.






7. 장착 및 FTDI 연결


우선 8x8 LED matrix 의 1번 pin (not 어뢰) 를 Funduino 의 1번 소캣에 맞추어 끼웁니다.



Dot matrix 에 딱 가려지는 크기 입니다. 잘 만들었네요.



FTDI 와 pin 연결은 다음과 같습니다.


  FTDI | Funduino
------------------
  DTR  |   DTR
  RX   |   TXD
  TX   |   RXD
  VCC  |   VDD
  GND  |   GND
------------------



실제로 FTDI 와 연결된 모양은 다음과 같습니다.

(한데 묶여있는 선 다발로 조금 지저분해 보이지만, 그건 오해입니다.)



일단, PC USB --> FTDI --> Funduino 를 연결하면, 미리 구워진 프로그램으로 구동됩니다.



동영상으로 찍어 봤습니다.



이쁘네요.





8. Arduino IDE 설정 및 Library 설치


Colorduino 는 기본으로 ATmega328 을 가지고 있으므로,

IDE 에서는 ATmega328 을 실장하고 있는 Arduino Nano / Uno / Duemilanove 어느것을 선택해도 됩니다.



최종적으로 소스 프로그램이 ATmega328 용으로 컴파일 되면 문제가 없으니까요.


Colorduino 의 Library 를 다운로드하여 등록합니다.



그러면 아래와 같이 example 을 로드할 수 있습니다.



아래는 Colorduino 의 Plasma 와, 문자를 스크롤 하는 Library 링크 입니다.

혹시 모르니, 실제 파일도 첨부해 놓습니다.


* Colorduino Library

https://github.com/Electromondo-Coding/Colorduino

Colorduino-master.zip


* Colorduino Scroller Library

https://github.com/Electromondo-Coding/ColorduinoScrollerLibrary

ColorduinoScrollerLibrary-master.zip


위의 Scroller 는 위의 Colorduino Library 와 서로 의존성을 갖습니다.


또다른 버전의 Colorduino Library 도 존재하는데, 그게 아래 링크 및 파일입니다.

위의 Library 와 비슷하지만, 좀더 PWM 이 부드럽게 동작하는 듯 합니다.


그래서, 아래 Colorduino Library 와 위의 Scroller Library 를 혼합하여 설치하면,

Scroller 가 동작하지 않으니 주의가 필요합니다.


* Colorduino Library

https://github.com/lincomatic/Colorduino/

Colorduino-master.zip





9. Plasma 와 Scroller


위의 두 example 을 구동시킨 동영상을 첨부합니다.

우선 Plasma 동영상 입니다.



Scroller 에서는 아래 처럼 text 를 수정하여, 원하는 text 를 뿌려줄 수 있습니다.



Scroller 의 동영상 입니다.






FIN


거의 1년 6개월 걸린, 8x8 LED Dot Matrix 의 동작확인이 이제야 끝났습니다.

뭔가 생산적으로 coding 을 해보고 싶었으나, example 소스를 보고 바로 접었습니다.


꼭 coding 을 해야 할 때가 되면 그때 하려구요.


And