一眼レフとArduinoでタイムラプス撮影

f:id:karaage:20150531141131j:plain:w640

Arduino使ってタイムラプス撮影

 先日開始した逆さ栽培の様子をタイムラプス撮影(微速度撮影)しようかなと思い、昔JapaninoというArduino互換ボードで作った一眼レフ用タイムラプスタイマを久しぶりに使ってみました。

 ただ、Japaninoが今のパソコンの環境で書き込めなくなってしまっていたので、仕方なく家に転がっていたArduino Unoを使いました。昔の記事も結構適当だったので、メモ代わりにちょっと補足しておきます。

タイムラプスタイマ写真

f:id:karaage:20150531125608j:plain:w640
 全体の接続

f:id:karaage:20150531125721j:plain:w640
 Arduinoとブレッドボード

f:id:karaage:20150531141108j:plain:w640
 カメラにArduinoとブレッドボードを固定

f:id:karaage:20150531141131j:plain:w640
 撮影の様子

 使用しているカメラはPENTAX K10DとTAMRON A16。アナログ的なリモートシャッタが使えるカメラならなんでもOKです。最近のカメラだったら、わざわざこんな工作しなくてもソフトウェア的なタイムラプス機能がついていたりするんですけどね…

タイムラプス動画

150531_TimelapseCultivation
 タイムラプス動画。クリックしたら動画が見れます。

 ほとんど変化無しでした。やっぱ植物の成長は日単位とか数時間単位で撮影しないとあんま意味なさそうですね。もう少し工夫してみよう。

 プログラムは見たい方は続きを読むをクリックください。

プログラム

 基本は、以下の記事のまんまです。

arms22.blog91.fc2.com

 変更したのは、今回付属していないLCDの箇所を削除したのと、オリジナルのコードだとシャッタ間隔を長い時間(33秒以上)にすると、正しく動かなくなるので少し修正しました。

#define HALF_RELEASE_PIN (2)
#define FULL_RELEASE_PIN (3)
#define INTERVAL_TIME    (50000)

unsigned long shoot_time;

void setup(){
  // for debug
  Serial.begin(9600);

  // Port Setting
  pinMode(HALF_RELEASE_PIN, OUTPUT);
  digitalWrite(HALF_RELEASE_PIN, LOW);

  pinMode(FULL_RELEASE_PIN, OUTPUT);
  digitalWrite(FULL_RELEASE_PIN, LOW);

  // Time Setting
  shoot_time =  millis() + INTERVAL_TIME;
}


void loop(){
  unsigned long diff = shoot_time - millis();

  // for debug
  Serial.println(diff);

  if(diff > 0){
    delay(200);
  }
  else{
    // Auto Focus
    //digitalWrite(HALF_RELEASE_PIN, HIGH);
    delay(800);

    // Shutter
    digitalWrite(FULL_RELEASE_PIN, HIGH);
    delay(200);

    // Switch off
    digitalWrite(HALF_RELEASE_PIN, LOW);
    digitalWrite(FULL_RELEASE_PIN, LOW);

    // Setting next shutter chance
    shoot_time =  millis() + INTERVAL_TIME;
  }
}

まとめ

 とりあえず毎日同じ場所で定点観測を開始することにしました。また動画ができたら公開しようかと思います。また、もっと細かく監視できるようなシステムをRaspberry Piとか使って構築しようかなと考えています。

 あとはマクロ撮影とかも楽しいです。


関連記事