희주의 놀이터

반응형

이런저런 우여곡절 끝에 엠비언트 라이트를 완성했습니다.

 

엠비언트 라이트 만들기 #4 - 하이페리온(Hyperion) 설정, 완성(영상 시연), 과연 끝일까요!?!?

 

엠비언트 라이트 만들기 #4 - 하이페리온(Hyperion) 설정, 완성(영상 시연), 과연 끝일까요!?!?

요새는 주말마다 휴일마다 틈나는 대로 엠비언트 라이트에 올인하고 있는 중입니다. (덕분에 시간은 순삭.. 증발하고 있습니다. ㅋㅋㅋㅋ) 부품 주문부터 프로그램 설치까지는 나름 순조로운 시

heejubari.tistory.com

 

하지만 만들어가면서 계속 마음에 걸렸던.. 그리고 해결해야겠다고 꼭 생각했던 바로 그것!! "TV처럼 편하게 껐다 켰다가 가능한 LED 시스템을 만들어야 진정한 완성이다."라고 생각했습니다.

 

지금까지 만들었던 엠비언트 라이트는 수동으로 LED 전원을 제어하는 시스템입니다. 외부에서 파워서플라이에 공급되는 전원을 제어할 수 있는 방법이 없습니다. 구글에 검색을 하면 대부분 스마트 플러그 등으로 간단히 해결하라는 얘기들이 많았습니다. 이렇게 처리했다면 정말 간단하게 해결될 문제였습니다. 하지만 왠걸요!? 초보자 주제에 감히 머리를 굴리기 시작했습니다.

 

라스베리파이에서 뭔가 조건에 따라서 껐다 켰다 하는 코드? 프로그램?을 만들 수 있지 않을까? 아니면 어떤 장치가 있지는 않을까? 당연하게도 그런 장치가 있었습니다. (더불어서 삽질의 시간이 시작되었습니다..)

 

gma-log.tistory.com/78

 

릴레이 모듈 제어하기 -1.LED제어

릴레이 모듈이란? 라즈베리파이로 처음 IoT프로젝트를 하려는 분들은 가장해보고싶은것들 중 하나가 전력장치를 제어하는것일 겁니다. 릴레이모듈을 이용하면 집밖에서 원격으로 형광등의 불

gma-log.tistory.com

 

m.blog.naver.com/pcmola/221253425869

 

263. SRD-05VDC-SL-C : 5V 릴레이 테스트(아두이노 활용)

전에 자격루 만들 때 GPIO 핀 3.3V로 LED 를 켜려고 하니깐 불이 좀 어둡더라. 더 밝게 하는 방법...

blog.naver.com

 

릴레이 모듈이라는 친구를 이용하면 라즈베리파이에서 신호를 보내서 전기를 붙였다가 떨어뜨렸다 할 수 있습니다. 그리고 라즈베리파이와 관련한 다양한 정보들은 외국에서 활발하게 교류되고 있어서 영어로도 자료를 많이 찾아봤습니다.

 

엠비언트 라이트 만들기 번외편

 

 

 

하이페리온과 LED를 TV의 ON/OFF로 제어하기

그러다 발견한 자료가 바로 다음의 링크입니다.

 

hyperion-project.org/forum/index.php?thread/3677-powering-hyperion-and-leds-only-when-tv-is-on/

 

Powering Hyperion and LEDs Only When TV is On - Hyperion-Project Forum

While I didn't do a lot of searching on here for similar cases, here's what I did to ensure that Hyperion and the LED array is powered only when the TV is on:Issues Solved:Ambilight when TV is on.No additional power draw, of any sort, when TV is off.…

hyperion-project.org

 

위의 자료를 읽으면서 대박이다!! 라는 생각밖에 안들었습니다. 그리고 약간의 유머들을 섞어가면서 외국식 농담도 재밌게 읽었습니다.

 

- 엠비언트 라이트를 TV와 함께 작동시키고 싶다.

- 새는 전기를 잡을 수 있다. (1년에 대략 13불 정도..)

- 따로 LED 시스템에 리모컨이나 스위치를 달고 싶지 않다.

