Canon EOS 450D triggered by an Arduino

I was finally able to track down a 2mm stereo plug here in Belo Horizonte (Eletronica Guarani) so I can remotely control my Canon SLR from the Arduino.

It uses two SPDT relay switches, one for the shutter and one for focus.  The way it's setup, there's no way I can cross the wires and hurt my camera, even after a few beers.  In the photo the black wire is hooked to ground and the blue wire to pin 12 on the Arduino (or Seeeduino in my case).  So far I've only used the shutter and have left auto-focus off.
Here's my first attempt of a timelapse movie with this setup:

You'll find the code here. This page helped me figure out to hook-up the plug.

Making the movie is a little tricky on Linux.  First you'll need to installed GraphicsMagick (a faster version of ImageMagick):
sudo aptitude install graphicsmagick
Then you'll need to downloaded and compile from source mpeg2encode to that it can do the conversion to mpeg (this doesn't come included with GraphicsMagick because of some licensing issues).
mkdir -p ~/tmp
cd ~/tmp
tar xvf mpeg2vidcodec_v12.tar.gz
cd mpeg2
sudo cp src/mpeg2enc/mpeg2encode /usr/local/bin/
sudo cp src/mpeg2dec/mpeg2decode /usr/local/bin/
cd ..
rm -rf mpeg2
rm mpeg2vidcodec_v12.tar.gz
Finally to do the conversion you need to go to a directory that has all your photos and execute:
gm convert -size 640x480 -resize 640x480 -monitor *.jpg movie.mpeg
This will convert all the jpg images in the directory to 640x480 and create a new file called movie.mpeg (-monitor is to output the progress).
It's a good idea to remember to set your camera to the lowest image quality settings before hand so you don't waste time downloading large images that will be downscaled anyway.


Popular posts from this blog

Seven Segment Display in Inkscape

Shortest Sudoku solver in Python