/

电视增加超酷的 Ambilight

ambilight_new_cover

Ambilight 是 Philips 在自家电视或显示器的特别的酷设计,电视边框有彩灯带,灯会随屏幕边缘显示内容同步颜色。另外,飞利浦还出过一个 Philips Hue Play HDMI Sync Box 。Philips 对 Ambilight 的解释:

情境光源(Ambilight) 是飞利浦的独特功能,会将柔和光源投射到电视周围的墙壁,依照画面的色彩与亮度自动变化。 情境光源可以改善感应到的对比度、色彩与细节,产生观看大萤幕的错觉。 而且,因为是较为放松的观赏体验,经证实可减少眼睛疲劳。

在 Android TV 上安装

在 Android TV 上主要是通过一个开源项目 Hyperion 实现,这个项目可以选择有线或无线连接,有线连接的好处是可以播放有 DRM 的内容,包括 Netflix、HBO、Disney+ 这类流媒体服务,缺点是需要 HDMI 采集卡及树莓派。目前 HDMI 采集卡 1080P 价格较便宜,4K 价格稍贵,可按需选择。如果选择无线连接,无需 HDMI 采集卡,但是无法识别有 DRM 的媒体内容。

小弟没有采集卡测试,以下步骤是通过无线连接方式实现电视的 Ambilight 效果,主要原理是 Android TV 通过应用 Android Screen Grabber 抓取屏幕边缘信息并发送至 Hyperion(运行在群晖),Hyperion 再将 UDP 数据包同步至 WLED(通过 ESP8266 控制)。

灯带计算

坊间比较参见的灯带是 WS2812B 或 WS2811 灯带,灯带上都有焊好 LED 灯,两种灯带主要区别是电压,WS2812B 灯带的工作电压为 5V,WS2811 灯带工作电压为 5V 。

灯带有不同级别的保护,可以按需选择。最常见的情况是 IP20-30(可以防止固体颗粒进入)、IP65(可以防止灰尘和水蒸气进入)、IP67(可以防灰尘以及部分或短期浸入水中至 1m 深度),基材颜色有黑色、白色两种。

ambilight_led_style

灯带每米的 LED 数量不同。通常每一米有 144、60、30 颗等等。一般每米灯泡密度越高,环境光分辨率越大,最大亮度也就越大。同时,项目中的 LED 越多,电源方案就会越复杂,且需要更多的电流。

小弟建议用尺子量一下电视的边长,确定是要环绕边框的一边、两边、三边还是四边,进而确定用几米灯带及多少颗灯泡。如果系统中的LED总数不超过 120 个,则选择 WS2812B。如果大于 120 个,建议选工作电压为 12V 的 WS2811。

两种灯带最大功耗大约为 0.3 瓦,电源不应小于 N×0.3 瓦(N 是项目中 LED 的数量)。例如,一台 42 英寸电视,选择 WS2812B LED 灯带,每米 30 个 LED,需要 3 米 LED 灯带(屏幕四边均安装),最大功率为 0.3×3×30=27 瓦,所需电流为 27/5≈6A,所以应该准备一个 5V 6A的电源。

另外。如果 LED 灯条较长,电压会有损耗,尤其是在使用 5V 灯带时。建议 5 V 时每消耗 10 W 和 12 V 时每消耗 25 W 单独配电源。

所需元件

1、D1 Mini(或 ESP 8266)

ambilight_component1

2、WS2812B 或 WS2811 灯带

灯带一般是按米卖,长度需测量

ambilight_component2

3、5V 或 12V 电源

电流根据灯泡总功率决定

ambilight_component3

4、DC 直流电源插头公头母座圆孔

直径需与电源匹配

ambilight_component4

5、杜邦线若干

建议公对公、公对母、母对母都备一些,方便延长,至少准备公对母的杜邦线

ambilight_component5

6、3PIN 灯带免焊连接卡扣(非必须)

非必须,用于连接灯带,可用焊接代替

ambilight_component6

7、3PIN 灯带免焊连接器 T 型(非必须)

非必须,用于连接折角的灯带,可以弯折灯带或焊接代替

ambilight_component7

安装 Hyperion

安装 Hyperion 有很多种方法,下面介绍两种:

通过群晖 Docker 安装

打开群晖 Docker,在「注册表」中搜索「mumpfnix」,选择 mumpfnix-hyperion.ng,并下载,

ambilight_docker1

等待 image 下载完成(下载完成群晖会有通知),在「映像」中找到映像 mumpfnix-hyperion.ng:latest,点击「启动」,

ambilight_docker2

选择「高级设置」,

ambilight_docker3

可以新建一个文件夹存放配置文件,名字任意,如 hyperion,在「卷」中添加路径,映射为 /root/.hyperion,这个路径会存放 Hyperion 的配置文件,

ambilight_docker4

在「端口」中开放 60801944419445 三个端口,并启动容器。

ambilight_docker5

在浏览器访问地址 http://群晖地址:6080 可以看到 Hyperion 配置页面说明成功安装。如果安装过程中遇到问题可以查阅 Hyperion 文档

ambilight_hyperion_web

通过 Home Assistant 插件安装

