Intervaluino: A time-lapse movie device

Hi everyone

Are you fascinated by time-lapse movies, but don't want to spend your money on expensive gadgets?

To shoot time-lapse series with a photo camera, you need a device called an intervalometer. It tells your camera to take pictures at specific intervals.

I've built an intervalometer for Canon SLR cameras (e.g. EOS 300-400, DigitalRebel) based on Arduino. I call it the Intervaluino. If you want to build one yourself, I've posted circuit schematics, component list, code, photos, and an explanation on my blog:

http://www.sporez.com/honeyjar/?p=347

The description assumes basic electronic and soldering skills.

Let me know what you think! LordYo

PS: fyi, I cross-posted this on the MAKE forum (http://forums.makezine.com/comments.php?DiscussionID=3081)

Cool 8-) Nice web page too.

Suggestions for further refinements from me would be:- Flashing LED to show it's still working. Countdown indicator to next exposure (7 seg display activated by push button to save battery) Count of how many exposures you have taken.

Have you got anything you have produced using this you could post?

@Grumpy_Mike: Thanks!

The flashing light shouldn't be difficult to implement;

Countdown / # exposures: Good idea, but I don't know anything about display I/O - is there a recommended one for the Arduino?

I'm not happy with the loop() code at the moment; the delay commands I used freeze any kind of interaction with the device until the delay time is over; I should probably use some kind of do..while loop and put some event triggers in there. Does the Arduino C language have an independent timer/clock which you can access as a variable?

At the moment, I haven't produced any movies with it yet, but will experiment over the weekend (flower opening).

For the display, look into using an LCD module. There's a nice library, it's quite easy to use and takes very little power compared to LED displays. Once you add the LCD, it shouldn't be too hard to add some buttons to let you set the interval rate without reprogramming the MCU in the field.

There is an interrupt timer, look up FrequencyTimer2 on the playground.

This project is something I've been considering doing for a while, but you left out what seems to me to be the main part. How do you stitch all these pictures into a movie, what software do you use?

Can you resample the image rate easily, like if you take a picture every 10 seconds, only use 1 frame from every minute or from every 30 seconds. So that after you're done recording, you can easily change the playback rate.

Hi, Combining stills into a movie is quite easy. Quicktime will let you do that or if you don't want to spend any money the iMovies will let you put in a number of stills and let you determine the time for each frame.

Unless of course you have a windoze machine :'( then there is a free movie editing application that comes with XP that is supposed to do the same thing but being Microcrap it crashes when you try it.

As to the loop, try using the mills() function, look it up in the reference. Set a time for the next exposure and only do the trigger stuff when it is free. If you reset the mills() every time you take a frame there is no need to worry about the 9 hour roll over with this counter.

I've uploaded a sample movie I shot yesterday evening http://www.sporez.com/honeyjar/?p=360. 4h of clouds, squished into 45s at 25fps.

If you want to combine stills into a movie, check out this metafilter thread: http://ask.metafilter.com/50288/Stitching-7000-jpegs-into-one-video-file - lots of good tips there.

Thanks for the tip with the LCD module; how many separate pins does a simple module use on the Arduino?

I'll take a look at millis() and FrequencyTimer2. 9h max interval time for millis() sounds acceptable - for a one minute movie at 25fps you would need to shoot 1.5 years with this interval. 0_0'

That's a nice looking video.

Why does the brightness seem to strobe in these kinds of movies? Something is obviously changing in the lighting.

Thanks for the tip with the LCD module; how many separate pins does a simple module use on the Arduino?

You can connect a parallel LCD directly in 4-bit mode using 6 pins on the Arduino.

There are also serial driver chips you can buy (basically a pre-programmed microcontroller), that will let you get away with 1 pin.

take a look at millis() and FrequencyTimer2. 9h max interval time for millis() sounds acceptable - for a one minute movie at 25fps you would need to shoot 1.5 years with this interval. 0_0'

If you want to reset millis() back to zero so that you don't have a nine hour limit, you can put the following in your code:

extern volatile unsigned long timer0_overflow_count;

