CHDK是一套用于佳能数码相机的非官方固件“升级”程序,它并非真正对相机内的固件进行升级,而是作为应用程序在相机的OS DryOS 上启动。实现如下功能:

  1. 专业的手动控制拍摄,包括:输出RAW格式照片,手动控制各种曝光参数,连拍模式、包围曝光和录像时变焦等;

  2. 移动探测,捕捉指定区域的变化后触发拍照;

  3. 远程控制相机, 通过USB和PTP协议远程控制相机;

  4. 运行Lua/uBasic脚本灵活实现各种功能,简单的比如延迟拍照,间隔拍照,复杂的完全取决于你的想象和发掘。

    CHDK固件只能用在佳能相机上,包括所有家用普通相机,使用方法如下:

    使用SD卡灌入固件,按照手册运行软件即可,可选择开机自启动或手动启动。具体方法参考官网http://chdk.wikia.com/wiki/CHDK,或者万能的百度文库上的中文版。

由于不是器材党,对专业摄影基本外行,从可玩性方面主要从如下几个方面入手:

A. Motion detect 以及其它脚本。

B. USB 线控快门

C. PTP控制相机

由于这些功能都比较耗电,专门配置了一个外置4.3V电源。

A. Motion detect 以及其它脚本

先介绍其Motion detect 功能,该功能通过在相机上执行lua/basic脚本实现。该脚本可以将捕捉画面按行列切分成块,可定制感兴趣的捕捉区域,定时探测间隔等参数,这个功能除了用于敏感区域监控外,也可以用于不同pose的自拍。

具体代码参考

a=6         -- columns to split picture into
b=6         -- rows to split picture into
c=1         -- measure mode (Y,U,V R,G,B) ?U=0, Y=1, V=2, R=3, G=4, B=5
d=300000    -- timeout (mSec)
e=200       -- comparison interval (msec) - less than 100 will slow down other CHDK functions
g=3         -- draw grid (0=no, 1=grid, 2=sensitivity readout, 3=sensitivity readout & grid)
h=0         -- not used in LUA - in uBasic is the variable that gets loaded with the number of cells with motion detected
i=0         -- region masking mode: 0=no regions, 1=include, 2=exclude
j=0         --      first column
k=0         --      first row
l=0         --      last column
m=0         --      last row
n=0         -- optional parameters  (1=shoot immediate)
o=2         -- pixel step
repeatzones = md_detect_motion( a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p)if( zones > 0 ) thenshoot()end
until (false)

借助其强大的脚本支持,除了Motion detect 功能,延迟拍摄、time lapse 摄影和包围曝光实现起来也就是几行脚本的事情。

B. USB 线控快门

这个专业单反相机才有的功能也可以通过CHDK轻松实现。不过需要部分硬件DIY的工作。配套硬件工作原理很简单,只要相机USB的1和4管脚有3-5v的瞬时供电即可触发快门。这个功能需要在CHDK Menu菜单中CHDK设置远程参数和 Enable Remote和设置开关类型。硬件装备上,经过实践,发现直接用带开关的充电宝即可实现简单远程快门功能,当然如果有兴趣,加个单片机控制5v电源的通断脉冲也可实现手动对焦、连拍和包围曝光等专业相机才有的功能。

C. PTP控制相机

PTP即 图片传输协议,over在 USB上的一种上层协议,实现照片的预览下载、远程拍照录像等功能,相机广泛支持。客户端方面,Windows上原生支持,Linux上著名的gphoto2 实现对多种相机的PTP控制。

用PI连上我的A650,开启gphoto2 PTP, 悲剧的是不支持远程拍照。

Device Capabilities:

File Download, File Deletion, File Upload

No Image Capture, No Open Capture, No vendor specific capture

CHDK扩展了PTP的支持,主要包括:

1. 脚本执行,主机端通过PTP发送脚本到相机远程执行,能本地执行的脚本都能远程执行。

2. 调整各种曝光参数后,然后远程快门或启动录像

3. 远程显示 即远程streaming.

上瑞士***CHDK试验,需要注意PTP控制和USB线控这两个功能互斥。相机上CHDK已ready,需要主机端PTP Client配合。

PTP Client 之前流行 德国人的ptpcam,现在用chdkptp,网上正好有raspbian的PI版本,省得编译了。

从https://www.assembla.com/spaces/chdkptp/documentss

安装新鲜出炉(2014/10/24)的chdkptp,连接相机,进入交互模式:

sudo ./chdkptp-sample.sh -c -i

rec 进入拍摄模式,shoot 触发快门, rebootshoot 触发快门,照片保存在Pi端而不是SD卡上。

当然还可以发送LUA脚本远程执行。

转载于:https://blog.51cto.com/misterhouse/1597039

