본문 바로가기
창고/R.AM.P

[Raspberry Pi] boblightd 컴파일과 boblight.conf 만들기

by 신의손길 2013. 1. 20.

Raspberry-Pi(이하 Rpi) Boblight 데몬 컴파일

컴파일전에 Rpi의 펌웨어 업그레이드 http://iambongsu.com/358

컴파일 환경에 대한 업데이트 (Raspbmc 기준임. 배포본에 따라 이미 설치된 것도 있을 수 있음)

sudo apt-get update && sudo apt-get -y upgrade

sudo apt-get -y install libusb-1.0-0-dev g++ gcc gawk mawk libx11-dev libgl1-mesa-dev libxrender-dev libxext-dev portaudio19-dev libavcodec-dev libavformat-dev libswscale-dev libavdevice-dev subversion make

(home/pi 위치에서)
svn checkout http://boblight.googlecode.com/svn/trunk/ boblight-read-only

cd ./boblight-read-only/

./configure --without-portaudio --without-opengl --without-x11 --prefix=/usr

sudo make && sudo make install

(부팅시 자동시작에 등록)

sudo vim /etc/rc.local
* 맨 마지막줄에 boblightd -f 추가


데몬 컴파일 및 설치 완료. 이제 Adalight를 Rpi에 사용할 환경설정파일 구성(윈도우 필요)

아래의 내용으로 설정을 완료한 후 wget 이나 삼바, FTP 등을 이용해 설정파일을 etc/boblight.conf 에 저장


환경설정값 계산시 필요한 유틸리티

rpi_conf.zip

pcalc.exe : shift 연산이 가능한 계산기 프로그램 (prefix 값 계산을 위해서 필요)



Expression 에 계산식을 넣고,

Calculate 를 클릭하고,

Hex 에 해당하는 값에서 0x와 0(영,zero)을

제외하고 끝의 정수(실제로는 16진수)를

값으로 사용한다.

※ 공식은 아래 conf 파일 설명에서 참고




BoblightConfigTool.exe : boblight.conf를 생성해주는 프로그램 (LED의 위치 좌표를 자동 계산하기 위해서 필요)

## 사용방법을 설명은 하겠지만, 정확히는 감으로 이해했으므로 정확하지 않을 수 있음을 알림 ##

1. 방향을 설정(위는 역방향, Sub-Right 의 맨 왼쪽이 1번으로 시작됨)하고, 상단에 Edge Correction 체크.
   ** 각 LED 의 위치값은 화살표로 좌우된다. 다시말해, 설치와 관련이 있다.
       위 사진데로 할 경우 우측 아랫쪽에 첫번째 LED가 설치되어야 한다. 우측 아래 8개 중 왼쪽이 1번이 되려면
       위 설정값을 conf 파일을 만들고, 설정파일에 ambilight 1 ~150 값을 모두 손봐야 한다.

2. 각 위치에 대한 LED 갯수를 채워넣는다.
   ※ 그림의 예시 : 8+10+18+10+8=54 이지만, 우측위에 채널수가 50이라고 표기된다. 각 코너의 중첩되는 수 4를 제한 것.
                          따라서, LED 수를 기입할 때도 중첩되는 부분까지 수에 포함하여 입력.

3. Device Settings는 별로 의미가 없다. 다 수동으로 입력해야 한다.

4. Color Settings 중 RGB-LED 모듈에 따라 순서가 RGB가 아니라 BGR인 경우도 있다. 그리고, gamma의 권장값은 2.0 이다.

5. BlockSettings는 감지할 영역의 위치/크기 등을 조절(좌표값)하는 옵션이다.

6. 가운데, generate 를 클릭하고, 경로와 이름을 정해줘서 저장한다.

//////////////////// boblight.conf 파일(위에서 생성한 내용과 다름)  //////////////////////
/// [device] 부분은 사용 조건이 Adalight와 Rasberry Pi를 사용한다면 아래와 똑같이.. ///

#dalight from http://www.ladyada.net/make/adalight/
[global]
interface   127.0.0.1
port        19333
[device]
name        ambilight # 이름은 마음데로 바꿔도 되나, 아래 [light] 의 RGB 옆에 이름들도 바꿔줘야 함
output   /dev/ttyACM0 # Adalight를 USB로 연결하고, dmesg나 lsusb 등 연결상태 확인
channels    150  # 설치한 LED 갯수에 따라 틀림. RGB-LED의 갯수 x 3)
type        momo
interval    10000
prefix      41 64 61 00 31 64
# 설치한 LED의 갯수에 따라 틀림. 일정 형식에 따라 계산해야 함.
# 설치한 LED갯수가 50개라 가정하고, prefix 값의 세자리 41 64 61 은 'A' 'd' 'a' 의 hex 값.
# 나머지 세자리는 첨부한 pcalc.exe로 아래의 공식에 따라 계산, 계산값의 hex 를 사용.
# (50-1)>>8 : 설치 LED 갯수가 수백개가 아니라면, 대부분 0 (LED count high byte)
# (50-1)&0xff : 31 (LED count low byte)
# ((50-1)>>8)^((50-1)&0xff)^0x55 : 64 (Checksum) rate        115200  # 통신속도
debug   off
delayafteropen    1000000
[color]  # RGB 세 색에 대한 정의. LED 모듈에 따라 RGB가 아니라 BGR이 될 수도 있다. name        red
rgb         FF0000
gamma       1.0
adjust      1.0
blacklevel  0.0
[color]
name        green
rgb         00FF00
gamma       1.0
adjust      1.0
blacklevel  0.0
[color]
name        blue
rgb         0000FF
gamma       1.0
adjust      1.0
blacklevel  0.0
[light]  # LED 각 위치에 대한 정의로 첨부한 BoblightConfigTool.exe를 이용해 해당 값만 사용. name        SubLeft7
color       red     ambilight 1
color       green   ambilight 2
color       blue    ambilight 3
hscan       5 11
vscan       80 100
[light]
name        SubLeft6
color       red     ambilight 4
color       green   ambilight 5
color       blue    ambilight 6
hscan       11 16
vscan       80 100

//////////////////// amblight (x) 의 수가 channels 갯수만큼 더 늘어남.. 이하 생략 /////////////////////

Adalight를 Rpi에 연결한 후 테스트는 아래의 명령어로..

boblight-constant ff0000
(적색으로 모두 켜지면 정상. 뒤에 여섯자리는 RGB 색상코드에 대한 hex값)


# 참고 URL

http://code.google.com/p/boblight/w/list

http://forum.xbmc.org/forumdisplay.php?fid=166

http://forum.stmlabs.com/forumdisplay.php?fid=7

http://github.com/Stasik0/omxplayer