以爱为名 给儿子添一个新玩具 数码相机 + CHDK

以爱为名 给儿子添一个新玩具 数码相机 + CHDK

当发现了针对佳能数码相机的 "firmware" CHDK的时候,我想我(的孩子)可能有了一个新玩具,基本思路是脚本做定时拍摄,从相机下载照片,然后串流到网络。想法有了之后,就有了 CHDK + 老旧吃灰的佳能相机 + 吃灰PI 的组合:
👉 "云相机" or "Not-That-Smart web camera"
效果截图
效果截图

CHDK

根据 CHDK WIKIA , CHDK是

  • Canon Hack Development Kit
  • 不会对 Canon 相机的系统 (一般是 Dry OS ) 进行持久化的修改
  • 给相机增加了一些功能,比如拍摄RAW文件,实时直方图,动态捕捉等等原系统未提供的功能,more features here
  • 如果是摄影发烧友,可运行脚本功能可以提供丰富的参数修改
  • 可以自由使用和修改,基于 GPL 发行
  • 支持的相机列表

这里用到的功能是通过 CHDK CLI Commands 控制相机的行为,让相机定时拍照,利用 CHDKPTP 传输到存储介质并上传到服务器提供实时浏览的功能。

安装 CHDK 到 相机

  • 首先检查受支持的佳能相机和对应的CHDK版本
  • 安装步骤参照官方网站,不赘述

安装 CHDKPTP 到 树莓派

CHDKPTP 是 Picture Transfer Protocol (PTP) 协议的扩展,与 CHDK 结合,可以实现远程调用,脚本执行等功能。安装方法:

几个需要注意的地方

  • 使用 CHDKPTP 时务必关闭 chdk remote usb control (chdk menu -> remote -> disable) 功能。
  • 相机长时间的电力续航推荐使用AC电源 + 降压模块 + 假电池方案。
  • 如果从桌面系统进入树莓派,gphoto2-volume-monitor 可能会干扰 CHDKPTP 的正常使用,每次启动 CHDKPTP 之前 kill -9 之;推荐从 cli 启动吃灰pi,反正部署了之后也不怎么碰它。
  • 别忘了给树莓派加上 USB Wi-Fi Adapter。
  • 检查你的树莓派是否安装过 LibUSB driver at here

效果展示

脚本每小时执行一次。层高估算为 72.8 米。
雾(霾),窗户上恼人的水珠,相机莫名崩溃,不稳定的网络状态等等都会来客串。

示例代码

人生苦短,Node 我用的最顺。
👉 gist
看不到代码?你可能翻了假墙。

END