'uno'에 해당되는 글 2건

  1. 2018.12.03 Hardware | 8x8 LED matrix 와 Colorduino 이용해 보기
  2. 2018.09.18 Hardware | Arduino 를 DIY 해보자 - 1 4

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

Hardware | Arduino 를 DIY 해보자 - 1

|

1. Arduino 를 실제로 만들어 보자


PCB를 직접 만들어 보고자 이곳저곳을 찾아 다니던 중,

BinGoon 이라는 분의 블로그를 알게 되었습니다.


* BinGoon 의 소소한(?) 일상

http://binworld.kr/


여기서 보게된 Arduino 직접 제작기.

http://binworld.kr/25?category=494229


원래 PCB 부터 설계, 프린팅부터 하는게 진정한 DIY 이긴 하지만, 준비할게 너무 많은지라

블로그에 안내된 대로 Arduino PCB를 무료로 보내주는 분에게 부탁하여 PCB 만 따로 받기로 합니다.


Board Lab (Board Free)

http://www.boardfree.kr/





2. Arduino 의 역사


Arduino 를 처음 시작할 때도 그랬지만, 그 종류가 많아 초보자가 처음 선택하기란 쉽지 않습니다.

자료를 찾고 알아가는 재미도 있지만, 처음에는 막막하더군요.


무료 PCB 주문을 위해, 어떤 Arduino 를 할 것인지 선택함에 있어서도 다시금 고민이 됩니다.

그래서 이번에 좀더 체계적으로 알아보기로 합니다.


기본적인 정보는, 아래 Wikipedia 를 참고했습니다.


* List of Arduino boards and compatible systems

https://en.wikipedia.org/wiki/List_of_Arduino_boards_and_compatible_systems


제작에 앞서 기준이 되는 것은 "최신 업그래이드 된 버전의 Arduino" 였습니다.

Arduino 도 햇수가 지나면서 최적화 되고, 새로운 버전들이 생겨났거든요.


이왕 만들꺼면 최적화가 가장 많이 이루어전 최신 arduino 로 하는게 좋다는 생각이었습니다.

과거 발전사를 한눈에 보려면 아래 arduino 사이트를 보면 됩니다.


* Arduino Older Boards

https://www.arduino.cc/en/Main/Boards


위의 Wikipedia 와 Arduino 두 사이트를 보고 정리된 발전 수순은 대략 다음과 같습니다.

(많이 쓰이는 메인 스트림 기준으로)


NG --> Diecimila --> Duemilanove --> Uno --> Leonardo --> Zero


Zero 는 2015년부터 정식 릴리즈 되었지만, 사양이 넘사벽이고 DIY 하기엔 너무 부품이 많습니다.

또한 무로 PCB 사이트에서도 제공되는 리스트에 포함되어 있지 않습니다.


그럼 Duemilanove / Uno / Leonardo 정도로 좁혀지는군요.





3. Arduino 중에서 어떤걸 선택해야 할까?


이제 하나씩 알아봅니다.


* Arduino Duemilanove

https://www.arduino.cc/en/Main/arduinoBoardDuemilanove



* 제작 연도 : 2009

* CPU : ATmega328P

* USB chip : FTDI FT232R

* USB socket : USB 1.0 Standard Type B


Improved : automatically switching between USB and external power, eliminating jumper


* ARDUINO UNO REV3

https://store.arduino.cc/usa/arduino-uno-rev3



* 제작 연도 : 2010

* CPU : ATmega328P

* USB chip : ATmega16U2

* USB socket : USB 1.0 Standard Type B


This uses the same ATmega328 as late-model Duemilanove, but whereas the Duemilanove used an FTDI chip for USB, the Uno uses an ATmega16U2 (ATmega8U2 before rev3) programmed as a serial converter.


* ARDUINO LEONARDO WITH HEADERS

https://store.arduino.cc/usa/arduino-leonardo-with-headers



