Arduino Driven Camera Shutter Release Trigger

Passive Infra Red Movement Alarm Shutter_Release

 

On the 29th of Jun 2011 4 x6 a contributor on istockphoto wrote “Has anyone ‘successfully’ synced two Canon DSLR in the studio environment? I spent most of today trying to work it out. The best I could get it was 50% sync rate of the two cameras with the studio strobes.”

This started a conversation on what would be the best way to release the shutters on both cameras  at the same time. My suggestion was to uses the Arduino microprocessor for controlling the cameras. If you’re wondering I’m not a programmer or electronic engineer, in fact my knowledge on both subjects is about nil. So why would I suggest using a Arduino and trying a DIY project of building a camera shutter release, because sometime it’s the only way to get what you want without paying some insane price. The suggestion got from the Pocketwizard Rep to 4×6 was he needed something like the Pocketwizard Multimax. Which is okay if you have $300,00 plus just hanging around un-used. For me the main problem isn’t getting the flashes to fire, but have the cameras fire in sync. To get the flashes to fire all you would need it one cheap Ebay wireless flash trigger and slave the flashes together. The end cost for this test circuit was under $40,00, add wireless flash trigger and you’re talking about something around $70,00.

The shutter release I came up with is partly based on a design for an Arduino Intervalometer  that’s  posted on the OpenMoCo website. If you want to build this shutter release you’ll need to replace the LEDs in this test circuit with (2x) 4N28 Optocouplers, you can find more info on wiring your camera to the Arduino on the OpenMoCo site. The major changes I made was to add a Passive Infra Red Movement Alarm (PIR) sensor to trip the shutters if movement is detected. I also added a mode switch so that you could fire the cameras in a manual mode.

Passive Infra Red Movement Alarm Shutter_Release

The code that drive’s the cameras is listed below. If you want to improve on this design you’re free to copy and used the code. If you can think of any cool functionality to add let me know.

CODE:

//  4 X 6 Camera Trigger.v3
////////////////////////////////////////////////////////////////////
//Fires two cameras at the same time if motion is detected
// or two cameras at the same time if you select mode 0
// Mode 0 places the trigger in manual mode.
// @author: Willie B. Thomas /eyedesign9@googlemail.com
// @date: July 19 2011
// released under a creative commons “Attribution-NonCommercial-ShareAlike 2.0” license
// * http://creativecommons.org/licenses/by-nc-sa/2.0/de/
////////////////////////////////////////////////////////////////////////
int calibrationTime = 30;
int sensorPin = A0;                           // int Analog pin 0
int shutterPin = 13;                         // int Pin 13 for Camera 1
int shutterPin2 = 9;                        //  int Pin 9 for Camera 2
int ModeButton = 3;
int myButton = 7;                           //   sensor for camera mode

int val = 0;                              // val for storing the button state
void setup()
{

Serial.begin(9600);
  pinMode (shutterPin, OUTPUT);
  pinMode (shutterPin2, OUTPUT);
  pinMode (sensorPin, INPUT);
  pinMode (ModeButton, INPUT);
  pinMode (myButton, INPUT);

}

void loop(){
  val = digitalRead(ModeButton);        // Reads modebutton high this selects the Sensor mode
                                                                         //  If modebutton reads low this places the trigger into the manual mode. The void loop function calls
                                                                           //  two function one call mySensor the other myButtonTrigger.
  if (val == HIGH){
    mySensor();
  }
  else{
    myButtonTrigger();
    }
  }

// myButtonTrigger Function///////////////////////////////////////////////
 void myButtonTrigger(){

  val = digitalRead(myButton ); // read input value and store it// check whether the input is HIGH (button pressed)
  if (val == HIGH) {
    digitalWrite(shutterPin, HIGH); // turn LED ON
    digitalWrite(shutterPin2, HIGH); // turn LED ON
  } else {
    digitalWrite(shutterPin, LOW);
    digitalWrite(shutterPin2, LOW);
   // delay(1000);
    digitalWrite(shutterPin2,LOW);
    //delay(1000);
  }

}

void mySensor()
{
                                                                       //give the sensor some time to calibrate
  int Reading = analogRead(sensorPin);            // int “Reading” as varable for sensorPin and read the value

  if(Reading <=400){                          //   If value is less than or equal to 400 write pin 13/9 HIGH
 
    digitalWrite(shutterPin, HIGH);
    digitalWrite(shutterPin2, HIGH);
    delay(500);                               // Delay 500ms to fire shutters on both cameras than write pins LOW
    digitalWrite(shutterPin, LOW);
    digitalWrite(shutterPin2, LOW);
    delay(2000);                             // Delay 2000ms to give sensor time to reset
   
             } 

}

Advertisements
Comments
6 Responses to “Arduino Driven Camera Shutter Release Trigger”
  1. thujee says:

    Hi, i am a newbi here i am wondering if you could use audrino same technology as you have used here to apply over a actual digital camera (canon 5d or dslr or consumer digital camera)
    thank you

  2. John Patrick says:

    I recently taught myself Arduino primarily so I could create a custom camera control gadget to help me automate some timelapse tasks and it was well worth the effort (I do have a programming background but no serious electronics experience). Once you have the basics of firing the shutter from Arduino sorted as described here2, the possibilities are only limited by imagination and all sorts of triggers and automations are possible . This is another great example of creating a useful bit of kit from very little.

  3. www.maps.org says:

    Hi to every , because I am really keen of reading this webpage’s post to be updated on a regular basis. It includes pleasant material.

  4. It’s perfect time to make some plans for the longer term and it is time to be happy. I have read this publish and if I may just I desire to suggest you some attention-grabbing issues or tips. Perhaps you can write next articles referring to this article. I want to learn more things about it!

  5. click here says:

    Good way of explaining, and fastidious piece of writing to get information concerning my presentation subject matter, which
    i am going to deliver in institution of higher education.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: