December 22, 2024

디바이스마트 미디어:

[66호] 원하는 색상으로 제어가 가능한 아두이노 IoT 스마트 무드등 키트 -

2021-06-25

★2021 ICT 융합 프로젝트 공모전 결과 발표! -

2021-05-12

디바이스마트 국내 온라인 유통사 유일 벨로다인 라이다 공급! -

2021-02-16

★총 상금 500만원 /2021 ICT 융합 프로젝트 공모전★ -

2021-01-18

디바이스마트 온라인 매거진 전자책(PDF)이 무료! -

2020-09-29

[61호]음성으로 제어하는 간접등 만들기 -

2020-08-26

디바이스마트 자체제작 코딩키트 ‘코딩 도담도담’ 출시 -

2020-08-10

GGM AC모터 대량등록! -

2020-07-10

[60호]초소형 레이더 MDR, 어떻게 제어하고 활용하나 -

2020-06-30

[60호]NANO 33 IoT보드를 활용한 블루투스 수평계 만들기 -

2020-06-30

라즈베리파이3가 드디어 출시!!! (Now Raspberry Pi 3 is Coming!!) -

2016-02-29

MoonWalker Actuator 판매개시!! -

2015-08-27

디바이스마트 레이저가공, 밀링, 선반, 라우터 등 커스텀서비스 견적요청 방법 설명동영상 입니다. -

2015-06-09

디바이스마트와 인텔®이 함께하는 IoT 경진대회! -

2015-05-19

드디어 adafruit도 디바이스마트에서 쉽고 저렴하게 !! -

2015-03-25

[29호] Intel Edison Review -

2015-03-10

Pololu 공식 Distributor 디바이스마트, Pololu 상품 판매 개시!! -

2015-03-09

[칩센]블루투스 전 제품 10%가격할인!! -

2015-02-02

[Arduino]Uno(R3) 구입시 37종 센서키트 할인이벤트!! -

2015-02-02

[M.A.I]Ahram_ISP_V1.5 60개 한정수량 할인이벤트!! -

2015-02-02

[15호]흔드는 LED POV를 만들어 보자!

_LHJ2153 

흔드는 LED POV를 만들어 보자!

                 이민주 객원기자

2000년대 초반 부동산 사무실 같은 일부 가게에서만 사용되던 LED 전광판이 지금은 대부분의 가게에서 사용되고 있다.

전광판의 경우 워낙 저렴하게 많이 보급이 되면서 사람들의 이목을 더 이상 끌 수 없다. 이 외에도 콘서트에서 야광 봉을 흔들거나 공사현장에서 안전 봉을 흔드는 모습을 보면서 필자는 새로운 제품을 생각해 보았다.

홍보효과를 극대화 할 수 있고 이목을 사로잡을 수 있는 LED POV를 소개한다.

하드웨어

사용될 부품들이다. LED 같은 부품의 경우 원하는 종류 또는 크기로 바꾸어 사용하여도 좋다. 다만 LED 사양에 따라 IT1402주변에 붙는 저항의 크기를 달리 사용해야할 수 있다는 점에 주의하자. 공구는 인두, 납, 니퍼 등 기본적인 공구를 준비한다.15LedPov16ledpovcomponent1. 회로도이다. LED가 대부분의 공간을 차지한다. IC와 IC주변 부품들은 가깝게 설계하고 가속도 센서 방향에 주의하자. 

15LedPov회로도 다운로드

 

2. 기판을 알맞은 크기로 절단한다. 흔드는 POV를 만들 것이므로 한 손에 잡기 편하도록 길게 만드는 것이 좋다. LED 드라이버, LED가 부착될 것을 감안해 넓이도 적절히 조정한다. 필자는 폭을 16홀의 크기로 제작하였다.

15LedPov1

3. 32개의 RGB LED가 사용되는데 이 LED들은 손쉽게 제어할 수 있도록 시프트레지스터 IC를 이용하였다. 전류제한 기능이 있어 저항의 개수도 획기적으로 줄일 수 있는데, 아쉽게도 IC의 크기가 매우 작아 납땜하기 어렵다. 크기를 고려하고 납땜도 자신이 있다면 에나멜 선으로 직접 납땜하고, 납땜에 자신이 없다면 변환기판을 이용하자.

15LedPov2

4. 기판에 부착할 수 있도록 핀 헤더를 끼우고 납땜을 한다.
핀 헤더가 기판과 수직으로 세워지도록 끼워야 하는데, 수직이 되지 않으면 기판에 끼우기 매우 번거로워진다. 한쪽 끝을 살짝 납땜하고 납을 녹인 상태에서 수직으로 맞춘 뒤 나머지도 납땜하면 된다.

15LedPov3

