如何用arduino控制相机快门

电子说

1.2w人已加入

描述

第1步:收集零件和文件

相机

相机

相机

零件:

Arduino Uno(或类似)

面包板(半尺寸面包板适合)

Easydriver步进电机驱动程序

2X散热器为Easydriver(可选但强烈建议)

红外LED 950nm(用于红外摄像机触发)

电阻220欧姆(红外LED前置电阻)

压电声音元素(可选,如果你希望得到反馈声音)

一些跳线

Steppermotor的外部电源

我用12V 1A电源适配器从Trinamic驱动1A NEMA 17 Steppermotor获得了很好的体验。我还使用了一个24V 3A电源适配器。 Easydriver板每相支持高达30V和750mA的电流。

用于steppermotor外部电源的插座

Bipolar NEMA 17 Steppermotor和Turntable例如FluxGarage“带Steppermotor的自动转盘”

添加基本按钮控制器。.

按钮

电阻10k欧姆(按钮)

LED(状态引导)

电阻器220欧姆(状态LED的预电阻器)

。..或者为显示器+键盘菜单添加高级控制器:

Adafruit LCD屏蔽套件,带16x2字符显示器

下载基本和高级控制器的Arduino代码和Fritzing图表:

如果您想为高级控制器打开Fritzing文档,请确保下载并安装adafruit元素..

结果

请注意:

在图片上,我使用的是FluxGarage“Tinkerer‘s Baseplate”和FluxGarage“用于16x2 LCD +键盘护罩的前板”。使用这些元素是可选的,如果你也想使用它们,请点击相关指令的链接。

第2步:汇编电路

相机

相机

相机

焊料 用于面包板的Easydriver板

为了在面包板上使用easydriver ,你需要在电路板上焊接一些公针脚接头。最好的方法是将公针头放入面包板,将easyydriver放在顶部,然后焊接针脚。

接线:

将部件接线为显示在基本或高级控制器的Fritzing图形中。在github上下载Firtzing图表,找到步骤1中的链接。

仔细检查所有内容是否连接如下:

Arduino数字引脚02 = Easydriver的dir引脚

Arduino数字引脚03 = Easydriver的步进引脚

Arduino数字引脚09 =压电输出

Arduino数字引脚12 =输出用于红外LED(在LED之前放置220欧姆的前电阻)

+用于基本控制器:

Arduino数字引脚04 =按钮输入(按钮接地前放置10k欧姆电阻)

Arduino数字引脚13 =状态LED输出(引脚前220欧姆前置电阻)

+用于高级控制器:

将显示屏+键盘屏蔽层叠到arduino上,实际使用的是这些引脚:Arduino模拟引脚A4 + A5和5V + GND。

连接Steppermotor:

连接双极步进电机(4线)是关于连接moto的两个线圈(A和B) r到easydriver板的右侧引脚。

连接外部电源

Easydriver板的右上侧有两个独立的电源引脚(M +和地)。当电路板本身从Arduino获得电源时,单独的输入为steppermotor提供电源。如果您使用典型的“开箱即用”电源适配器和插座,则应将“+”线连接到easydriver的“M +”引脚,将“ - ”线连接到easydriver的“GND”引脚。通常“+”位于内侧,而“ - ”位于插头的外侧。但要小心,一些电源适配器允许切换极性!如果你的easydriver连接不正确,它可能会被损坏,请记住这一点。

步骤3:将源代码上传到Arduino

相机

在Github下载Arduino源代码:

在步骤1找到下载链接。

下载第三方库并复制它们到IDE的库文件夹:

。..用于相机快门:

https://github.com/dharmapurikar/Arduino/tree/mast 。..

。..用于Adafruit 16x2显示器+ Keypad Shield:

https://github.com/adafruit/Adafruit-RGB-LCD-Shiel.。.

代码经过测试,可与最新的Arduino IDE一起使用(1.8.7 on Windows)和Arduino Uno + Easydriver步进电机驱动器+ Adafruit 16x2显示器+键盘护罩,+ Trinamic步进电机和尼康D60相机。

调整代码以使用您的特定相机:

如上所述,我使用了Sebastian Setz的“multiCameraIrControl.h”库。要使其适用于您的相机,您必须在相机制造商名称之前删除注释斜杠,当然还要在所有其他制造商名称之前添加斜杠:

// Set Camera Type

Nikon D5000(12);

//Canon D5(12);

//Minolta A900(12);

//Olympus E5(12);

//Pentax K7(12);

//Sony A900(12);

执行类似操作在“快照”功能中调整:

// Take a picture

void snap(){

D5000.shotNow();

//D5.shotNow();

//A900.shotNow();

//E5.shotNow();

//K7.shotNow();

//A900.shotNow();

}

请注意:

不幸的是,我还没有能够测试其他IR触发相机还有我自己的尼康D60。相机快门库应该与不同制造商的多个相机一起使用,而不仅仅是代码中提到的特定相机型号。如果您对佳能,美能达,奥林巴斯,宾得或索尼相机的体验发表评论会很棒。

步骤4:操作控制器

相机

相机

控制器的代码分别是什么?

如果按下按钮,将触发“photoshooting”。每个Photoshooting都是以下序列的有限循环:

触发相机

短暂延迟

Steppermotor将旋转预定量的度数

短暂延迟

照片拍摄基于一组确定其确切行为的变量。您可以在源代码(简单控制器版本)或显示菜单(高级控制器版本)中更改这些变量。

操作基本控制器:

在基本控制器上,状态LED显示系统何时可以执行。开始拍照时,LED指示灯熄灭。您可以按住按钮中断照片拍摄,直到出现“中断声音”并且转盘停止。看一下这个教程顶部的视频,在“现实生活”中看到这一点。

可以在代码的顶部找到photoshooting的变量,并可以更改以修改photoshooting。您可以在下面看到初始值:

int shootingsteps = 20; // number of steps for a full revolution, should be 10, 20 or 40

float shootingspeed = 0.01; // rotation speed: any number from .01 -》 1 with 1 being fastest -

Slower is stronger (slower = better for „heavy“ objects)

int shootingdelay = 1000; // break in milliseconds before and after each rotation

操作高级控制器:

打开高级控制器时,FluxGarage logosplash显示4秒钟。之后,控制器就可以执行并显示一组可调整的变量列表:

ST =步数,可以是10,20或40

SP =旋转速度,可以是1-5而1是最慢的

DE =每个步骤之前和之后的延迟,在十分之一秒内,可以是5,10,25,50

LI =确定拍摄时显示屏的背景灯是打开还是关闭。可以是1 =打开或0 =关闭

您可以使用左右按钮浏览变量类型,并使用向上和向下按钮更改值。

启动照片拍摄按下选择按钮并按住选择按钮中断拍照,直到出现“中断声音”。

第5步:开始拍摄

相机

如果你已经建立了自己的控制器+转盘并且你的相机就位,那么你几乎就可以开始拍摄了。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分