用樹莓派制作流光溢彩

關鍵字: Raspberry Ambilight Hypercon hyperion

寫這個流程的緣由

其實我已經用上這個一年了, 然而一次手賤調試時在電腦上hypercon遠程把hyperion刪了, 導致點安裝也不好用, 就從頭再來吧, 索性也不是從頭開始, 設備都接好了, 只差系統

參考:

教程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/

什么是流光溢彩

  • 流光溢彩來自飛利浦電視技術, 通過對畫面邊緣的燈光效果, 來達到擴展屏幕光影的效果, 飛利浦的技術有可能是多微型投影儀, 因為投影出來的效果不是燈泡能達到的
  • 不過有老外通過彩色燈帶的控制, 做出了類似的效果
    這不算什么新技術, 大概在10年就已經有老外在開發這個項目, 玩這個在會diy的人眼里也算有些過時了
  • 這個項目也是我在將近一年前做的, 對樹莓派也不了解, 網上各種查資料, 其實并不難, 有點動手能力的都可以搞, 即便你不動linux命令, python寫法以及gpio語法

準備設備

  • 樹莓派1代以上, 也就是只要是樹莓派都可以
  • usb capture采集卡, 我用的是XXX L240 USB視頻采集卡(輸入命令"dmesg | grep usb"得到的是 usbtv Fushicai USBTV007 Audio-Video Grabber, 驅動裝好后lsusb顯示為Bus XXX Device XXX: ID 1b71:3002, 無名稱)
  • hdmi -> av 轉換器
  • hdmi 1in2out 一進二出
  • (可選)hdmi 3/4/5in1out 如果你需要多輸入需要買, 比如切換視頻盒子/ps4/xbox/電視機信號, 如果輸入源只有一個那么就可以省點錢
  • 5v 10a的開關電源, 買穩壓好一些的, 穩壓差會導致led閃爍, 我這一年來被晃的不行, 一直以為是樹莓派控制的不好, 后來玩nodemcu發現燈帶本身有寄存器, 不存在不發送數據會導致閃爍的問題, 于是我在電源端還加了濾波電容
  • ws2811/ws2812燈帶30顆/米 or 60顆/米都可以, 如果不想顯示的特別細膩, 可以選擇30顆的, 買10塊錢左右一米的即可 (ws2801不是不可以, 貴, 筆者買這個只是圖5v, 后來發現基本上都能找到5v的, 買這個燈30顆的價格相當于買ws2812 60顆的價格)
    • 燈帶的另一個選擇APA102, 油管有人在16年制作了144燈珠/米的效果, 相比30顆/米燈珠分辨率高了很多, 飛利浦也許是微型投影, 也許是這種密集led集成, 看demo
      https://www.youtube.com/watch?v=VG4o7_B4POU

連接方法

我畫了個流程圖, 思維導圖的方式更直觀一些


樹莓派流光溢彩流程圖.png

給樹莓派安裝系統

刷鏡像

http://www.lxweimin.com/p/5dc83db2b78e
需要注意的是, 寫入鏡像需要很長時間, 耐心等待

  • 注意, 如果出現raspberrypi-net-mods結尾問題 嘗試下面方式燒錄(筆者試了下面這個170705, 默認方式和軟件方式寫入都會出現這個錯誤, 下面這個命令行寫入就沒有這個問題)

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/

使用國內源更新速度快

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設備列表
lsusb
//獲取usb設備列表詳細信息
dmesg | grep usb
//列出視頻設備
v4l2-ctl --list-devices
//獲取上面列表中設備的具體信息, 不一定是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
//獲取視頻采集卡數據
v4l2-ctl --all

設置樹莓派遠程訪問

設置固定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分區創建ssh文件即可) http://blog.csdn.net/scylhy/article/details/62896559
如果以前登錄ssh時保存密鑰, 重裝系統后同樣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 設置輸出的燈帶類型, 我這里用的是rbg的ws2801


    image.png
  • 第二頁配置顏色適配, 以及是否過度有緩沖


    image.png
  • 第三頁配置輸入源


    image.png
  • 第四頁配置服務器端口, 第一開啟, 可以用手機控制燈帶顏色簡單變化, 沒什么用


    image.png
  • 第五頁是連接和調試


    image.png

軟件使用順序

  • 將軟件各頁調整好后, 到最后一頁連接樹莓派ssh
  • 點save保存軟件設置
  • 點create Hyperion Configuration 創建配置json
  • 點Local Config Path 找到存放的本地配置json
  • 點Send Config把配置通過ssh發送到樹莓派的/etc/hyperion/下, 并命名為hyperion.config.json
  • 連上后start就相當于hyperiond /etc/hyperion/hyperion.config.json
  • stop為停止服務

問題 和 解決

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容