5. 우리가 사용하는 변환기판은 주변소자를 붙일 수 있도록 만들어져 매우 편리한데, 세라믹콘덴서와 저항은 이 변환기판에 부착한다.

15LedPov4

6.만들어두었던 메인기판에 부착한다.

15LedPov5

7.기판에 부품을 끼우면 바로 납땜한다. 기판에 완전히 밀착되도록 손으로 고정하고 한쪽 끝을 납땜하고 나머지도 납땜한다. 일반적인 부품도 다리를 구부리지 않고 납땜해야 나중에 교체하기가 쉽고 다른 패턴에 영향을 주지 않는다.

15LedPov6

8. SD카드 소켓을 부착할 것인데, SD카드를 삽입/제거할 때 납땜면에 무리가 가지 않도록 내열성 양면 테이프를 이용해 먼저 고정하도록 한다.

15LedPov7

9.양면 테이프로 기판에 완전히 고정하고 납땜한다. PCB고정용 서포터가 있는 경우 니퍼로 제거한다. 인쇄기판을 제작할 경우에만 홀을 뚫어 사용하기 때문이다.

15LedPov8

10.리드스위치를 부착하고 납땜한다. 리드스위치는 POV를 자전거 바퀴에 부착할 경우 자동으로 회전속도를 감지해 표시 지연 속도를 결정할 수 있도록 해준다.

15LedPov9

11.메인 MCU를 부착할 예정인데, 핀 간격이 좁아 그대로 기판에 올릴 경우 쇼트가 될 수 있다. 따라서 내열성 양면 테이프를 이용해 IC를 고정한다. 내열 테이프가 가격이 비싼 편인데, 필자는 예전에 종이 테이프를 이용해 절연을 한 적이 있었다. 양면 테이프가 잘 벗겨지지 않는다면 칼을 이용한다.

15LedPov10

12. IC방향을 확인해 부착한다.

15LedPov11

13. 크리스탈을 부착한다. 16MHz를 사용했지만, POV는 시간적인 개념을 잘 사용하지 않으므로 퓨즈비트 설정 시 내부 RC오실레이터 8MHz를 선택해도 큰 차이점을 사용자는 느낄 수가 없다. 단, 자전거 모드를 이용할 경우는 반드시 16MHz의 크리스탈을 이용하는 것이 고속주행 시 유리하다.

15LedPov12

14. 가속도 센서를 부착한다. 흔드는 방향에 따라 표시 방향을 달리 해준다. 또한, 이미지를 표시하는 도중 방향을 바꾸면 즉시 진행을 멈추고 표시했던 위치에서 반대로 이미지를 표시해준다. 이  때문에 사용자는 특별히 신경을 쓰지 않고 마구 흔들어도 이것을 보는 사람들은 최대한 일정한 위치에 메시지가 떠 있는 것처럼 느끼게 해준다. 자전거 모드와 핸드 모드는 수동으로 선택할 수 있지만 자동모드로 선택한 경우 원심력이 감지되면 자동으로 자전거 모드로 전환해 준다.

15LedPov13

 

15. 기판을 뒤집어 24pin 충전 잭을 부착한다. 리튬폴리머 배터리를 이용하는데 별도의 충전회로는 마련하지 않았고 스마트폰에 밀려 사용되지 않는 24pin 표준 충전기를 이용해 충전하도록 할 것이다.

15LedPov1415LedPov15

16. 레귤레이터 IC를 부착한다. SD카드에 정전압을 공급하는 역할을 한다.

15LedPov16

 

17. LED를 차례로 삽입한다. LED 다리의 간격이 좁으므로 벌려야 한다.

15LedPov1715LedPov18

18. IC에서부터 LED까지 리드선으로 연결한다.

15LedPov19

 

19. MCU와 주변 IC, 가까운 거리는 에나멜선을 이용했다.

15LedPov2015LedPov21

20. 휴대용으로 사용될 예정이므로 리튬폴리머 배터리를 부착할 예정이다. 기판에 그대로 붙이면 흠집이 나거나 배터리팩이 구멍이 날 수 있으므로 스폰지나 두툼한 종이를 배터리 기판면에 부착한다.

15LedPov22

21. 배터리 커넥터를 사용하지 않을 예정이다. 기판 홀 간격과 배터리 몰렉스 핀 간격도 안 맞지만, 많은 LED를 ON/OFF할 것인데 오래 쓰면 커넥터 접촉저항이 생겨 LED가 갑자기 ON되는 경우 MCU가 리셋 될 수 있다. 두 선을 동시에 자르게 되면 쇼트가 날 수있으므로 한 선씩 잘라낸다.

15LedPov23

22. LED에 캡을 씌운다. 직진성이 있는 LED의 빛을 분산시키고 커지게 만들어 적은 LED로 더 크게 메시지를 전달할 수 있다.

15LedPov24

23. 별도의 케이스를 만들지 않을 것이므로 수축튜브를 이용해 외관을 처리했다. 외부의 오염물질을 차단하고 간단한 생활방수 역할까지 해준다.

15LedPov25

24. 수축튜브를 수축할 때 필자는 전기버너를 이용했다. 직접 불에 닿을 경우에는 그을림이 생기고 열이 올바르게 전달되지 않아 모양이 이상해지므로 열풍기나 전기버너 등을 이용한다. 매우 뜨거우니 조심하자.

15LedPov26

25. ISP단자를 PC와 연결한다. 사진은 LED 테스트 프로그램을 넣고 돌린 것.

15LedPov27

소프트웨어

1. Atmel Studio 6.0을 이용해 프로그램을 다운로드 받아보겠다. HEX파일만 불러 다운로드 할 것이므로 ISP종류에 따라 AVR Studio 4.xx버전이나 PonyProg등 다른 소프트웨어를 사용해도 무방하다. Atmel Studio 6.0기준으로 Tools -> Device Programming을 누른다.15LedPovf0002. Tool에는 인식된 ISP장치를 선택한다.(사전에 전용 드라이버를 설치해야 한다) 필자는 mkII를 사용하므로 이것을 선택했다. Device는 사용하는 MCU를 선택하는 것인데, ATmega32A를 선택한다. Interface는 ISP모드로 선택하고 Apply를 누르면 인식이 될 것이다. Device Signature에 Read를 눌러 올바르게 인식되는지 확인한다. Memories항목을 눌러 Flash 경로에 handpov.hex를 선택한다.15LedPovf001 

3. LED테스트용 프로그램은 ledtest.hex이다. Erase device before programming과 Verify Flash after programming을 체크한다. Program버튼을 누르면 자동으로 다운로드가 진행된다. 초기 EEPROM은 0xff이므로 올바르지 않은 EEPROM으로 간주되면 자동으로 초기화시켜주므로 신경쓰지 않아도 된다.

15LedPovf002

4. 그림과 같이 선택한다. 외부 크리스탈, BOD리셋(2.7V)을 선택한다. EESAVE는 차후 펌웨어 업그레이드시 설정값 초기화를 원하지 않으면 체크한다. 만약 EEPROM맵이 바뀌거나 EEPROM을 더 사용하게 되면 불가피하게 자동 초기화될 수 있다. 확신이 서지 않으면 Fuse Register값에 High=0xC1, Low=0xBF값이 표시되는지 확인하고 Auto Read, Verify after programming을 선택하고 Program을 누르면 끝이다.

15LedPovf003

5. 시작->모든 프로그램->보조 프로그램->그림판을 눌러 “그림판”을 실행한다. 가로 96픽셀, 세로 16픽셀로 고정하고 배율을 최대인 800%로 하여 편집하기 쉽도록 한다.

15LedPovimg000

 

 

※참고사항※
· 96x16px와 48x16px만 사용할 수 있는데, 자동으로 감지하며, 96x16px인 경우 8색(적/녹/청/청록/황/자/백/소등)만 지원한다. 48×16인 경우 두 배 많은 16색을 지원한다.
· BMP파일로 저장하여야 하는데, 두 가지 모두 16색으로 저장해도 SD에서 읽을 때 픽셀 수에 따라 자동으로 변환, 처리한다.
· 매번 SD카드에서 데이터를 읽어 LED로 뿌려주기엔 부담이 되므로 내부 RAM으로 데이터를 옮겨 LED에 표시하는데, 메모리 부족으로 고해상도에서는 적은 색상만을 지원하도록 제한하였다.
· 48×16의 경우 색상별로 2단계로 밝기 조절이 되므로 차후 더 많은 색상을 지원할 예정이다.

 

6. 색 편집을 눌러 순수한 적색/녹색/황색 등 단색을 추가한다. 예를 들면 적색은 빨강 칸에 255, 녹색 칸에 0, 파랑칸에 0을 입력한다. 황색은 빨강 칸에 255, 녹색 칸에 255, 파랑 칸에 0을 입력하면 된다. 16색으로 저장하고 싶어 어두운 적색, 어두운 황색 등 으로 저장하고 싶은 경우 해당 색상을 255대신 128로 바꾸면 된다. 사이의 값을 지정해도 어차피 16색으로 저장하게 되므로 자동으로 변환이 되겠지만 의도하지 않게 엉뚱한 색상으로 바뀔 수 있으므로 미리 지정해 필요한 색만 사용하는 것이다.

15LedPovimg000b

