關(guān)鍵字: Raspberry Ambilight Hypercon hyperion
寫這個流程的緣由
其實我已經(jīng)用上這個一年了, 然而一次手賤調(diào)試時在電腦上hypercon遠程把hyperion刪了, 導致點安裝也不好用, 就從頭再來吧, 索性也不是從頭開始, 設(shè)備都接好了, 只差系統(tǒng)
參考:
教程1 http://tuohuang.info/build-ambilight-with-raspberry-pi-part-one#.WYnTEtP5j_8
教程2 http://tuohuang.info/build-ambilight-with-raspberry-pi-part-two#.WYnTCNP5j_8
英文1: https://ajpawelski.wordpress.com/how-to-raspberry-pi-raspbmc-hyperion-and-a-ws2801-strip-2/
英文2: http://raspberry-at-home.com/ambi-tv-ampilight-effect-from-any-video-i-e-hdmi-source/
什么是流光溢彩
- 流光溢彩來自飛利浦電視技術(shù), 通過對畫面邊緣的燈光效果, 來達到擴展屏幕光影的效果, 飛利浦的技術(shù)有可能是多微型投影儀, 因為投影出來的效果不是燈泡能達到的
- 不過有老外通過彩色燈帶的控制, 做出了類似的效果
這不算什么新技術(shù), 大概在10年就已經(jīng)有老外在開發(fā)這個項目, 玩這個在會diy的人眼里也算有些過時了 - 這個項目也是我在將近一年前做的, 對樹莓派也不了解, 網(wǎng)上各種查資料, 其實并不難, 有點動手能力的都可以搞, 即便你不動linux命令, python寫法以及gpio語法
準備設(shè)備
- 樹莓派1代以上, 也就是只要是樹莓派都可以
- usb capture采集卡, 我用的是XXX L240 USB視頻采集卡(輸入命令"dmesg | grep usb"得到的是 usbtv Fushicai USBTV007 Audio-Video Grabber, 驅(qū)動裝好后lsusb顯示為Bus XXX Device XXX: ID 1b71:3002, 無名稱)
- hdmi -> av 轉(zhuǎn)換器
- hdmi 1in2out 一進二出
- (可選)hdmi 3/4/5in1out 如果你需要多輸入需要買, 比如切換視頻盒子/ps4/xbox/電視機信號, 如果輸入源只有一個那么就可以省點錢
- 5v 10a的開關(guān)電源, 買穩(wěn)壓好一些的, 穩(wěn)壓差會導致led閃爍, 我這一年來被晃的不行, 一直以為是樹莓派控制的不好, 后來玩nodemcu發(fā)現(xiàn)燈帶本身有寄存器, 不存在不發(fā)送數(shù)據(jù)會導致閃爍的問題, 于是我在電源端還加了濾波電容
- ws2811/ws2812燈帶30顆/米 or 60顆/米都可以, 如果不想顯示的特別細膩, 可以選擇30顆的, 買10塊錢左右一米的即可 (ws2801不是不可以, 貴, 筆者買這個只是圖5v, 后來發(fā)現(xiàn)基本上都能找到5v的, 買這個燈30顆的價格相當于買ws2812 60顆的價格)
- 燈帶的另一個選擇APA102, 油管有人在16年制作了144燈珠/米的效果, 相比30顆/米燈珠分辨率高了很多, 飛利浦也許是微型投影, 也許是這種密集led集成, 看demo
https://www.youtube.com/watch?v=VG4o7_B4POU
- 燈帶的另一個選擇APA102, 油管有人在16年制作了144燈珠/米的效果, 相比30顆/米燈珠分辨率高了很多, 飛利浦也許是微型投影, 也許是這種密集led集成, 看demo
連接方法
我畫了個流程圖, 思維導圖的方式更直觀一些
給樹莓派安裝系統(tǒng)
刷鏡像
http://www.reibang.com/p/5dc83db2b78e
需要注意的是, 寫入鏡像需要很長時間, 耐心等待
- 注意, 如果出現(xiàn)raspberrypi-net-mods結(jié)尾問題 嘗試下面方式燒錄(筆者試了下面這個170705, 默認方式和軟件方式寫入都會出現(xiàn)這個錯誤, 下面這個命令行寫入就沒有這個問題)
sudo dd bs=1m if=/path/to/Downloads/2017-07-05-raspbian-jessie.img of=/dev/rdisk2 conv=sync status=progress
- 也有老外用python來批處理這個問題
#!/usr/bin/python
# 8th November, 2009
# update manager failed, giving me the error:
# 'files list file for package 'xxx' is missing final newline' for every package.
# some Googling revealed that this problem was due to corrupt files(s) in /var/lib/dpkg/info/
# looping though those files revealed that some did not have a final new line
# this script will resolve that problem by appending a newline to all files that are missing it
# NOTE: you will need to run this script as root, e.g. sudo python newline_fixer.py
import os
dpkg_path = '/var/lib/dpkg/info/'
paths = os.listdir(dpkg_path)
for path in paths:
path = dpkg_path + path
f = open(path, 'a+')
data = f.read()
if len(data) > 1 and data[-1:] != '\n':
f.write('\n')
print 'added newline character to:', path
f.close()
解決方案都來自帖子:
https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=187936#p1185337
也可以使用 ApplePi-Baker.app 進行傻瓜安裝
https://www.tweaking4all.com/hardware/raspberry-pi/macosx-apple-pi-baker/
使用國內(nèi)源更新速度快
deb http://mirrors.aliyun.com/raspbian/raspbian/ jessie main non-free contrib
deb-src http://mirrors.aliyun.com/raspbian/raspbian/ jessie main non-free contrib
安裝流光溢彩程序
安裝時可能需要很長時間, 請耐心等待
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install git libqtcore4 libqtgui4 libqt4-network libusb-1.0-0 libprotobuf9 ca-certificates
wget -N https://raw.github.com/tvdzwan/hyperion/master/bin/install_hyperion.sh
sudo sh ./install_hyperion.sh
sudo vi /boot/config.txt(然后末尾添加此行:dtparam=spi=on)
測試usb采集卡信號
https://www.raspberrypi.org/forums/viewtopic.php?t=124546
//獲取usb設(shè)備列表
lsusb
//獲取usb設(shè)備列表詳細信息
dmesg | grep usb
//列出視頻設(shè)備
v4l2-ctl --list-devices
//獲取上面列表中設(shè)備的具體信息, 不一定是video0
v4l2-ctl --list-formats-ext -d /dev/video0
//安裝mplayer, 用于檢測視頻是否抓取正確
sudo apt-get install mplayer
//運行mplayer獲取easycap視頻流
mplayer tv:// -tv driver=v4l2:norm=NTSC-M:width=720:height=480:outfmt=uyvy:device=/dev/video0:input
=0
mplayer tv:// -tv device=/dev/video0 -hardframedrop
//獲取視頻采集卡數(shù)據(jù)
v4l2-ctl --all
設(shè)置樹莓派遠程訪問
設(shè)置固定ip
步驟 http://ju.outofmemory.cn/entry/102072
格式 http://blog.csdn.net/jdh99/article/details/22096479
SSH 為了安全新版默認都不開機啟動ssh
http://blog.csdn.net/messidona11/article/details/71514247
開機啟動ssh(電腦上在boot分區(qū)創(chuàng)建ssh文件即可) http://blog.csdn.net/scylhy/article/details/62896559
如果以前登錄ssh時保存密鑰, 重裝系統(tǒng)后同樣ip下會提示
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED
解決方法
sudo nano /Users/zszen/.ssh/known_hosts
用#屏蔽掉提示的那個ip即可
控制燈條
下載hypercon.jar這個軟件
https://hyperion-project.org/wiki/HyperCon-Information
//截圖
hyperion-v4l2 --screenshot
//將燈條變紅 (必須把hyperion啟動起來, 通過hypercon軟件可開啟)
hyperion-remote --color red
軟件配置
-
device 設(shè)置輸出的燈帶類型, 我這里用的是rbg的ws2801
image.png -
第二頁配置顏色適配, 以及是否過度有緩沖
image.png -
第三頁配置輸入源
image.png -
第四頁配置服務器端口, 第一開啟, 可以用手機控制燈帶顏色簡單變化, 沒什么用
image.png -
第五頁是連接和調(diào)試
image.png
軟件使用順序
- 將軟件各頁調(diào)整好后, 到最后一頁連接樹莓派ssh
- 點save保存軟件設(shè)置
- 點create Hyperion Configuration 創(chuàng)建配置json
- 點Local Config Path 找到存放的本地配置json
- 點Send Config把配置通過ssh發(fā)送到樹莓派的/etc/hyperion/下, 并命名為hyperion.config.json
- 連上后start就相當于hyperiond /etc/hyperion/hyperion.config.json
- stop為停止服務
問題 和 解決
- 也是為什么重裝系統(tǒng), 我尋求官方幫助, 之前手誤刪除了程序, 然后再下載后led就只跟隨樹莓派桌面變化了, 很奇怪, 等待稍后解決
https://hyperion-project.org/threads/strange-leds-display-raspberry-desktop-color.952/
https://github.com/hyperion-project/hyperion/issues/759
解決方法: 將配置里的Internal Frame Grabber取消掉即可
image.png