Using a Linux computer, a web cam and some open-source software you can create time-lapse movies. Pretty much any web cam will do; I use a Microsoft Lifecam HD-5001 with 1280X720 resolution. I capture images at five minute intervals with Motion and then assemble the images into an MPEG-4 movie using ffmpeg. See this article for a shell script which calls ffmepeg to assemble an MPEG-4 movie from individual images.



To set up Motion I use the configuration file motion.conf shown below.
width 1280
height 720
mask_file motionMask.pgm #gray-scale mask file
smart_mask_speed 5
target_dir savedImages

text_right %d.%m.%Y\n%T\n%D.%q.%N
text_changes off
text_double on

jpeg_filename ../motionCapture/%Y/%m/%d/%H-%M-%S #Save images when motion is detected here

snapshot_interval 300 #take a snapshot every 5 minutes (300 seconds)
snapshot_filename %Y/%m/%d/%H-%M-%S
ffmpeg_timelapse 300
timelapse_filename %Y/%m/%d-timelapse
ffmpeg_timelapse_mode daily #create a new time-lapse movie every day

framerate 2
#minimum_frame_time 1

noise_level 32
threshold 800

despeckle EeEeEeEeDdDdDdDd
lightswitch 5
#setup_mode on
#locate on
output_motion on
#output_normal 0

Motion does three things with this configuration file. One is it saves a snapshot every 5 minutes. Two, it creates a time-lapse motion file every day from images taken every five minutes. Third it saves images (up to two per second) when motion is detected. So, Motion can be used to make time-lapse movies and act as a security camera at the same time!

I use the images taken at 5 minute intervals to create my own time-lapse movie in addition to the ones created by Motion. The following command will create an MPEG-4 movie from a series of appropriately named images:
ffmpeg  -y -i /tmp/img%05d.jpg -s 320x180 -b 1024k dreamCenterTimeLapse.mp4