昨天看到隔壁 @dbw9580 做了给显示器自动亮度,灵机一动觉得自动调节色温也是可行的。
虽然离 Apple 的 True Tone 还有点距离,不过我觉得已经很能解决问题了

明天要上班,简述一下实验过程:
- 选用 TCS34725 传感器 + 吃灰 5 年的树莓派
- 传感器采集环境的 RGBC 值,厂家自带的树莓派 python 库支持换算后输出色温
- 电脑端将 Night Shift 全天开启
- 把传感器贴在屏幕上,写了一个 shell 脚本,从 0 到 100 设定 Night Shift 值,并通知树莓派采集色温,得到映射关系,并指数拟合
流程如下:
- 树莓派通过 I2C 和传感器通信,拿到 RGBC 值,通过 python 库换成色温
- 树莓派将色温值通过 nc 发给电脑
- 电脑根据拟合结果,反推回 Night Shift 值
- 用 nshift 工具调节 Night Shift 值
简单结论:
- 效果还不错,能唬人了
- 亮度和色温关系不大(测过亮度 0%、50%、100% 下的色温随 Night Shift 值变化的曲线,差别不大)
- 传感器的摆放位置很有讲究(现在和 @dbw9580 做法一样,感觉这样是最好的)
- 简单拟合可能不足够好
- 要加入以传感器的照度自动调节显示器亮度( ddcctl )可能会更好
现在快递还是发达啊,昨天看到自动调节亮度的 idea,当即 google 色温传感器什么的,立即淘宝下单,今天中午就到了……
ps. 色彩是一个很主观的事情,这个调教很困难…
