Intro: Programmable Time-lapse Remote
I did mine for the Pentax SLR series cameras because that's what I own.
I used the pic16f688 chip because that's what I had and it can run on 2 AA batteries.
The interface is a bit goofy because I had no small potentiometers. It starts at one second per shot, and increases by 1 second each time you press the button, and starts over when you turn it off. So to do 10 second timer, you turn on and press button 9 times. (I'll probably just put a trim pot on there eventually.)
The circuit design is also goofy. To skip using wires, I use 2 I/O pins as grounds, 1 for LED and 1 for button so both LED and button are between 2 I/O pins. There is also an internal pull-up resistor enabled on the input pin for the button.
The most basic thing is outputting a 38 kHz square wave through an infrared LED. Once you can do this, to make the Pentax camera fire, it goes: (ON 13ms) + (OFF 3ms) + 7 * [(ON 1ms) + (OFF 1ms)] where "ON" means 38kHz output and "OFF" means OFF.
To those not programming inclined, I recommend using the Arduino setup explained in the link below.
I originally bought a 5$ Chinese Pentax remote and attached the button to a 555 circuit, but it was too sloppily assembled for me.
To find the Pentax signal, I connected an IR receiver module to my microphone jack and recorded the signal from the old remote and looked at it in audacity.
(This link also uses the same signal for Pentax control)
Details on Arduino code to accomplish same results for several different cameras: