All things Raspberry Pi and Time Lapse

Posts tagged ‘long’

gphoto2 camera scripts

I could not wait for my Raspberry Pi to arrive so I went ahead and wrote the scripts using gphoto to take pictures. These were written on a Fedora desktop, but since it is using standard Linux commands it should work from any distribution.

A very good tutorial on cron and at are availble here at IBM.

This first one is pretty standard. It will take a picture at noon once a day… The actual scheduling of the script will take place using the cron daemon.

#!/bin/bash
# jamesmiller
# 6-22-2012
#
# change directories to the correct folder to save the image
cd /home/jamesmiller/gphoto/1day
# actually take the picture using gphoto2
gphoto2 –capture-image-and-download –filename “%Y%m%d%H%M%S_1day.jpg”

Note the last line is supposed to be all on one line. The crontab entry for this first script will look like this… The twelve in the second position means to take the picture at 12:00 (noon) every day of the month, every month, every day of the week. Note that the time in cron uses a 24 hour clock.

0 12 * * * /home/jamesmiller/gphoto/1day

And the second one is very similar to the first. Except it will take a picture once every 5 minutes for an entire day on the first and fifth days of the month. In the final I will only use one of the days a month, but by shooting two days that gives me an error margin (if the power goes out that day) or some other unforeseen accident occurs.

#!/bin/bash
# jamesmiller
# 6-22-2012
#
# change directories to the correct folder to save the image
cd /home/jamesmiller/gphoto/5min
# actually take the picture using gphoto2
gphoto2 –capture-image-and-download –filename “%Y%m%d%H%M%S_5min.jpg”

Note the last line is supposed to be all on one line. This script is very similar to the last script except for the file location where it will store the images. This will keep the different scripts separate. However the crontab entry for this script is very different! The first (*/5) means to take a picture every 5 minutes, the second piece (4-20) means to only take the picture if the time is between 4am and 8pm, and the (1,5) means on the first and fifth of the month to execute. the last two stars mean every month, every day of the week. This script will provide a time-lapse that looks like 12 days – one for each month of the year.

*/5 4-20 1,5 * * /home/jamesmiller/gphoto/5min

The last script is more complicated. It uses cron and it also uses a different scheduling daemon called at.

#!/bin/bash
# jamesmiller
# 6-22-2012
#
# change directories to the correct folder to save the image
cd /home/jamesmiller/gphoto/1443min
# schedule the next runtime of this script
at -f ../camera_1443min now + 1443min
# store the date and time in a file to be read as the time
# when the picture was taken.
echo `date +%Y%m%d%H%M%S` >> ../1443_time
# actually take the picture using gphoto2
gphoto2 –capture-image-and-download –filename “%Y%m%d%H%M%S_1443min.jpg”

Note the last line is supposed to be all on one line. The purpose of this script is to take a picture at like 4:00am the first day, then the next day at 4:03, and the next day at 4:06 and so on. This last script will provide a very interesting time lapse as it will take one year and compress it into time lapse that looks like a day. It will start in the morning and end at night, but all 4 seasons will have passed. I am not totally sure at what time I want this to start, because there is no reason to take pictures in the dark. The cron details I have not finished working on yet, but I will add them here when I finish it.

cron details to follow

Those are my ideas for a year-long time lapse. This will give me three different looks into the scene over the course of a year. If anyone has other/more ideas for when the camera should take a picture do not hesitate to comment below!

Tag Cloud