'atmega328'에 해당되는 글 2건
- 2019.08.04 Hardware | Arduino 를 DIY 해보자 - 2
- 2018.12.03 Hardware | 8x8 LED matrix 와 Colorduino 이용해 보기
1. Arduino Nano 를 DIY 해보자
이 글은 아래 포스트에서 이야기한, arduino 를 직접 만들어보기 2탄 입니다.
* Hardware | Arduino 를 DIY 해보자 - 1
- http://chocoball.tistory.com/entry/Hardware-Arduino-DIY-itself-1
처음 DIY 대상으로 arduino nano 입니다.
일단, 회로 보는 EAGLE 프로그램에서 뽑은 part list 를 구입에 필요한 것만 정리해 봤습니다.
------------------------------------------------------------------------------------------------------- | name | value | type | ------------------------------------------------------------------------------------------------------- | C1, C4, C6, C9 | 100nF | 0603 SMD | | C3, C7, C8 | 1uF | 0805 SMD | | C2, C5 | 4.7uF 16V | 0603 SMD Tantalum capacitor | ------------------------------------------------------------------------------------------------------- | RP1, RP2 | 1k Ohm | CAY16 Network resistor SMD | | L, PWR, RX, TX | LED | 0805 SMD | ------------------------------------------------------------------------------------------------------- | D1 | SS1P3L-M3 | Schottky diodes & rectifier 30V 1A | | F1 | 500mA 6V | 0603 SMD MF-FSMF050 Resetable Fuse | ------------------------------------------------------------------------------------------------------- | J1, J2 | 15 x 2 | single row male 2.54mm pich pin head | | J3 | USB Mini B | USB Mini B type female socket | | J4 | 6 | double row male 2.54mm pitch pinhead | | SW1 | 157 | SMD tactail switch | ------------------------------------------------------------------------------------------------------- | IC1 | FT232RL | SSOP28 USB UART interface IC | | IC2 | LM1117IMPX-5.0| SOT223 Linear regulator | | IC3 | ATMEGA328P-AU | TQFP32 8-bit Microcontroller | | Y1 | 16MHz | SMD Crystal ceramic resonator | -------------------------------------------------------------------------------------------------------
0603 SMD 및 CAY16 network resistor 등, 소형화에 특화된 부품들로 구성되어 있습니다.
Oscillator 마저도 SMD 타입 입니다.
정품 arduino nano 의 앞면과 뒷면 사진 입니다.
최신 arduino nano 는 ATmega328 chip 크기가 더욱 작아진 MLF (Micro Lead Frame) 형식으로,
ATmega328-MU 가 실장되어 있습니다.
참고로, 이 ATmega328-MU 의 Package type 은 32M1-A 라고 하네요.
- Atmel-42735-8-bit-AVR-Microcontroller-ATmega328-328P_Summary.pdf
아래는 밑면입니다.
맨 왼쪽 밑부분에 0603 크기의 fuse 가 있으며,
중간 부분에 SMD 형식의 network resistor 가 실장되어 있습니다.
공간을 최대한 적게 차지하도록 작은 부품들을 사용되어 있습니다. 다만 구하기 힘든 부품들입니다.
2. 구입 부품 최종 확인
정품 nano 에 사용된 SMD 크기는 0603 이지만, 받은 보드는 0805 SMD 로 수정되었으며,
다른 부붐들도 보다 범용적이고 큰 부품들로 변경되어 있다는 것을 알 수 있습니다. 아래 파일은 그 회로도 입니다.
* BL-386
* BL-386(Silk)
참고가 될 수 있도록 arduino nano 의 official 자료를 아래에 올려 놓습니다.
* Arduino Nano V3.2
아래는 무료로 받은 보드 윗면입니다.
부품 크기가 0805 SMD 죠? 그리고 reset switch 마저도 큼지막 합니다.
아래는 밑면입니다.
모두 0805 SMD 이며, 왼쪽 윗부분의 diode 도 큼지막 합니다.
특징으로는 oscillator 가 4 pin 이며, 정사각형의 모양입니다. 이런건 처음이네요.
이 보드를 설계하신 분의 배려가 느껴집니다.
Arduino Nano 의 보드 자체 크기가 0805 를 충분히 커버할 수 있으므로, 궂이 0603 SMD 를 쓸 이유는 없는 것이지요.
다음에 준비하고 있는 Duemilanove 에서도 0805 SMD 를 그대로 사용하고 있어,
추가 부품을 그렇게 많이 구입하지 않아도 되어서 다행입니다.
최종적으로 실제 필요한 부품을 다시 정리해 봤습니다.
------------------------------------------------------------------------------------------------------- | name | value | type | ------------------------------------------------------------------------------------------------------- | C1, C3, C4, C7, C9 | 0.1uF | 0805 SMD | | C5, C6 | 22pF | 0805 SMD | | C8 | 10uF | 0805 SMD | ------------------------------------------------------------------------------------------------------- | R1, R2, R3 | 1k Ohm | 0805 SMD | | R4, R5, R6, R7 | 680 Ohm | 0805 SMD | | L, PWR, RX, TX | LED | 0805 SMD | ------------------------------------------------------------------------------------------------------- | D1 | SS14 | Schottky diodes & rectifier 30V 1A | ------------------------------------------------------------------------------------------------------- | J1, J2 | 15 x 2 | single row male 2.54mm pitch pinhead | | J3 | USB Mini B | USB Mini B type female socket | | J4 | 6 | double row male 2.54mm pitch pinhead | | SW1 | 3 x 6 x 2.5mm | SMD Tactile switch | ------------------------------------------------------------------------------------------------------- | IC1 | FT232RL | SSOP28 USB UART interface IC | | IC2 | LM1117IMPX-5.0| SOT223 Linear regulator | | IC3 | ATMEGA328P-AU | TQFP32 8-bit Microcontroller | | Y1 | 16MHz | 3225 SMD Crystal ceramic resonator | -------------------------------------------------------------------------------------------------------
필요한 부품 리스트를 만들면서 알게된, 배려가 깃든 보드의 특징은 다음과 같습니다.
* no network resistor
저항을 한데 모아 회로를 단순화 하기 위한 부품으로 SMD 용으 구하기 힘드나,
위의 보드에서는 모두 0805 SMD 로 변경되었습니다.
* no fuse
Fuse 가 생략되었습니다.
사실 arduino nano 는 과전류에 사용될 목적으로 만들어 진 것이 아니므로, 단순화를 위해 삭제된것 같습니다.
* bigger crystal
좁쌀만한 oscillator 가 아닌, 좀더 큰 resonator 로 변경되었습니다.
* bigger diode
Diode 도 일반적으로 사용되는 큰 부품으로 대체되었습니다.
* bigger switch
RST switch 도 큰걸로 대체되었습니다.
* all 0805 SMD based
그렇습니다. 0603 SMD는 모두 0805 SMD 로 변경되었습니다.
배려가 깃든 보드인 것을 조사하면서 알게 되니 감사한 마음이 저절로 듭니다.
이 자리를 빌어 다시한번 감사의 말씀 드립니다.
이제 각 부품 구입을 정리해 봅니다.
동시에 다른 arduino 를 준비하다 보니, 겹치는 부품들이 꽤 있습니다.
이런 부품을 공유할 수 있어서 좋네요.
8pin DIP socket 이 필요해서 555 주문할 때, 따로 10uF 을 주문했습니다.
얘만 투명 릴에 왔네요.
위의 세트에는 다음 저항들이 포함되어 있고, 딱 680 Ohm 은 없습니다.
10R / 22R / 47R / 100R / 220 / 470R / 750R / 1K / 2K2 / 4K7 / 6K8 / 10K
22K / 47K / 75K / 100K / 220K / 470K / 750K / 1M
잘 도착하여 받아본 부품 입니다.
다만, 요즘 Micro USB 추세라, Micro USB 도 구매합니다.
Mini USB 와 비교시 pin 간의 간격만 다를 뿐, pin 순서는 동일했습니다.
역시 Micro USB 가 더 단순하고 깔끔한 느낌을 줍니다.
Pin 간격이 좁을 뿐, 순서는 동일합니다.
다만, 요놈은 도착까지 3개월이 걸렸네요.
물론 검정 버전도 같이 가지고 있습니다.
Duemilanove 용으로 구입한 세트에 모두 포함되어 있습니다.
5V/800mA 사양대로라면 특별히 문제될껀 없다고 봅니다.
확대 사진입니다.
형식만 알면 제품을 선택하는 것은 그리 어렵지 않습니다.
AliExpress 에서 검색하니 바로 나오네요. 그 중에서 16MHz 제품을 선택해 줍니다.
* 10pcs SMD 3225 active crystal oscillator OSC 16MHZ 16M 3.2*2.5 3.3V 25PPM
잘 도착했구요.
Oscillator 치고는 직사각형으로 생겨서 신기합니다.
인두 팁으로 납땜을 하다 보니, 아무래도 사용되는 납이 많아져 버립니다.
특히 소자 밑으로 스며들게 해야 하는 oscillator 가 가장 힘들었습니다. (좀 지저분하게 되었죠?)
표면에 안착되지 않은 듯 해서 납을 좀 많이 먹여버리기도 하고, 네 귀퉁이의 소자가 붙어버린 것 같아서 납을 빨아들이기도 하고.
0805 SMD 의 LED 소자는 납땜 하는 열로 인하여 안쪽 구조가 쉽게 망가질 수 있어서 신경이 많이 쓰였습니다.
신기한 것은, anode / cathode 가 쉽게 구분될 수 있도록 띠가 마킹 되어 있었습니다.
위의 사진 처럼, 돌기가 있는 쪽이 + 극이네요.
설계대로라면 USB mini B 이어야 하지만, 요즘은 micro USB 로 통합되는 분위기라서 micro USB 를 장착해 봤습니다.
리드선의 순서는 동일해서, 간극만 맞추고 납땜하면 되었습니다.
잘 안착되게 리드선을 밑으로 구부려서 납땜 해야 하는데, 그러지 않아서 납을 많이 먹여도 떠버리네요. (위 사진)
micro USB 부분의 접점이 잘 되지 않자, 조금 많이 인두로 지졌더랬습니다.
그랬더니 패턴이 나가버렸네요. ㅠㅠ (망함)
micro USB 를 PC 에 연결하면 LED 도 들어왔다 나갔다 뭔가 하는것 같은데, PC 에 인식이 되지 않았습니다.
pinheader 까지 다 납땜 해버렸는데...
이번 작업은 망했어요.
다시 이 기판을 주문하여 도착하면 다시 시작하려 합니다.
그러기 전에 열풍기로 작업해야 겠습니다.
열풍기가 준비 되면, 그 때 다시 arduino DIY 를 시작하겠습니다.
'Hardware' 카테고리의 다른 글
Hardware | ADS1115 16bit 4채널 ADC 를 사용해 보자 (6) | 2019.08.12 |
---|---|
Hardware | Digital Compass - HMC5883L 사용기 - 3 (0) | 2019.08.10 |
Hardware | 납땜 주변 용품 (0) | 2019.08.02 |
Hardware | bluetooth 모듈 HC-06 / HC-05 사용해 보기 - 1 (0) | 2019.07.07 |
Hardware | iPhone SE 스크린 교환기 (0) | 2019.07.04 |
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
정말 이쁘게 생겼죠?
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 ?"
* 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.
현재 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
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
위의 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 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/
9. Plasma 와 Scroller
위의 두 example 을 구동시킨 동영상을 첨부합니다.
우선 Plasma 동영상 입니다.
Scroller 에서는 아래 처럼 text 를 수정하여, 원하는 text 를 뿌려줄 수 있습니다.
Scroller 의 동영상 입니다.
FIN
거의 1년 6개월 걸린, 8x8 LED Dot Matrix 의 동작확인이 이제야 끝났습니다.
뭔가 생산적으로 coding 을 해보고 싶었으나, example 소스를 보고 바로 접었습니다.
꼭 coding 을 해야 할 때가 되면 그때 하려구요.
'Hardware' 카테고리의 다른 글
Hardware | 샤오미 창미 멀티탭 3구 USB 3포트 (0) | 2018.12.16 |
---|---|
Hardware | ATtiny85 개발 보드를 이용하여 Digispark 를 DIY 하기 (0) | 2018.12.14 |
Hardware | MAX30105 파티클 센서 - 1 (0) | 2018.11.23 |
Hardware | RTC DS3231 부품 사용기 - 2 (0) | 2018.11.20 |
Hardware | RTC DS3231 부품 사용기 - 1 (2) | 2018.11.11 |