在 Home Assistant 的 Supervisor 中点击右上角三个点按钮,选择「库」,

ambilight_hyperion_ha1

添加库的地址 https://github.com/bradsjm/hassio-addons

ambilight_hyperion_ha2

在插件列表中找到 Hyperion.NG 并安装即可。

ambilight_hyperion_ha3

刷入固件

ESP8266 通过刷入 WLED 固件来控制灯带,刷入固件很容易:

1.首先要下载相应模块的驱动,若是 D1 mini,请前往这里下载,若是 NodeMCU 请前往这里下载。

2.下载安装 NodeMCU PyFlasher 及控制端 WLED 固件,选择 WLED_版本号_ESP8266.bin`将模块用 MicroUSB 数据线连接至电脑 USB 口,选择好端口及固件路径,点击「刷入」,之后等待刷武完成。

ambilight_esptool

连线与安装

连线

首先按照以下连接 ESP8266 与灯带,注意一定要灯带「进箭头」的方向:

灯带 ESP8266
5V(一般为红色) VIN
GND(一般为绿色) GND
DIN(一般为白色) D4

之后将灯带的另外红线与白线连接至 DC 电流头正负极(注意不要接反),连接好再次确认是进箭头「进箭头」的方向。

ambilight_wire

如果一切顺利,连接好电源,前 30 个 LED 将亮起亮橙色。

安装

将电视翻到背面,将灯带粘到电视的边框。若灯带不够长,可以在铜触点位置将灯带剪断,用灯带连接卡扣将两端的铜触点连接或者直接焊接铜触点。

折角地方可以直接弯折灯带或者用折角卡扣或者焊接。注意连接灯带时一定要沿着箭头方向连接 LED 灯带。

ambilight_wire_tv

ambilight_wire_tv2

ambilight_wire2

安装好之后将每一边的灯泡数目记下来备用。

WLED 配置

将刷好固件的 ESP8266 通电,可以看到名为 WLED-AP 的 AP,连入这个 WiFi(密码是 wled1234),连接成功后会振动打开 IP 为 4.3.2.1 的地址,点击其中的「WiFi 设置」,

ambilight_wled_setting0

将 WiFi 的 SSID 及密码填入并保存,之后 ESP8266 将联网,在路由器后台找到 ESP8266 的 IP 地址并在浏览器打开,打开后可以看到 WLED 的控制介面,选择「配置」→「LED 配置」,

ambilight_wled_setting2

填写用到的灯泡总数,

ambilight_wled_setting3

在这一页的下面的「变换」中取消勾选「淡入淡出」,配置好之后保存。

ambilight_wled_setting4

Hyperion 配置

在浏览器打开 Hyperion 配置页面 http://群晖地址:6080 ,选择「配置」→「LED 硬件」的「LED 控制端」标签中,控制类型选择「wled」,之后填入灯泡总数及 IP 地址,

ambilight_hyperion1

在「LED 层」标签中填入上、下、左、右的灯泡数目及输入位置,点击保存可以在右侧看到预览,调整参数使预览符合真实的灯泡位置,

ambilight_hyperion2

在「配置」→「网络服务」中,确保「端口缓冲服务器」打开并开放端口。

ambilight_hyperion3

Android TV 配置

Android TV 需要安装 hyperion-android-grabber 这个应用,到这里下载好 apk 安装包并导入Android TV 安装,安装完成打开可以自动搜索到 Hyperion 服务器,之后在配置中需要修改横向、纵向灯泡数目,以及消息优先级调整为 150

ambilight_tv_setting1

保存后若灯带随屏幕示例颜色变化而变化说明配置成功。

ambilight_tv_setting2

应用兼容性

比较遗憾的是,这种无线连接的方式无法抓取有 DRM 的内容。大多数流媒体应用可以在选择电影或剧集时抓取到屏幕边缘信息,播放媒体时就无法显示。

默认官方 Youtube 应用无法抓取,第三方 Smart YouTube TV 可以。

在电脑上安装

在电脑(PC、Mac 都可以)上可以通过 Prismatik 这款应用实现 Ambilight 效果,无需配置 Hyperion。

安装方法与在电视上安装方法相似,需要在电脑屏幕边缘装好灯带,之后到这里下载安装 Prismatik,打开设置,在「设备」中选择「运行配置向导」,

ambilight_pc_setting1

填入 WLED 的 IP 地址,

ambilight_pc_setting2

填入灯泡总数、顶部、两侧、底部灯泡数、开始灯泡,点击「应用」可预览效果,

ambilight_pc_setting3

设置完成后选中「屏幕抓取」模式配置完成。

接入 Home Assistant

WLED 接入

正常情况下 Home Assistant 可以自动发现 WLED,之后 WLED 可以以彩色灯泡接入 HomeKit、Google Home 和 Alexa。

ambilight_wled_integration

Hyperion 接入

Hyperion 可以以 integration 的形式接入,在 Home Assistant 「配置」→「 Integration」中点击「添加 Integration」,搜索「hyperion」,填入群晖 IP 地址即可。

ambilight_hyperion_integration1

接入后可以控制 Hyperion 开关。

ambilight_hyperion_integration2