Arduino for time lapse photography
I did this by splicing into my Canon's remote shutter release (it has 3 conductors, so I used an 1/8" stereo headphone jack as the connector).  That way I can put the ends back together and use it like normal, or I can plug it into an arduino and control it digitally. I drive it by connecting a digital output from the arduino to the base of a transistor (the other two connectors on the transistor went to ground and another of the conductors from the cable).  You'll have to experiment with your cable to find what works
on your particular camera model.  If I'd had an optoisolator it would have made sense
to use that instead of the transistor.

After that, it's a matter of figuring out how to sleep your arduino.  You can start with
a basic call to delay().  For truly long runs you may wish to use the watchdog timer or
a RTC to the system.

Tips:


You want to keep the button "pressed"
for just long enough to trip the
shutter - 100ms is probably good.
Turn off auto-focus.  Set your lens
on manual focus, otherwise you'll 
get unpredictable results.  In low
light you may not get anything at all.
Alternatively, set the camera to single
exposure mode and leave the button down
except for a short period before each new
exposure.  You won't know when the exposure
goes off each time, but you'll have a good
chance of getting one some time while
you have it down.