Have you ever wanted to make one of those cool timelapse videos of a starry nighttime sky?
I've wanted to be able to shoot one with my camera but never could make myself sit out in the mosquitoes all night pressing the shutter every "X" number of minutes. I have a simple manual remote shutter trigger cable that I've been using but I really wanted something automatic. Something I could just sit back and let do the work for me! I could take the easy way and just buy one but it's much more satisfying to build one yourself!
Step 1: From Idea to Device
I started out trying to find a source for the Nikon connectors I needed to build a cable but There were none to be found!
Since I already had a simple remote shutter release cable that came with the
camera I got to thinking. "I should be able to automate this somehow! I cracked open the remote and discovered it's nothing more than a simple switch. Shorting two connections together to trigger the shutter. I could just add a relay and trigger it with a micro-controller.
Step 2: Cable Surgery to Access the Camera Controls.
And so my adventure began and now I'm going to share it with you.
Studying the remote I decided early on I'd like to maintain it as a functional standalone shutter remote cable but also have the option to "jack into" it with a control box for automated use.
I dug around in my junk parts box and came up with some 1/8" audio jacks I'd scavenged from an old laptop.
Since it was a stereo plug it had 3 connectors. Perfect! The remote had three connectors. Focus,shutter and ground.
I moved the jack around in the case until I found a spot it fit well, look good and be easy to access. I then drilled a small hole to accommodate the connector and hot glued it all in place. Taking care NOT to get any glue inside the jack! Since the Plug connector fit snugly inside the remote cable case. Hot glue was all that was needed to hold it in. the case itself, when closed up provided all the securing it would need.
I wired the plug up in parallel with the existing switch so that a plugged in cable or the button itself would short the connections as needed. the the other end of the plug will be controlled with an Arduino Nano.
Step 3: How to Trigger? Relay? Something Else?
After messing around with a relay shield I decided it would be cleaner and more compact to use a simple transistor switch to trigger the shutter instead of a bulky relay. Back to the parts box! I found a couple of 2n2222 transistors. They'd work nicely!
Now a little back ground on How a transistor can be used as a switch.
A transistor either allows a current to flow across it or not. Depending on whether a separate smaller current is being applied to it. basically... a small current on the Base of a 2n2222 allows the emitter and collector to conduct or not.
If the arduino sends current to the base. The button is pressed. If no current is applied the button is NOT pressed.
See the graphic I created to show how this works. A picture is worth a thousand words!
Step 4: How to Control the Beast!
I used an Arduino Nano as the micro-controller because it's small and I happened to have an extra one laying around!
When deciding what I needed I thought first and foremost it needed a simple interface. A way to set the time lapse time with simple buttons and have a readout that could provide useful information. Up, Down and enter. I found Radio Shack had a Parallax Serial LCD module on sale so I grabbed one up for my display. I've ordered a nokia display that I'll add in a later revision so i can display more information but for now I'm using the 2 line LCD display. for buttons I scavenged buttons from an old PC case. When a button is pressed it makes the attached pin sense 5V and this uses this as the trigger for a response. The lines are held low by a 10k resistor shorted to ground. when the button is pressed the resistor is bypassed and the pin is pulled high. The Arduino Code reads the buttons presses and takes appropriate action.
Step 5: Circuit Schematic & Build
Lets get the Arduino onto the breadboard so we can get started. I chose a small piece of breadboard and just soldered all the parts directly together through the holes and to the arduino nano pins. All of this will eventually be placed into a small project box. (when I get one). The wiring is pretty streight forward. See the diagram and schematic.
the LCD is an Parallax LCD module. It communucates via serial with the arduino. Any other LCD display or screen will work but the code will need to be modified to accomodate the changes.
Step 6: Arduino Sketch Flowchart and Code.
Now I needed to figure out exactly what I wanted this thing to do. At first I just had it taking a shot ever "X" number of seconds but ran into trouble when I found that the camera not only had to have time to expose the image. but then time to write the image to the SD card. After some experimenting I found that it takes double the time you set the shutter to plus 1 second extra. Thus a 10 second exposure would be 10 to expose the CCD, plus 10 more for the camera to do a dark frame noise cancellation, plus one second extra for a total of 21 seconds for a 10 second exposure.
so I wrote a routine into the arduino sketch to allow the user to select their exposure time and have it add the expected wait time to the timers. I've made a flow chart to show generally the flow of the arduino sketch.
When powered on the LCD is initialized and displays a short splash screen. "Raht Intervalometer". It then asks the user to enter the Photo interval minutes . you can cycle the number of minutes up and down using the Up/Down buttons. when the desired minutes interval is reached you press the "Enter/Select" button. if you desire a shooting interval less than a minuet in length then leave the counter at "0" and just press "Enter/Select". It then moves to the 10's of seconds counter.The same applies here. Press Enter/Select when done. then move on to the 1's and follow the same procedure. Thus.. If you wanted to take a photo every 2 minutes and 25 seconds you'd press
minutes 2 (enter)
Tens 2 (enter)
0nes 5 (enter)
The software then asks if you'd like to do time exposures of each frame.
If yest then you press the up button and the software proceeds to the time exposure settings. These are the same as the interval settings procedure. If you don't want to do long exposure then just hit the down button and the software proceeds to start taking photos.
If you're shooting long exposures. Make sure to set your camera's shutter speed to "BULB". The Intervalrometer will press and hold the shutter as long as you set for each shot. Be advised that most digital cameras have a Dark Frame Compensation routine that doubles the exposure times for most shots lasting over 10 seconds. The Arduino Code takes this into accound and provides a countdown display showing this Dark Frame wait time.
While the intervalrometer is shooting a "HOLD" can be placed on the next shot by pressing and holding the ENTER/Select button. You will see the display change to "HOLDING" and you can move the camera or make adjustments. Press Enter/Select again to resume.
Step 7: Finished Circuit on Perfboard
Eventually I'll get this installed into some kind of a project box. for now it just hangs off the tripod in all it's hacked together glory!!
Step 8: The Unit in Action!
And now for some videos showing the Intervalrometer in action!
The Holding example video may be upside down. I shot it with my phone and it was flipped. I've edited it to be right side up but... who knows? It still demonstrates the unit either way round! =)
I hope you enjoyed this Instructable and as always...
If you have any questions please ask!