* 제작 연도 : 2012

* CPU : ATmega32U4

* USB chip : USB controller built-in at CPU

* USB socket : USB 2.0 Micro B


The Leonardo uses the Atmega32U4 processor, which has a USB controller built-in, eliminating one chip as compared to previous Arduinos.


참고로 compact version 인 Nano 도 확인해 봅니다.


* ARDUINO NANO

https://store.arduino.cc/usa/arduino-nano



* 제작 연도 : 2008

* CPU : ATmega328

* USB chip : FTDI FT232R

* USB socket : USB 2.0 Mini B


역시 제작년도가 가장 최근(?) 인 2012년에다가 USB chip 이 내장되어 있어서 깔끔하며,

USB socket 도 휴대폰 충전용으로 가장 많이 쓰이는 USB micro B 인 "Leonardo" 로 결정합니다.







4. 선택의 재고


Leonardo 로 선택했지만, 몇가지 마이너한 문제가 있습니다.


* 제공되는 PCB 의 형태


BoardFree 에서 제공되는 Leonardo 의 부품들은 SMD 형태가 아니라,

예전 라이오 공작시 사용되는 큰 부품들을 사용할 수 있도록 제작되었습니다.



향후 여러가지 PCB를 직접 제작하여 회로를 꾸밀 때,

부품을 SMD 로 많이 준비하려 하려던 차라 이와 맞지 않습니다.


또한 왠일인지 USB socket 이 USB 1.0 Standard Type B 입니다.

결국 대상에서 제외할 수밖에 없네요.



* chip 실장의 난위도


그럼 그 다음 타자인 Uno 가 괜찮냐? 그건 또 아닙니다.
그 이유로는 USB 컨트롤로인 ATmega16U2 이 아래와 같이 생겼습니다.



실제로 납땜하게 되면 아래와 같은 모습이 되는데, 좋은 플럭스와 납땜 팁이 필요합니다.



결국 무난하게 "Duemilanove" 가 가장 적당해 보이는군요.

BoardFree 에서는 2가지의 PCB 를 보내주므로 "Nano" 도 함께 부탁하기로 합니다.


USB socket 은 micro USB 로 변환시켜주는 부품을 찾아서 해결해 보기로 합니다.





5. Part list 만들기

각 arduino 사이트를 가면 "EAGLE file" 이라는 것이 있습니다.
Autodesk 에서 만든 전자회로 설계 software 에서 읽을 수 있는 파일입니다.


이 파일을 통해서 회로를 볼 수 있습니다.

또한 export 를 통하여 part list, 즉 부품 리스트도 뽑아볼 수 있습니다.

간단한 사용법은 다음에 오는 포스트에서 설명하겠습니다.


* Software | 회로설계 프로그램 EAGLE 

http://chocoball.tistory.com/entry/Software-circuit-design-EAGLE


위의 방법을 통해 만들어진 Duemlianove 와 Nano 의 부품 리스트 입니다.


arduino-duemilanove-part-list.txt

nanov3.2-part-list.txt





6. BoardFree 신청 및 도착

신청서 양식대로 메일을 보내면 착불로 보내 줍니다.
전날 신청했는데 바로 그 다음날 도착했습니다! 고마운 분들이십니다.


PCB 부품이라서 부피가 그리 크지 않습니다.


뽁뽁이로 잘 쌓여 있습니다.
그리고, 2가지 PCB를 보내주시면서 서로 긁히지 않도록 중간에 명함도 끼워 주셨습니다.


짜잔~ Duemilanove 와 Nano 의 PCB 입니다.






7. PCB 의 품질

도착한 PCB 의 클로즈 업 사진입니다.


무료라서 기대하지 않아 그랬는지, 처음 받고나서 놀랬습니다.

품질이 예상 이상으로 좋았습니다. 쓰루홀도 정확했고, 프린딩도 좋았습니다.



