컴퓨터 / IT

LED 컨트롤러 제작기 1편

드라이빙필 2019. 7. 14. 17:59
반응형

제 블로그에서 제가 몇 번 밝힌 적이 있지만 PC를 꾸미다 보면 반짝이는 LED 불빛에 반응하는 저 자신을 발견하곤 합니다. 어렸을 때부터 어두운 방에서 보이는 LED나 VFD의 불빛들이 어쩌면 그리도 좋던지... 불나방과의 본능이 움찔움찔 기어나오는... ^^;;

 

제가 사용하는 메인보드에서는 어드레서블까지는 아니지만 RGB LED 스트립이 지원되서 CPU 쿨러만 RGB 팬을 사용하여 LED 이펙트를 즐기는 수준이었습니다. 그리고 케이스 팬도 흡기 팬과 배기 팬 각각 하나씩은 RGB 또는 RB 팬이어서 아쉬운 데로 화려한 조명이 가능했지만 메인보드에서 컨트롤이 안되고 수동 버튼을 통해 모드 변경만 가능합니다. 그래서 좋긴 한데 왠지 모를 아쉬움을 마음 한 켠에 간직하며 LED 라이프를 즐겨왔습니다.

 

그러다가 두 달 전쯤 갑작스런 생각에 빠져들게 되었는데요. LED 조명 때문에 메인보드를 바꿀 수는 없는 노릇이니 어드레서블 LED 컨트롤러를 내가 만들고 LED 스트립을 사서 케이스 내부에 한 바퀴 돌리면 어떨까 하는 생각이었습니다. 제 직업상 MCU 제어는 흔하게 하는 일이고 어줍잖은 C# 실력으로 간단한 PC 유틸리티까지 만들어서 연동하면 재밌겠다는 것이었죠. 일단 묻지도 따지지도 않고 LED 스트립부터 조사에 들어 갔습니다.

 

 

Addressable RGB LED Controllers - Tutorial

We're going to do a comparison of 3 types of Addressable RGB LED controllers (WS2812B, SK6812 and APA102C) and discuss why you would pick one type over the others. We look at control method, current draw per LED, color channel, brightness, PWM frequency a

core-electronics.com.au

LED 스트립용 LED 모듈에 들어가는 컨트롤러 IC를 살펴 보니 가장 흔한 것이 WS2812이더군요. 그런데 요 놈은 제어 방식이 구현하기에 살짝 까다로운 듯 하더군요. High 시그널과 Low 시그널의 간격 차이로 1과 0을 표시하는 방식인데 이러면 타이밍 제어가 아무래도 귀찮습니다. 이에 반해 APA102는 프로토콜 구조를 보니 SPI 방식이라 아주 편해 보였습니다. 거기다 상대적으로 고속 전송이 가능해서 효율적이고요.

 

 

US $7.26 32% OFF|Apa102 1 m ~ 5 m dc5v 디지털 스트립 라이트 스마트 led 픽셀 30/60/144 leds/m ip30/ip65/ip67 방수 개별적으로 주소 지정 가능 jq-에서LED 스트립부터 등

Smarter Shopping, Better Living! Aliexpress.com

ko.aliexpress.com

바로 APA102 칩이 들어간 LED 스트립을 구매하기 위해 알리익스프레스를 방문해서 1m 60LED 제품으로 하나 골랐습니다. 알리 특유의 지루한 한 달 여의 배송 기간이 흐르고...

 

드디어 도착!! 퇴근하고 집에 와서 시험삼아 LED 스트립 테스트용 간단한 프로그램을 만들어서 이상없는지 점검을 했습니다. 의도하던 데로 코딩이 가능할 듯 하고 LED도 모두 이상이 없어서 다시 봉인했습니다. LED 제어에 사용한 보드가 회사에서 잠시 빌려온 것이기도 하고 PC 본체에 넣기에는 크기가 커서 더 작은 것을 주문했습니다.

 

 

NUCLEO-G431KB - STMicroelectronics

NUCLEO-G431KB - STM32 Nucleo-32 development board with STM32G431KB MCU, supports Arduino connectivity, NUCLEO-G431KB, STMicroelectronics

www.st.com

제가 개발 경험이 많아 코딩하기 쉬운 STM32 MCU 시리즈의 개발보드 중 크기가 가장 작은 모델을 선택했습니다. 같은 크기로 여러 MCU 모델이 나오는데 LED 제어 용도로는 하위 모델로도 충분하다 못해 차고 넘칩니다만 G431이 안써본 신형 MCU이다 보니 호기심이 작용했습니다.

 

마침내 모든 하드웨어 준비 완료! Nucleo 보드는 포장 케이스를 적당히 자르고 구멍을 뚫어 서포터를 끼워 아래 쪽으로 제어용 신호선들을 연결하기 좋은 구조로 만들어주었습니다. USB 케이블은 케이스 밖에서 안으로 집어 넣어 연결해 줬고 SPI 신호선과 전원 라인은 아래로 연결해 주었습니다.

 

아랫부터 시작해서 오른쪽으로 타고 위로 올라가서 CPU 팬 윗 쪽까지 빙 둘렀습니다. 최대 밝기로 할 경우 눈이 너무 부시기도 하고 노출 잡기가 힘들어서 약간 비스듬히 촬영했습니다.

 

케이스를 뚜껑을 씌우면 요 정도 느낌입니다. 실제 눈으로 보는 것과 비슷하게 노출을 잡아 보느라고 셔터 스피드를 낮게 조절했더니 덕분에 수전증으로 인한 화면 흔들림이 있습니다. ㅠ.ㅠ 이렇게 보면 그럴싸할지는 몰라도 안 쪽으로는 이런 저런 이유로 별로 안 이쁘게 LED 들이 지나갑니다. PCB가 노출된 LED 스트립이다 보니 쇼트(단락) 걱정도 되고 말이죠.

 

어쨌거나 이제 하드웨어는 준비가 끝났고 이제 프로그램만 하면 맘대로 원하는 효과를 줄 수 있습니다. 다음 편에서는 그 방법에 대해서 간단히(라고 적었지만 아무래도 주화입마될 듯한 이 기분은???) 정리해 볼까 합니다.

반응형

'컴퓨터 / IT' 카테고리의 다른 글

XBOX ONE S 무선 컨트롤러  (0) 2019.08.18
LED 컨트롤러 제작기 2편  (0) 2019.07.31
Sabrent ROCKET NVMe SSD  (5) 2019.07.14
노트북 무선랜 업그레이드  (0) 2019.06.15
블루투스 헤드셋  (2) 2019.03.17