如何使用Arduino拍摄美丽的高速摄影

砸碎酒杯和弹出气球显然很有趣,这就是我的滚动方式。但结合使用DSLR相机和Arduino,它也可以拍摄一些有趣的照片。这就是我们今天要做的。

项目基础

该项目实际上有两个部分–第一个是声音触发。使用压电蜂鸣器作为麦克风和Arduino,我们可以轻松检测到很大的噪音并定义动作。第二部分是相机设置。由于直接触发相机的速度太慢,因此我们将在黑暗的房间中将相机的快门保持打开状态,并使用外部闪光灯提供足够的光线来完成拍摄。

如果您完全摄影的新手,请参阅我的5大摄影技巧给绝对的初学者。

设备

  • 带三脚架的DSLR相机
  • 带手动触发的外部闪光灯
  • Arduino
  • 压电蜂鸣器和1M Ohm电阻器
  • 4N35或类似的光电耦合器/光电隔离器和220 Ohm电阻器
  • 接线图

    压电蜂鸣器应将黑色导线连接到GND,红色导线连接到A0;在两个引脚之间放置1M电阻。电阻器用于为压电产生的电压提供电流消耗,以保护模拟输入。

    我们正在使用光隔离器来保护Arduino免受外部闪光灯可能产生的任何电压。光电隔离器是一个采用小型封装的LED和光敏开关。转动一侧的LED,另一侧的开关将被激活。在4N35(其他型号可能会有所不同)上,您应该在一个角上看到一个很小的圆圈-该引脚1。通过220欧姆电阻将引脚1连接到引脚12,然后将引脚2连接到GND。被触发的设备进入对角(5/6)的两个引脚。这些触发引线的末端可以连接到实际的闪光触发电缆,也可以直接将其插入插槽中进行评审–您可能需要一些Blu-Tack使其固定在适当位置。

    Arduino代码

    该项目的代码相对简单。在下面的文件中,我保留了串行控制台输出,尽管您可能希望在确定一切正常时将其删除–只需注释 Serial.begin Serial。准备就绪时,使用println 行。拍手,然后运行代码并查看控制台输出–您应该从压电蜂鸣器获得输出。您在此处使用的数字可用于确定闪光灯闪光的阈值,但我的压电元件根本不那么敏感,因此我将其保留为1。

    在主循环中,检查压电读数是否高于阈值,以及自上次触发闪光灯以来是否超过一秒。这样可以避免多次触发闪光灯。在某些闪烁中,这可能不是必需的,但是由于我的雷能够持续爆发,因此它只是多次发射而没有检查。

    此外,在触发之前请注意 delay 值闪光灯–根据您要拍摄的内容,您可以尝试使用它或完全删除它。在没有延迟的情况下,撞击后立即拍摄了碎玻璃的照片,没有碎裂效果。 50ms太慢了,所以25ms应该是理想的,以观察实际的破碎。

    int ledPin = 13;int cameraPin = 12;int piezo = 0;              unsigned long lastMillis = 0;byte val = 0;int threshold= 1;void setup() {	pinMode(ledPin, OUTPUT);	pinMode(cameraPin, OUTPUT);	Serial.begin(9600); }void loop() {	val = analogRead(piezo);    	if(val>0){		Serial.println(val); //used to debug	}	if (val >= threshold && (millis()-lastMillis > 1000)) {		delay(25); // change as needed, or remove entirely		digitalWrite(ledPin, HIGH);		digitalWrite(cameraPin, HIGH);		lastMillis = millis();	}	else{		digitalWrite(ledPin,LOW);		digitalWrite(cameraPin, LOW);	}} 

    射击

    首先,您需要一个黑暗的房间来做–越近越好可以使它变黑。如果您发现镜头太模糊,则可能是由于环境光线过多所致。您要拍摄的唯一光线是在触发闪光灯的那一刻,因此请将您的数码单反相机设为手动模式,并将曝光时间最多设置为 4秒或更长时间。将光圈设置为 F8至F16 ;我需要 ISO 1600 来拍摄这些照片,但是在继续之前,您应该调整这两个值以找到适合您的东西。

    您还需要将相机设置为手动对焦,如果有,请禁用任何稳定功能。试一下您的闪光定时–我使用了 1/128功率 –高于1/32,您会发现闪光灯闪光时间过长,从而导致拍摄模糊。我当然不是摄影专家,所以实际上只是在玩耍寻找适合您的设置。

    测试设置的一种简单方法是先杀死灯光,单击快门然后拍手

    对测试感到满意,我继续尝试弹出气球。

    代码可以对代码进行一些优化–即使没有设定的延迟,似乎拍摄时间也只有5-10毫秒,实在太慢了。尽管如此,这张照片还是很好地展示了出来,并显示了大理石的气球颜色和一只迷

    这是我最初尝试粉碎的东西–毫不拖延,这张照片是在撞击时直接拍摄的,没有

    对此杯子来说10ms的延迟只是太早

    我再次尝试了另一半杯子和50毫秒的延迟–我感觉有点太迟了[em],太晚了:

    我给了这杯50毫秒另一个机会–确保您将东西粉碎成盒子

    关于数码单反相机的妙处是,即使玻璃器皿价格昂贵,您也可以拍摄100万张照片直到正确为止。老实说,我整天都在做调整,并拍了数百张练习照,以寻找正确的设置,因此,如果第一次使用不正确,请不要放弃。

    一旦如果您对气球和眼镜感到无聊,请尝试使用各种触发器进行试验:也许是将ping传感器放置在地面上以捕获掉落的物体,或者是激光和光电二极管恰好​​位于水面上,当光束破裂时会触发。拍些好照片吗?在评论中让我们知道您的工作方式或遇到的任何问题。

    标签: Arduino 摄影