무엇보다도 두께가 1.7mm 로 상당히 두껍습니다. 이렇게 좋은 품질일줄은 몰랐네요.

또한번 이자리를 빌어 감사의 말씀 드립니다.



앞면입니다.



뒷면입니다. 볼수록 깔끔하네요.



왼쪽 윗부분은 전원부 입니다. 아름답네요.



Nano 의 PCB 입니다.





8. 최종 부품 리스트 및 구매

Duemilanove / Nano 에 동일하게 들어가는 부품 포함하여 최종 리스트를 만들어 보려 했으나,
Nano 는 0603 SMD 기준이고, Duemilanove 는 0805 SMD 기준이라서 FT232RL 와 LED 빼고는 따로 구입해야 하네요.

우선 Duemilanove 부품만 최종 리스트업 해 봅니다.

-------------------------------------------------------------------------------------------------------
|                  name                  | value         | type                                       |
-------------------------------------------------------------------------------------------------------
| C1, C4, C5, C8, C9, C10, C11, C12, C13 | 100nF         | 0805 SMD                                   |
| C2, C3                                 | 22pF          | 0805 SMD                                   |
| C6, C7                                 | 100uF 35V     | Aluminum Electrolytic Capacitor            |
-------------------------------------------------------------------------------------------------------
| R1, R10, R11                           | 10k Ohm       | 0805 SMD                                   |
| R4, R5, R6, R7, R8, R9                 | 1k Ohm        | 0805 SMD                                   |
| L, PWR, RX, TX                         | LED           | 0805 SMD                                   |
-------------------------------------------------------------------------------------------------------
| D1                                     | M7 (1N4007)   | Rectifier Diode                            |
| F1                                     | 500mA 15V     | L1812 Resetable Fuse                       |
-------------------------------------------------------------------------------------------------------
| J1, J3                                 | 8             | single row female 2.54mm pitch pinhead     |
| J2, POWER                              | 6             | single row female 2.54mm pitch pinhead     |
| ICSP                                   | 6             | double row male 2.54mm pitch pinhead       |
| S1                                     | B3F-10XX      | OMRON B3F-10XX series switch               |
| X2                                     | DC-21MM       | 5.5/2.1mm female DC power jack plug socket |
| X4                                     | USB B type    | USB B type female socket                   |
-------------------------------------------------------------------------------------------------------
| IC1                                    | ATMEGA328P-PU | DIP28 8-bit Microcontroller                |
| IC2                                    | FT232RL       | SSOP28 USB UART interface IC               |
| IC4                                    | MC33269D-5.0  | 5V 800mA LDO voltage regulator             |
| IC5                                    | LM358D        | SOP8 Op Amp                                |
| Q2                                     | 16MHz         | HC-49S crystal oscillator                  |
| T1                                     | NDT2955       | SOT-23 MOSFET                              |
-------------------------------------------------------------------------------------------------------
| R2                                     | 100_NM        | no need to implement "no-mount"            |
| RESET-EN                               | jumper        | "auto-reset" on ATmega168                  |
| X3                                     |   JP4         | use like FTDI breakout board               |
-------------------------------------------------------------------------------------------------------


위에서 R2, RESET-EN, X3 과 관련한 부품은 실제로 실장할 필요는 없습니다.

이제 구매를 진행하고 납땜을 하면 되겠습니다.


Nano 부품 구입은 이번 프로젝트에 회사 동료를 한명 꼬셨으니, 그 분이 구입하도록 해야겠습니다. :-)

물론 제가 구입한 Duemilanove 부품은 2개 이상씩 구입했으니 나누면 됩니다.





FIN

부품이 도착하면 실제로 납땜해 보도록 하죠.

마지막 한가지, USB B type 은 아직 주문하지 않았습니다.
micro USB 로 변경하고 싶은데, PCB 모양과 micro USB 를 어떻게 붙여야 할지 모양이 나오지 않네요...

음... 어떻게 해야 할까?

And
prev | 1 | next