Programmierbarer Fernauslöser für Digitalkameras

Mein niegelnagelneuer Arduino ist da. Sofort nach dem Test mit der obligatorischen “Hello-World” Applikation “Blink” habe ich damit mein erstes praktisch nutzbares Projekt gebastelt – einen programmierbaren Fernauslöser für meine Digitalkamera.

Der TV-Fernbedienungs-Fernauslöser, den hier vorgestellt hatte, funktioniert natürlich bestens wenn man einzelne Aufnahmen auslösen will, aber er versagt, wenn man regelmäßig Aufnahmen für Zeitraffer (Time-Lapse) Filme machen möchte.Auch sensorgesteuerte Aufnahmen (Bewegungsmelder, Akustikmelder etc.) sind mit der einfachen Fernbedienung natürlich nicht so einfach realisierbar. Hier kann der Arduino Abhilfe schaffen.

Die Hardware:

Fernauslöser

IR-Leuchtdiode an Pin 13 und GND

Als Hardware benötigt man eine IR-Leuchtdiode und einen Arduino (in meinem Fall ein Arduino Uno). Die Leuchtdiode wird einfach (richtig herum) direkt auf dem Arduino-Board in Pin 13 und GND gesteckt. Der Ausgang an Pin 13 ist schon mit einem Vorwiederstand ausgerüstet. Ich habe die IR-Leuchtdioden TSAL6200 (940nm) und TSFF5210 (870nm) getestet, beide funktionieren bestens als Fernauslöser für Nikon Kameras.

Das Timing:

Zunächst einmal muss man wissen, welches Signal die Kamera dazu bringt, eine Aufnahme zu auszulösen. Dafür kann man einigen Aufwand betreiben und das IR-Signal des original Fernauslösers (hier zum Beispiel der Nikon Fernauslöser ML-L3) analysieren. Oder man sieht im Internet nach, ob das vielleicht schon mal jemand gemacht hat. Natürlich hat das längst vor mir jemand analysiert. Hier die Arbeit von bigmike.it: OML-L3 : the open hardware project to build an inexpensive and customizable infrared remote control for Nikon cameras. Darauf aufbauend gibt es eine Menge Arbeiten, die sich mit dem Timing der IR-Fernauslöser der unterschiedlichen Kamera-Hersteller beschäftigen. Eine Übersicht findet sich zum Beispiel in diesem Fred im DSLR-Forum.

Die Software:

Auch dafür sollte sich im Netz eigentlich genügend Beispielscode finden lassen – zum Beispiel hier:

Leider verstehe ich solchen Code meist erst wirklich, wenn ich ihn auseinander nehme und selbst nachprogrammiere. Ich habe mir dafür vor allem die Multi Camera IR Control Library von Sebastian Setz als Vorbild genommen. Daraus habe ich mir einen schlanken Fernauslöser für meine Nikon D50 gezimmert. Sebastians Library unterstützt übrigens neben Nikon Kameras auch Geräte von Canon, Olympus, Pentax, Sony und Minolta.

Hier also der Sourcecode meines Fernauslösers für Nikon Kameras (D90, D80, D70, D70s, D60, D50, D40, D40x, D3000, D5000, D7000, Coolpix 8800, 8400, P6000 usw.):

— schnipp —

#include "WProgram.h"

int pin = pin;
int freq = 40;

void wait(unsigned int time)
{ unsigned long start = micros();
  while(micros()-start<=time)
  {
  }
}

void high(unsigned int time, int freq, int pinLED)
{ int pause = 1000/freq/2/2;
  unsigned long start = micros();
  while(micros()-start<=time)
  { digitalWrite(pinLED,HIGH);
    delayMicroseconds(pause);
    digitalWrite(pinLED,LOW);
    delayMicroseconds(pause);
  }
}
void shotNow(void)
{ high(2000,freq,pin); wait(27830);
  high(390,freq,pin);  wait(1580);
  high(410,freq,pin);  wait(3580);
  high(400,freq,pin);
}

void setup()
{ pinMode(pin, OUTPUT);
}

void loop()
{ shotNow();
  delay(5000);
}

— schnapp —

Dieses Programm löst zuverlässig etwa alle fünf Sekunden eine Aufnahme aus. Zuvor muss die Kamera natürlich in den Fernauslöser-Modus versetzt worden sein (Siehe zum Beispiel in den Kommentaren zum TV-Fernbedienungs Fernauslöser)

Werbung:

Weblinks:


Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>