Loading...
 

Time Lapse Camera Script

#!/bin/sh 
# Timelapse script, because timelapse options in raspistill don't
# down the camera between captures. Script also provides a camera
# (v2 cameras don't include one) and a system halt button.
# 'gpio' command requires WiringPi: sudo apt-get install wiringpi
# Limitations: if DEST is FAT32 filesystem, max of 65535 files in
# if DEST is ext4 filesystem, may have performance issues above 10K files. # For intervals <2 sec, better just to use raspistill's timelapse feature. 
# Configurable stuff...
INTERVAL=15
WIDTH=1280
HEIGHT=720
QUALITY=51 DEST=/boot/timelapse PREFIX=img
HALT=21 
LED=5
prevtime=0
gpio -g mode $HALT up
gpio -g mode $LED  out
mkdir -p $DEST
directory; 
# Destination directory (MUST NOT CONTAIN NUMBERS) # Image prefix (MUST NOT CONTAIN NUMBERS)
# Halt button GPIO pin (other end to GND)
# Status LED pin (v2 Pi cam lacks built-in LED) 
# Time of last capture (0 = do 1st image immediately) # Initialize GPIO states
# Create destination directory (if not present) 
# Find index of
FRAME=$(($(find
while : do 
last image (if any) in directory, start at this + 1
$DEST -name "*.jpg" -printf %f\\n | sed 's/^[^1-9]*//g' | sort -rn | head -1 | sed 's/[^0 
# Forever 
# Time between captures, in seconds # Image width in pixels
# Image height in pixels
# JPEG image quality (0-100) 
while : # Until next image capture time do 
currenttime=$(date +%s)
if [ $(($currenttime-$prevtime)) -ge $INTERVAL ]; then 
   break # Time for next image cap
  fi
# Check for halt button -- hold >= 2 sec while [ $(gpio -g read $HALT) -eq 0 ]; do 
if [ $(($(date +%s)-currenttime)) -ge 2 ]; then gpio -g write $LED 1
shutdown -h now 
fi done 
done 
OUTFILE=`printf "$DEST/$PREFIX%05d.jpg" $FRAME`
# echo $OUTFILE
gpio -g write $LED 1
raspistill -n -w $WIDTH -h $HEIGHT -q $QUALITY -th none -t 250 -o $OUTFILE gpio -g write $LED 0 
FRAME=$(($FRAME + 1)) # Increment image counter 
prevtime=$currenttime # Save image cap time done