- Hassle free. High WAF (wife acceptance factor)

  우리말로 하면 와이프의 허락을 받을 수 있는 요건  정도가 될까요? ㅋㅋㅋㅋㅋ 사소한 다툼에서 프리 하다고 합니다. 

 

아무튼 이러한 이유로 글쓴이는 티비가 켜질 때 하이페리온이 같이 동작하는 시스템을 구축하려고 했답니다. 딱 제가 원하는 방법입니다. 필요한 것은 릴레이 묘듈(5V)과 TV의 USB 포트입니다. 저는 빔프로젝트의 전원과 연동하고 싶어서 뒷부분을 살펴보니 USB 포트가 하나 있습니다. USB는 괜찮고.. 릴레이 모듈은 사야 하나? 생각했는데.. 혹시나 싶어서 아두이노 스타터 키트를 찾아봅니다.

 

릴레이 모듈
영롱한 자태의 릴레이 모듈(5V)

 

아두이노 센서와 스타터키트를 이렇게 쓸지 몰랐는데.. 대박입니다. ㅋㅋ 하고 싶은 것이 생기면 하루도 참을 수 없는 저는 다행히 택배를 주문하고 초조하게 기다리지 않아도 됩니다. 그리고 딱 필요한 1채널짜리 모듈입니다. 이렇게 부품들을 사용할지 몰랐습니다만.. 아무튼 감사합니다.

 

스펙을 보면 250V에서 10A 까지 커버가 가능하다고 설명합니다. 전력(W)으로 보면 220V(우리나라 기준) * 10A = 2,200W(2.2kW) 까지 사용이 가능하네요. 꽤 넉넉한 용량입니다. (전열기들 빼고 다 사용이 가능할 듯..) 준비물도 다 있고, 머릿속에 어느 정도 그림이 그려졌으니 실행에 옮겨야겠습니다.

 

 

 

빔프로젝터 USB 연결

빔프로젝터 특성상 제 시스템이 몰려있는 스크린과 꽤많이 거리가 떨어져 있습니다. 그래서 랜선을 이용해서 스크린 쪽까지 USB를 연장시켜주었습니다. 턱 하니 거실 한복판으로 지나가면 보기가 싫으니 거실 창가 쪽으로 둘려서 선을 뽑아냅니다.

 

랜선을 이용한 유에스비 연장
랜선을 이용한 USB 연장 연장

 

쭉쭉 돌려서 라즈베리파이가 있는 곳까지 선을 뽑아둡니다. 길이가 모자라면 다른 랜선을 까서 계속 연결하면 됩니다. 의외로 랜선이 쓸모가 많습니다. 적당한 두께에 하나에 8가닥이나 들어있어서 자유롭게 쓰기 편합니다. 조금 얇은 게 단점이라면 단점인데 아직까지는 크게 문제가 없는 것 같네요.

 

 

 

릴레이 모듈 작업

릴레이 모듈 전선연결
릴레이 모듈 전선연결 및 라즈베리파이와 연결(납땜)

 

릴레이 모듈을 더 자세히 살펴보면 다음과 같습니다.

 

릴레이 모듈 설명
5v 릴레이 모듈 설명

 

왼쪽에 표시된 NO, C, NC로 표현된 부분이 전기를 제어하고자 하는 장치와 연결될 부분입니다. 일반적으로 NO(Normally Open) 이 주로사용됩니다. 일반적으로는 떨어져 있다가, 외부에 전기적인 신호(S 단자로 HIGH나 1이 들어올 경우)가 있으면 내부의 전자석이 붙어서 전기가 통하게 됩니다.

 

NC(Normally Close)는 이와 반대이겠죠. 외부신호가 없으면 계속적으로 전기가 통하는 상태입니다. 의외로 간단하면서도 외부장치를 적은 전압(5v)으로 제어가 가능합니다. 저는 NO를 이용해서 외부에서 신호를 보내면(라즈베리파이에서 HIGH를 쏴주면) 전기가 통하게 하려고 합니다.

 

 

pinout.xyz/

 

Raspberry Pi GPIO Pinout

Pinout! The Raspberry Pi GPIO pinout guide. This GPIO Pinout is an interactive reference to the Raspberry Pi GPIO pins, and a guide to the Raspberry Pi's GPIO interfaces. Pinout also includes dozens of pinouts for Raspberry Pi add-on boards, HATs and pHATs

pinout.xyz

 

라즈베리파이 번호
라즈베리파이의 GPIO 번호 - pinout.xyz

 

라즈베리파이의 핀들이 각각 어떤 역할을 하는지 잘 표시된 자료가 있어서 그대로 가져와 봤습니다. 처음에 헷갈려서 1번 위치를 40번부터 세어나가서 납땜을 두 번 하긴 했는데.. 1번 포트는 사각형으로 친절하게 표시가 되어 있습니다. 알고 보니까 쉬운데 헷갈리지 마시기 바랍니다.

 

처음에 제가 외국형님의 자료를 잘못 읽어서 (영어의 한계 ㅠㅠ, 분명히 설명을 잘해주고 계셨음) 따로 전기적인 신호를 쏴주지 않아도, 5V 출력 단자(위 그림에서 2번째와 4번째 포트)와 그라운드만 릴레이 모듈과 연결하면 작동을 하는 줄 알았습니다. 예시로 표시한 GPIO 4번이 물리적 위치가 아닌 GPIO 였음을 위의 그림을 보고 알았습니다.

 

연결한 릴레이모듈
+, - 만 달랑 연결한 릴레이모듈

 

그래서 위의 그림처럼 맨처음에는 Signal에 아무것도 연결하지 않은 채 라즈베리파이의 4번째 위치인 5V와 그라운드만 릴레이 모듈과 연결했습니다. (당연하게도 나중에 작동하지 않았음...)

 

참고로 코딩에서 사용될 포트의 위치를 표현하는 방법은 GPIO(BCM)으로 하는 방법과, 물리적 위치(BOARD)로도 표현이 가능합니다. 위의 그림을 보고서 이해했습니다. 이 그림을 보기 전까지는 코딩 자료에서 GPIO.BCM과 GPIO.BOARD 둘 다 사용해도 된다고 하는데.. 저는 무슨 차이가 있는 거지?? 했네요. 아무튼 알았으면 되는 거죠. ㅋㅋ

 

 

 

코딩 파일 작성 및 시험가동

시험가동
열심히 파이썬 파일 작성 및 시험가동

 

import RPi.GPIO as GPIO  # import RPi.GPIO module

from time import sleep  # lets us have a delay

GPIO.setwarnings(False)

GPIO.setmode(GPIO.BCM)  # choose BCM or BOARD

GPIO.setup(4, GPIO.OUT)  # set GPIO4 as an output

GPIO.output(4, 1)  # set GPIO4 to 1/GPIO.HIGH/True

 

setPowerPinHigh.py
0.00MB

 

처음 코드작성은 어렵지 않았습니다. 텍스트 편집기에서 주어진 코드를 작성하고 저장만 하면 되니까요. 그런데 다음 단계인 자동실행 폴더가 없는 겁니다. 별의별 검색어를 넣어서 구글링을 해봤지만 뚜렷한 답이 나오지 않습니다. 그래서 과감하게 노선을 변경했습니다.

 

 

 

rc.local 을 이용한 자동실행

m.blog.naver.com/emperonics/221770579539

 

라즈베리파이 부팅시 프로그램(스크립트) 자동 실행시키는 5가지 방법

라즈베리파이 부팅시 프로그램 자동 실행시키는 5가지 방법 안녕하세요! 이번시간에는 라즈베리파이 부팅시...

blog.naver.com

 

라즈베리파이에서 프로그램이 자동으로 실행되게 하는 방법은 다양합니다. 외국 형님의 경우 xdg 폴더에 있는 autostart 라는 파일을 수정해서 파일을 실행시켰는데 제가 설치한 Hyperbian 에는 그런 폴더가 없습니다. 임의로 만들기도 그렇고, 다른 방법을 이용합니다. 위 블로그의 rc.local을 이용해보겠습니다.

 

coding-chobo.tistory.com/68

 

부팅시 rc.local 활성화 (부팅시 스크립트 자동 실행)

1. "rc.local" 파일의 실행 권항을 부여하기 위해 아래의 명령어를 입력합니다. # chmod +x /etc/rc.d/rc.local 2. 아래의 명령어로 "rc-local.service"의 상태를 확인합니다. # systemctl status rc-local.servi..

coding-chobo.tistory.com

 

일단 rc.local이 활성화 되어 있는지 확인하는 방법이 있네요. 잘 동작하는지 살펴봅니다.

 

잘 동작하는 로컬
잘 동작하는 rc.local

 

잘 움직인다는 것이 확인되었으니 rc.local 파일을 수정합니다.

 

rc.local 에 프로그램 자동실행 코드 삽입

 

sudo python /boot/home/pi/setPowerPinHigh.py

 

위의 명령어를 fi와 exit 0 사이에 넣어줍니다. 이제 재부팅을 해봅니다. 그런데?!?!? 아무런 반응이 없습니다. 라즈베리파이만 켜지고 릴레이 모듈에서 아무런 소식이 없습니다. 뭔가 이상하다는 생각과 함께 이제야 알게 되었습니다. (당연한 것이었지만) 릴레이 모듈에 명령을 내릴 신호가 없었습니다.

 

부랴부랴 GPIO 14번 포트와 릴레이묘듈의 Signal을 잘 연결해줍니다. 릴레이 모듈은 이제 잘 작동하는 데 문제가 발생했습니다. 화면이 정상적으로 나오지 않습니다. ㅠㅠ

 

 

 

3차 비상상황 발생(USB 허브 전원부족)

분명히 어제만 해도 잘 나왔던 LED 시스템인데.. 어떻게 만든 작품인데 이렇게 안되다니!! 왜!? 어째서? 뭐가 문제야??

 

항상 문제가 발생하면 역으로 잘되었을 때까지 내가 했던 행동들을 잘 돌아보면 답이 있습니다. 뭐를 내가 바꿨을까?? 릴레이 모듈이 문제일까? 이건 전기만 연결시키고 끊는 역할이라 크게 상관이 없어 보입니다. 그렇다면 남은 것은 라즈베리파이에 공급되는 전원을 빔프로젝터에서 연결한 것입니다.

 

어쩐지 화면도 나오지 않고, 한창 작동을 하면 캡쳐보드도 뜨끈뜨끈해져 있어야 하는데 손을 가져다대니 시원합니다. 이건 뭔가 허브쪽으로 전원이 부족한 것이 분명하다는 생각을 합니다. 예전에 무전원 USB 허브에 외장하드등을 꼽으면 작동을 잘 하지 않았던 것과 비슷합니다. 의심을 확신으로 바꾸기 위해 실험을 하나 합니다.

 

파워서플라이와 라즈베리파이 직결
파워서플라이와 라즈베리파이 직결

 

빵빵한 5V 출력을 자랑하는 파워서플라이와 라즈베리파이를 직접 연결시켜주었습니다. 그랬더니 거짓말같이 모든 것이 잘 작동합니다. 화면도 잘 나오고 캡쳐보드도 정상적인 전력이 공급되었는지 열기를 뿜뿜 뿜어내고 있습니다. 허브에 전원이 부족했던 것이 이유였네요. 그런데 이게 문제입니다.

 

제가 굳이 전력량도 딸리는 빔프로젝터와 라즈베리파이 전원부를 연결한 것은 빔의 전원 제어와 함께 라즈베리파이가 동작하도록 위함입니다. 그런데 위의 해결책처럼 파워서플라이로 직결을 하면 릴레이 모듈은 제가 전원코드를 뽑지 않는 이상 계속 연결 상태가 됩니다. 이러면 지금까지의 삽질이 의미가 없습니다. 뭔가 방법을 찾아야 합니다.

 

 

 

무전원 USB 허브 개조(두드려라!! 그럼 열릴 것이다..)

라즈베리파이로 외부 전원을 공급할 수는 없고.. 머리가 아픕니다. 그런데 문득 아니 그럼 USB 허브로 전원을 직결하면 되지 않을까?라는 생각을 합니다. 이게 가능한 일인지 잠시 의심은 했지만 그 의심도 잠시.. 이 일을 행하신 블로그 선배님이 계셨습니다.

 

https://lkcorp.tistory.com/entry/무전원-USB허브를-유전원-USB허브로-개조하기

 

무전원 USB허브를 유전원 USB허브로 개조하기

라즈베리파이를 실시간 방송 스트리밍용으로 셋팅하려고, 무선랜카드를 USB포트에 연결하였습니다. 그랬더니, USB를 이용한 리모컨이 작동이 원활하지 않더군요.. 라즈베리파이의 USB 출력전류가

lkcorp.tistory.com

 

역시 ㅋㅋㅋㅋ 세상은 넓고 고수님들은 많습니다. 이 글을 보고 이거다!! 싶은 생각이 듭니다. 바로 실행에 옮깁니다.

 

알리발 허브
기어이 사용되는 알리발 USB 허브

 

다있어에서 산 허브는 차마 뚜껑을 따기가 그래서 마침 도착한 알리발 USB 허브를 개조하기로 마음먹었습니다. 허브가 2개나 생겨서 망했다..고 생각했지만 그래도 다 쓰임이 있었구나 하면서 위로하는 중입니다.

 

무전원 허브 개조
무전원 USB허브 개조하기

 

새제품이라서 그런지 기분 탓인지 그래도 나름 깔끔하게 마감이 되어 있습니다. 뚜껑을 열어보니 실리콘으로 외부와 쇼트 나지 않게 잘 마무리되어 있습니다. 조심스럽게 제거한 뒤에 인두를 지져서 연결되어 있는 VCC(빨간선)를 떼어내 줍니다. 개조를 단행하신 블로그 선배님의 글에도 잘 나타나 있는데, 기존에 빨간선을 그대로 두고 새로운 선을 같이 연결해도 된다고 했습니다.

 

하지만 그렇게 하면 변덕스러운 외부 전압(파워 서플라이로부터의 불규칙한 전압)에 의해 허브와 연결된 다양한 제품들(저에게는 라즈베리파이나 아두이노 등)에 영향을 줄 수도 있다고 합니다. 외부 전원의 연결이 없을 때에도 허브를 사용할 수 있다는 장점은 있지만 저는 허브를 상시로 거치하면서 전원을 공급할 예정이므로 2번째 방법으로 진행합니다.

 

기존에 연결된 VCC를 제거하고 외부 전원으로만 연결하면 누설전류에 대해 안전하다고 합니다. 그리고 그라운드(GND)는 기존의 것을 그대로 연결해 둬야 합니다. 그래야 장치에서 허브를 인식할 수 있다고 하네요. 사진으로 표현이 잘 되어 있는지 모르겠는데 (납땜하느라 사진을 잘 못 찍었습니다.. 죄송 ㅠㅠ) 맨 윗부분에 절연테이프로 감겨있는 부분이 기존에 연결되어있던 빨간선이고 주황색선이 제가 추가로 연결한 전선입니다. 그리고 흰색선을 기존 그라운드와 함께 납땜해줍니다.

 

마지막으로 두 가닥의 전선이 나와야 하니 끝부분을 니퍼로 살짝 부셔서 공간을 확보했습니다. 이제 USB에 외부 전원이 공급이 잘 되니 마지막 단계로 가야겠죠.

 

 

 

라즈베리파이 파이썬 스크립트 변경 및 테스트

자동실행 스크립트 수정
자동실행 스크립트 수정

 

아까 연결하지 못했던 릴레이 모듈과 라즈베리파이를 잘 연결해줍니다. 저는 GPIO 14번과 연결시켰습니다. 꼭 저 포트가 아니어도 됩니다. 연결하신 곳의 숫자만 바꿔주시면 됩니다.

 

잘 동작하는지 스크립트를 짜서 확인합니다. 출처가 따로 있는 소스코드였는데 도저히 홈페이지를 못 찾겠습니다. ㅠㅠ 원코드 작성자님께 죄송합니다. 크게 기술적인 내용이 들어간 스크립트는 아니지만 그래도 출처를 밝히는 게 맞는 듯한데.. 나중에라도 찾으면 꼭 남겨두겠습니다.

 

import RPi.GPIO as GPIO

import time

 

GPIO.setmode(GPIO.BCM)

GPIO.setup(14,GPIO.OUT)

 

#Camera Ready

time.sleep(10)

 

print "ON"

GPIO.output(14,True)

 

time.sleep(10)

 

print "OFF"

GPIO.output(14,False)

 

GPIO.cleanup()

 

relaytest.py
0.00MB

 

릴레이모듈 작동 테스트 영상

 

잘 작동합니다. 딸깍거리는 소리에 속이 다 시원~~~ 합니다. ㅋㅋㅋㅋ

 

 

 

동작 테스트 및 완성(정리)

이제 모든 것이 다 준비되었으니 마무리 작업을 해봅니다.

 

부품 연결 및 테스트
모든 부품 제자리에 연결 및 테스트

 

부품들을 잘 연결해주고 빠진 부분은 없나 확인하고, 빔프로젝터를 작동시킵니다. 라즈베리파이가 제대로 부팅되기까지 대략 40초~1분 사이 릴레이 모듈이 몇 번 켜졌다 꺼졌다를 반복하다가 부팅이 완료되면서 비로소 작동을 합니다. 모든 기기에 전원이 잘 들어가고 LED도 정상적으로 작동하는 것을 확인했습니다.

 

테스트 영상1

 

크.. 영롱한 빛깔에 넋이 나갔습니다. 너무 멋있습니다.

 

 

테스트 영상2

 

다음 테스트 영상도 잘 동작하는 것을 확인했습니다. 이제 시스템이 잘 동작하는 것을 확인했으니 깔끔하게 정리합니다.

 

거실 초토화
난리가 난 거실...

 

뒤를 돌아보니 진짜 난리가 난리가 아닙니다. ㅋㅋㅋㅋ 치우려 하니 엄두가 나지 않지만 힘내서 정리합니다.

 

정리작업
나름 깔끔히 정리(라 쓰고 구겨넣기..)

 

상자 같은 것을 둬서 안 보이게 잘 정리해야 하나 생각했는데 일단 이대로 나름 볼만합니다. 그리고 점점 날이 더워지면 쿨링에도 문제가 있을 수 있으니 뭔가 대책을 생각해보긴 해야겠습니다. 그건 나중 문제로 하겠습니다. 여기서 더 손을 대면 끝이 없을 것 같아서...

 

 

이렇게 길었던 엠비언트 라이트 만들기 시리즈가 종료되었습니다. 맨 처음 아두이노의 '아'자도 모르던 초보가 라즈베리파이에 엠비언트 라이트까지 그냥 무작정 덤벼봤습니다. 사실 아직 코딩도 할 줄 모르고, 대충 몇 번 수정하면서 감만 알았다 뿐이지 갈길이 멉니다. 그래도 긍정적인 것은 나도 할 수 있겠다..라는 자신감이 생겼다는 점이네요.

 

뭐가 되든 (근거 없는) 자신감은 중요합니다. ㅋㅋㅋㅋㅋ 시작이 반이니까요. 스타트를 잘 끊었으니 다음에 또 어떤 걸 만들어 볼지 고민입니다. 추후에 엠비언트 라이트 시스템에 업그레이드나 변경사항이 있으면 또 글 남기겠습니다. 혹시라도 이 글을 보고 저처럼 관심이 생기신 분이 1명이라도 더 있었길 바라면서 부족하지만 도움이 되는 내용이었으면 좋겠네요. 한번 해보세요!! 결코 어렵지 않습니다. -끝-

 

 

 

 

 

 

시연 영상 투척

지난 글에서 투척한 영상 다시 찍음.. - 필립스 엠비언트 라이트 홍보영상

 

개인적으로 어벤저스의 전투씬을 좋아해서 (특히 토르가 등장하는 장면) 영상 촬영을 했었는데 올리지는 못하겠네요. 아무래도 저작권도 문제가 될 것 같아서.. 문제없을까요? (유튜브 영상을 재생하긴 했지만..) 아무튼 잘 동작하고 있습니다. 전원제어도 빔과 함께 잘되네요.

공유하기

facebook twitter kakaoTalk kakaostory naver band