卡片机玩出单反机的效果相关推荐

  1. 卡片机和单反机详细对比

    卡片机与单反机的外在特征表现在以下几个方面: 1.卡片机不可换镜头(高端卡片机可通过转接环增加广角镜或长焦镜头),而单反机直接可更换镜头: 2.从用途上看卡片机主要于寻常百姓生活中(操作简便,使用方便 ...

  2. vsco使用教程_vsco具体操作方法_2018vsco最新使用教程_教你用vsco玩出单反的效果_9号资讯...

    第 2 页 vsco具体操作方法 教你用vsco玩出单反的效果? 1.下载vsco cam 这是一个手机app,但是有的手机无法使用,需要先下载一个谷歌服务器!下就下吧,反正也不麻烦!下载好app后打 ...

  3. js实现彩票机选效果

    每天下班途中经过体彩店,心情好就会买几注,也就几块钱,全当是消遣,好歹也算参与了好几十个亿的大项目 一般机选为主,也就是随机号.但每次工作人员给随的号都不太满意,总感觉是导致与奖擦肩而过的原因,当然, ...

  4. 微信小程序下拉刷新真机没效果_微信小程序 下拉刷新 上拉加载(示例代码)

    1.下拉刷新 小程序页面集成了下拉功能,并提供了接口,我们只需要一些配置就可以拿到事件的回调. 1. 需要在 .json 文件中配置. 如果配置在app.json文件中,那么整个程序都可以下拉刷新.如 ...

  5. Eye of the Temple:在4平米玩出大空间VR效果的秘诀

    卧室只有4平米,能在VR中模拟森林等大空间场景吗?仅依靠视觉也许可以,但显然你很难走到森林尽头.不过,通过重定向等视觉欺骗,也许你可以通过在房间内"绕圈",来模拟在虚拟空间中无尽行 ...

  6. 使用webview实现刮刮卡效果,模拟器有刮卡效果,真机无效果

    主要代码: @JavascriptInterfacepublic void clickOnAndroid() {System.out.println("onclick");if ( ...

  7. 水沟滑模机A对于施工水沟滑模机的效果

    在使用施工机械缩短整体建设工期的模式下,可以使用水沟滑模机降低了施工的时间,也把一些安全风险降低了.并且能够肉眼可见的提高施工的效率,大大的增强了建设中项目的把控能力,在对于传统人工预制作业的对比中, ...

  8. iOS 数字滚动 类似于老 - 虎- 机的效果

    效果图 具体实现代码如下 ZCWScrollNumView.h文件 #import <UIKit/UIKit.h>typedef enum {ZCWScrollNumAnimationTy ...

  9. Unity 像机抖动效果

    using System; using System.Collections; using System.Collections.Generic; using UnityEngine;public c ...

最新文章

  1. Mongodb-自己写一个ORM
  2. RegistryCallback routine(CmRegisterCallback 注册表操作监控介绍)
  3. 创建对象的方式以及call,apply,bind的区别
  4. C 语言Hello world
  5. C#强化系列文章三:实验分析C#中三种计时器使用异同点
  6. boost::math::quadrature::naive_monte_carlo用法的测试程序
  7. 修改Windows 7默认的软件安装路径
  8. 计算机无法还原,降级为Windows 7的计算机无法引导至Windows 10恢复介质
  9. 基于 MySQL Binlog 的 Elasticsearch 数据同步实践
  10. mysql的limit、order by和group by的用法
  11. 只有python可以爬虫吗_无所不能的Python之爬虫那点事儿
  12. python模块介绍-asyncore 异步socket处理器
  13. 电子计算机发展为第五代,电子计算机的发展历程是怎样的?
  14. iOS swift语言生成条形码,可一次性生成多个!并带文字
  15. c语言三角波的mif文件,EDA课程设计报告-正弦波信号发生器的设计.doc
  16. 图像分割-分水岭算法和GrabCut 算法
  17. PTA 1055 集体照 (25 分) C++实现
  18. 转载——神经网络中mAP相关概念
  19. 基于Java的员工管理系统
  20. 编译原理三大经典:龙书 虎书 鲸书

热门文章

  1. js数组排序 中间大两边小
  2. HTML5七夕情人节表白网页制作【爱心雨(满屏爱心飘落)】HTML+CSS+JavaScript
  3. 没有基础,能学PHP开发吗?
  4. 学生学python编程---实现贪吃蛇小游戏+源码
  5. [FLASH在线游戏]圆桌武士
  6. vr拍摄用的什么设备?vr全景制作方法
  7. 区块链项目的价值评估关键词:数据|筱静观察2019第3期
  8. 网上流传的35岁很多人会失业,这是真的吗
  9. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java影视创作论坛系统13b52
  10. spark2+kafka报错:java.lang.NoSuchMethodError:org.apache.kafka.clients.consumer.KafkaConsumer.subscribe