7. LED는 검정색으로 했을 때 소등되므로 절전을 위해 배경을 검정색으로 바꾼다. 색채우기 도구를 눌러 한 번에 배경을 검정색으로 바꿀 수 있다.

15LedPovimg001

8. 보통 문자와 그림 모두 있을 때 정보 전달이 탁월하다고 한다. 태극무늬를 넣을 예정인데 정석적인 방법대로 왼쪽에는 로고를 만들고 오른쪽으로는 글씨를 입력하고자 한다.

15LedPovimg002

9. 텍스트 영역은 도구창에서 “텍스트 입력”도구를 이용해 입력하면 편리하다.

15LedPovimg003

10. 반드시 BMP파일로 저장한다.

15LedPovimg004

11. 단 16색으로 저장하여야 하며 파일명은 0.bmp~9.bmp로 10개까지만 저장이 가능하다. 별도의 폴더 생성 없이 SD카드 루트디렉토리에 저장한다.

15LedPovimg005

 

 

※FND 표시 및 설명※

16ledpovdps

·전원 OFF상태에서는 버튼만 누르면 자동으로 현재 동작 모드를 잠시 표시한 후 해당 기능으로 동작하는데, 핸드 모드로 동작할 경우는 “H”가, 자전거 모드로 동작할 경우 “b”가 표시된다.
·”A”로 선택된 경우 자동모드이므로 원심력이 감지되면 자동으로 자전거 모드로 동작한다.
·현재에는 Hand모드만 지원하며, 펌웨어 업그레이드를 통해 자전거 모드도 지원할 예정이다.

16ledpovdps2

·선택된 이미지의 번호 10가지를 표시한다.

·버튼을 누를 때 마다 번호가 증가하고 해당 번호의 이미지 파일이 로드된다.
·해당 번호의 이미지가 저장되어있지 않거나 열 수 없으면 자동으로 다음 번호로 스킵 한다.
·SD에서 저장된 파일이 MCU의 RAM으로 로드될 때에는 Dot가 잠시 점등한다.
·파일이 없는 경우 “-”표시가 점등되며, 배터리가 부족한 경우 “L”과 숫자가 교차되며 표시된다.
·버튼을 길게 누르면 “H”,”b”,”A”를 표시하며 모드변경을 할 수 있다.

16ledpovdps5

·SD카드가 없는 경우 이러한 표시가 된다.
·현재에는 SDHC카드도 인식하지 못한다.
·E가 표시된다면 무조건 문제가 있다는 뜻이고, 오류 번호(종류)와 함께 0.5sec씩 교차 표시한다.
·SD카드를 올바르게 삽입하고 버튼을 누르면 리셋 되고 정상 동작한다.

16ledpovdps4

·SD카드 포맷이 틀리다는 것을 의미한다.
·새로운 SD카드를 삽입하고 버튼을 누르면 리셋 된다.

16ledpovdps5

·배터리가 부족하여 켜질 수 없음을 의미하고, 충전 후 사용해야 한다.

 

※전원 및 충전 방법※

충전기는 TTA 표준 24 PIN을 휴대폰 충전기를 사용한다. 요즘 스마트폰에 밀려 버려지는 24PIN 충전기를 활용하였지만, 보통 이 충전기는 450mA만 출력하므로 충전속도가 오래걸린다. 약 4시간~5시간 정도의 충전시간이 소요된다. 일부 고급형 24 PIN충전기(PDA, PMP 등에 사용하도록 만들어진)는 최대 900mA까지 출력되는데, 이 경우 충전시간은 2시간 정도이다.
흔들림이 감지되지 않거나 버튼을 누르지 않은 상태에서 30초 정도 방치하면 자동으로 Sleep모드로 진입한다. Sleep상태에서는 약 2~3주간 배터리가 서서히 방전되므로 사용하기 전날에는 반드시 충전한다.

 

완성작

■ 실행 결과 모습 ■_LHJ2147▶ 런던올림픽 전에 이것을 만들었다면 응원도구로도참 좋았을 것이라 생각한다._LHJ2153-2 

▶ 디바이스마트 로고도 간단히 만들어 표시할 수 있다.

_LHJ2157

▶ 하나 만들어 둔다면 안전용품 대용으로도 사용할 수 있어 실용적이다.

_LHJ2163

▶ 어두운 밤에 무지개도 만들어낼 수 있다.

 

이목을 끌고 싶은 학교 축제 주점, 색다른 것이 필요한 콘서트 관람객, 주차업무를 하는 사람들은 하나쯤 만들어보자.

15ledpovleeminju 기자소개
제작 / 사진 / 글
이민주 객원 기자
현재 원주 한라대학교 전기전자 공학과를 재학중이며,
개인 홈페이지 http://www.itstyle.kr 운영중.
Leave A Comment

*