void resetMillis() { cli(); // disable interrupts timer0_overflow_count = 0; sei(); // enable interrupts }

  • Ben

Damn, I love your box ^_^

MMmh... Getting serious, just wanted to specify that most cameras (except some high-end ones) use the same type of remote control system, where only the plug type differs. So for [add your favorite camera manufacturer's name here] fans, this system should be quite easy to adapt to your own brand.

Just take care if you still own old (but cool :p) high-end Nikon film SLR (F90 and alike) which uses a din-like connector : You could destroy your camera if you connect the wrong pins. Bad.

@tehboii: yeah, the box is cool isn't it? I'm keeping way too many gift boxes, so I'm happy I finally could use one!

compatibility: right; I wondered about other camera controllers. I suppose if they are digital, the principle shouldn't be much different. thanks for the tip!

@bens: thanks for the mills() reset code; I need to play around with interrupts to get the hang of them. so much to learn...

Very nice! I don't want to hijack your thread, but for those interested in a combination intervalometer/motorized pano head, check out this vid http://www.youtube.com/watch?v=pDU6dwBkbw8. I am the inventor, so I am biased, but I still like your Arduino approach. It is great for those who like to build their own stuff and who don't fancy spending a lot of money. That is how I got into making my gadget, after all.

One of my early prototypes was made in a gift box, by the way!

it totally ignores a proper alignment to the optical axes. resulting that all pictures have parallax problems, which are hard to stitch exact together.

i made an arduino based panorama-robot inside a cookie box and use a nunchuk controller to set the initial position, nr of pics and …

just in prototyping phase and a lot of things can be optimized, now i am waiting for NANO to get a smaller footprint and a wireless nunchuk instead of cable salad.

paul

it totally ignores a proper alignment to the optical axes. resulting that all pictures have parallax problems, which are hard to stitch exact together.

i made an arduino based panorama-robot inside a cookie box and use a nunchuk controller to set the initial position, nr of pics and ...

just in prototyping phase and a lot of things can be optimized, now i am waiting for NANO to get a smaller footprint and a wireless nunchuk instead of cable salad.

paul

Parallax is only an issue for certain kinds of panos. For gigapixel-types where you use a long lens, there is no need to worry about the nodal point. But if it is an issue for you, you CAN set the nodal point over the axis of rotation with the AutoMate and an inexpensive add-on to slide the camera forward and backward. The automated tilt axis cannot be made to go through the nodal point. However, experience shows that this very rarely creates a problem for stitching when shooting with wide angle lenses because the objects in the foreground are almost always in the same row of images anyway. In any case, the alternative for the DSLR owner is either to build their own machine or kick down over $4500 for a Rodeon. If you really are convinced that you need complete nodal point adjustment capability in the vertical tilt axis, my advice is to design and build your own head. It will probably cost you as much or more than buying the Rodeon, but you will have learned so much more.

LordYo, pretty cool. I like your enclosure... a definite step up from your "basic black." :)

I've built an Arduino-based intervalometer/timer/remote that's provides lots of capabilities. It's based on an LCD, using a simple 6-wire interface, and a number of pushbuttons to support a heirarchical menu interface that supports lots of features. I do my timing and scheduling from a cheap real-time clock chip. In addition to timing, the clock chip gives me calendar features for day-of-the-week intervalometer start/stop scheduling.

Perhaps you could use my project as a source of improvements to your intervalometer.

Project and source available here:

http://www.mindspring.com/~tom2000/Projects/AI-1_Remote/AI-1_Remote.html

Good luck!

Tom

I was going to build something similar myself, but I was going to use a BJT transistor instead of a reed relay. By applying 5v to the base, the resistance between the collector and emitter goes to zero. Is there any reason not to use a transistor?

I did a similar thing with a Nikon D80, but since the camera had an infrared receiver I was able to just use an IR LED to send the code from the Arduino that then triggered the shutter.

Also wired it up to a motion sensors, projects and code here:

http://luckylarry.co.uk/tag/d80/

OK I did more research on the transistor thing...looks like I misunderstood how a transistor works. Got myself a reed relay and also an opto isolator...going to see how well each works. My Sony SLR doesn't need zero ohms to trigger...it triggered even with 10k ohms across the contacts.

FIRST POST. I am in the process of taking LuckyLarrys' code for the Nikon D50 so I can mount the D50 with a wide lens behind the futbol goal and maybe get one or two keeper pictures this fall when the boys high school season gets underway in about 6 weeks. I want the D50 to take a picture everytime I take one with my D3 from the sideline. (I am a retired Caterpillar engineer who learned a long time ago to just use what works and modify as required instead of reinvented everything.) . I want LL to review the code to make sure I have the "credits" correctly noted and a chance of the code working before I purchase the needed hardware. . Long past the coding just to be coding so this might be my only project, but I do have a house full of X10 devices doing nothing since we moved and the wife's full size geese decoys got pinched last Christmas while in the front lawn. :) . This should make the one post so I can email LL. :) . kindest, -b

no need to credit really as long as its kept for non-profit and you post back the pictures of your project working :)