안녕하세요?
요즘 집에서 영화를 보거나 TV를 시청하시는 분들이 많으시죠?
저도 요즘 들어 집에 있는 시간이 많다 보니 이것저것 유튜브를 보다가 우연히 TV ambient light라는 것을 알게 되었습니다.
위에서 보는 것 같이 제대로 눈뽕이 오고 말았습니다.
구입하려고 알아봤는데 금액이 30만 원이 넘는 어마어마한 가격이더군요.
그래서 좀 더 알아보니 직접 제작도 가능하며, 금액도 훨씬 저렴하게 구현이 가능할 거 같아서 만들어 봤습니다.
일단 필요한 기기부터 설명드리겠습니다.
- LED WS2812 3미터 ( 저는 40″ 모니터에 장착했습니다.)
- 5V 10a 파워 서플라이 ( ws2812 기준 1미터당 led 개수 60, led 하나당 60ma 소비)
- 사요미 미 박스입니다 (입력 소스는 사용자 선택)
- HDMI 분배기 (하나의 기기에서 동시에 두 개 이상으로 출력)
- USB 허브 (라즈베리파이 제로 사용 시만 필요)
- HDMI 캡처보드
- 라즈베리 파이 제로
- HDMI 선택기 (여러 HDMI 장비 사용 시 필요)
- 아두이노 나노 (LED 제어에 사용 )
위와 같은 준비물이 필요합니다.
모두 국내에서 구입한 부품으로 구입했습니다.
알리익스프레스를 사용하면 비용은 좀 저렴해질 수 있으나 큰 가격차이가 아니면 국내에서 구입하는 편입니다.
- led ws2812 구입처는 네이버 쇼핑에서 구입했습니다. (아래 링크는 WS2812 입니다. WS2812B로 구입하시는게 더 좋습니다.)
아두이노 5V WS2812 RGB LED 스트립 1미터 블랙 60등 규격 비방수 : 송파 메이커 스페이스 (naver.com)
저는 ws2812 60으로 구입했는데 30으로 사용해도 크게 문제가 될 것 같지는 않습니다. 60은 1미터에 led 60개 30은 1미터에 led 30개입니다.
- 5V 10A 전원 아답터
민웰 SMPS LRS 50-5 [5V 10A] 파워서플라이 : FA마켓 (naver.com)
아답터는 만드실 길이에 사용될 led의 전력 소모를 계산하셔서 구입하시면 됩니다.
저는 사용 led개수가 160개 여서 60ma x 160= 9.6a가 필요해서 10a 파워를 구입했습니다.
- 샤오미 미 박스 – 기존 사용품
샤오미 미 박스는 지존에 사용하던 장비이며, 영상 플레이 소스가 있으시면 됩니다.
- HDMI 분배기
리버 네트워크 넥시 NX-4 K0102 SPM : 네이버 쇼핑 (naver.com)
제가 사용하는 장비입니다. 네이버나 여러 쇼핑몰에 여러 가지 장비가 많으니 검색하셔서 구입하시면 됩니다.
HDMI SPLITTER로 검색하셔도 됩니다.
- USB 허브
USB 허브는 제가 라즈베리파이 제로를 위해 사용했습니다. 라즈베리파이 1,2,3 사용자 분들은 USB가 라즈베리 파이에 있으니 없어도 무방 합니다.
- HDMI 캡처보드
4K 입력 HDMI to USB 캡처보드 게임 동영상 편집 닌텐도 스위치 캡처 녹화 영상 PC 노트북 연결 : 제이피엘 플라자 (naver.com)
제가 구입한 제품은 크기가 작아서 선택했습니다. 최대한 양덕분들의 글들을 봐가면서 비슷한 모양의 제품을 구입했습니다.
- 라즈베리파이 제로
Raspberry Pi Zero W / 디바이스 마트 (devicemart.co.kr)
라즈베리파이 제로 W입니다. 설정 변경 등의 부분을 네트워크로 하다 보니 무선랜 되는 모델로 구입했습니다.
- HDMI 선택기
케이엘 시스템 케이 엘컴 5:1 HDMI 선택기 : 네이버 쇼핑 (naver.com)
여러 HDMI장비를 사용할 때 편하도록 사용했습니다.
- 아두이노 나노
아두이노 나노 보드 Nano Board, 헤더 비 납땜 : 송파 메이커 스페이스 (naver.com)
준비물이 좀 많지요? 여기에 HDMI 케이블도 4개 정도 필요합니다.
일단 연결도를 설명드리면, 영상 재생기기에서 HDMI 출력을 HDMI 분배기를 통해 동일한 영상을 두 개로 출력을 보내 하나는 모니터나 TV로 바로 출력 보내고 다른 하나는 HDMI 캡처보드를 통해 라즈베리파이로 보내고 이것을 아두이노가 연결된 LED로 신호화 해서 LED를 작동하는 것입니다.
참 쉽죠 ㅋㅋㅋㅋ.
참고한 영상은 아래와 같습니다.
영어로 머라 머라 하는 데 그냥 따라 하시면 됩니다.
이제 슬슬 작업을 시작해 볼게요
먼저 LED를 TV나 모니터에 부착합니다.
사용되는 LED 개수를 파악하기 위함입니다.
코너 부분은 절단 후 연결
같은 쪽에 배선으로 코너를 마무리합니다.
요런 식으로 진행합니다.
전체적으로 이런 식으로 진행
위와 같이 led를 장착하신 후 led가 몇 개인지 파악해 두세요!!
이제 아두이노에 프로그램을 설치하시면 됩니다.
https://www.arduino.cc/en/software
위 사이트에서 자신에 맞는 운영체제용를 다운로드합니다.
just download로 다운로드
다운로드한 파일을 설치 후 실행합니다.
GitHub – shrocky2/Hyperion: Hyperion Ambient Light Project
위 사이트에 ArduinoCode를 보면 다음과 같습니다.
#include "FastLED.h"
// How many leds in your strip?
#define NUM_LEDS 110
// For led chips like Neopixels, which have a data line, ground, and power, you just
// need to define DATA_PIN. For led chipsets that are SPI based (four wires - data, clock,
// ground, and power), like the LPD8806 define both DATA_PIN and CLOCK_PIN
#define DATA_PIN 6
#define CLOCK_PIN 13
#define COLOR_ORDER RGB
// Adalight sends a "Magic Word" (defined in /etc/boblight.conf) before sending the pixel data
uint8_t prefix[] = {'A', 'd', 'a'}, hi, lo, chk, i;
// Baudrate, higher rate allows faster refresh rate and more LEDs (defined in /etc/boblight.conf)
#define serialRate 500000
// #define serialRate 460800
// Define the array of leds
CRGB leds[NUM_LEDS];
void setup() {
// Uncomment/edit one of the following lines for your leds arrangement.
// FastLED.addLeds<TM1803, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<TM1804, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<TM1809, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<WS2811, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<WS2812, DATA_PIN, RGB>(leds, NUM_LEDS);
FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
// FastLED.addLeds<UCS1903, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<UCS1903B, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<GW6205, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<GW6205_400, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<WS2801, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<SM16716, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<LPD8806, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<WS2801, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<SM16716, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<LPD8806, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
// initial RGB flash
LEDS.showColor(CRGB(255, 0, 0));
delay(500);
LEDS.showColor(CRGB(0, 255, 0));
delay(500);
LEDS.showColor(CRGB(0, 0, 255));
delay(500);
LEDS.showColor(CRGB(0, 0, 0));
Serial.begin(serialRate);
Serial.print("Ada\n"); // Send "Magic Word" string to host
}
void loop() {
// wait for first byte of Magic Word
for(i = 0; i < sizeof prefix; ++i) {
waitLoop: while (!Serial.available()) ;;
// Check next byte in Magic Word
if(prefix[i] == Serial.read()) continue;
// otherwise, start over
i = 0;
goto waitLoop;
}
// Hi, Lo, Checksum
while (!Serial.available()) ;;
hi=Serial.read();
while (!Serial.available()) ;;
lo=Serial.read();
while (!Serial.available()) ;;
chk=Serial.read();
// if checksum does not match go back to wait
if (chk != (hi ^ lo ^ 0x55))
{
i=0;
goto waitLoop;
}
memset(leds, 0, NUM_LEDS * sizeof(struct CRGB));
// read the transmission data and set LED values
for (uint8_t i = 0; i < NUM_LEDS; i++) {
byte r, g, b;
while(!Serial.available());
r = Serial.read();
while(!Serial.available());
g = Serial.read();
while(!Serial.available());
b = Serial.read();
leds[i].r = r;
leds[i].g = g;
leds[i].b = b;
}
// shows new values
FastLED.show();
}
참 복잡하죠?????
어려울 것은 없습니다. 우리가 변경해야 될 것은 딱 두 개입니다.
define NUM_LEDS 110 부분에서 110 부분을 자신이 사용한 LED 개수로 변경
ex : define NUM_LEDS 160
define DATA_PIN 6 부분을 자신이 연결할 데이터 통신용 아두이노 pin번호
(그냥 아두이노 6번 사용하시면 됩니다.)
위 코드를 전부 복사해서 실행한 스케치 프로그램에 붙여 놓으면 됩니다.
밑줄 부분은 자신에 맞게 수정
상단의 툴 클릭 후 라이브러리 관리 클릭
fastled를 검색 후 설치합니다.
그 후 다시 툴 메뉴에서 보드 선택 후 구입하신 아두이노 모델 선택
그 후 다시 툴에서 프로세서를 old bootloader 선택
다시 한번 툴에서 포트를 선택 후 아두이노 보드 선택
이제 완료가 되었습니다. 프로그램을 아두이노에 업로드하면 됩니다.
상단의 -> 표시를 선택하여 업로드하면 됩니다.
여기까지 글 쓰는 시간이 장비 완성하는 시간보다 거 걸린 거 같아요 ㅡㅡ;
1부는 여기서 마무리하고 2부에서 이어서 작성하겠습니다.
여기까지 완료하셨다면 반은 완료된 상태입니다.
2부는 여기서 필립스 휴 조명은 가라~~~ 2부 (tistory.com) 확인하세요!
그럼 오늘은 여기까지 ^^?
'▩ DIY ▩' 카테고리의 다른 글
필립스 휴 조명은 가라~~~ 티비 엠비언트 라이트 만들기 3부 (13) | 2021.02.24 |
---|---|
필립스 휴 조명은 가라~~~ 티비 엠비언트 라이트 만들기 2부 (5) | 2021.02.23 |
안쓰는 조이스틱으로 게임기 만들기 (0) | 2020.10.02 |
알리 발 핸들 커버 DIY (0) | 2020.04.18 |
ODROID GO Advance micro 5pin Charging port DIY (0) | 2020.02.08 |
댓글