CHDK/uBASIC/Scripts/CanonA640: Shutter Bracketing

Shutter Bracketing

 * Written for/on: Canon A640
 * Also works on: Other Canon AXXX (Not tested)

Shutter Bracketing by Johan Van Barel (http://www.vanbarel.com)

The purpose is to create a High Dynamic Range (HDR) image from a set of images taken at different exposures.

The script takes a number of images around the selected shutter speed. So if you take 3 pictures, with shutter speed set to 1/250" and Step Size=3 (=1EV), it will take the first picture at 1/500", the second at 1/250" and the third at 1/125". You can later stitch the images together with a program like Photomatix (http://www.hdrsoft.com/index.html)

ps. There seems to be a minor bug in the set_tv command. After the script has finished, the display does not show the actual shutter speed value. You can check this by half-pressing the shoot button. This will update the display to the correct internal shutter speed value.

Documentation/Help (save as a small ShutterBracket.txt" file to your /CHDK/SCRIPTS/ folder)

Select M mode on your Canon A640 and manually select your desired center shutter speed.

Parameters:


 * Number of Pics (Default=3)
 * Shutter Step Size (1/3 EV) (Default=3)
 * Initial Delay (Sec) (Default=1)

Script Code (save as "ShutterBracket.bas" to your /CHDK/SCRIPTS/ folder)

rem Johan Van Barel 25-07-2007 rem Shutter-Bracketing for Canon A640

@title Shutter Bracket (Select M Mode) @param a Number of Pics @default a 3 @param b Shutter Step Size (1/3 EV) @default b 3 @param c Initial Delay (Sec) @default c 1

if a<2 then let a=2 if b<1 then let b=1 if c<0 then let c=0

print "Pics:"; a, "Step:"; b

sleep c*1000

get_tv x

set_tv_rel (a-1)*b/2

for s=1 to a   get_tv t    gosub "showshutter" shoot set_tv_rel -b next s

set_tv x

end


 * showshutter

if t=-13 then print "Pic", s, "of", a, "T=15s" if t=-12 then print "Pic", s, "of", a, "T=13s" if t=-11 then print "Pic", s, "of", a, "T=10s" if t=-10 then print "Pic", s, "of", a, "T=..s" if t=-9 then print "Pic", s, "of", a, "T=8s" if t=-8 then print "Pic", s, "of", a, "T=6s" if t=-7 then print "Pic", s, "of", a, "T=5s" if t=-6 then print "Pic", s, "of", a, "T=4s" if t=-5 then print "Pic", s, "of", a, "T=3.2s" if t=-4 then print "Pic", s, "of", a, "T=2.5s" if t=-3 then print "Pic", s, "of", a, "T=2s" if t=-2 then print "Pic", s, "of", a, "T=1.6s" if t=-1 then print "Pic", s, "of", a, "T=1.3s" if t=0  then print "Pic", s, "of", a, "T=1s" if t=1  then print "Pic", s, "of", a, "T=0.8s" if t=2  then print "Pic", s, "of", a, "T=0.6s" if t=3  then print "Pic", s, "of", a, "T=0.5s" if t=4  then print "Pic", s, "of", a, "T=0.4s" if t=5  then print "Pic", s, "of", a, "T=0.3s" if t=6  then print "Pic", s, "of", a, "T=1/4s" if t=7  then print "Pic", s, "of", a, "T=1/5s" if t=8  then print "Pic", s, "of", a, "T=1/6s" if t=9  then print "Pic", s, "of", a, "T=1/8s" if t=10 then print "Pic", s, "of", a, "T=1/10s" if t=11 then print "Pic", s, "of", a, "T=1/13s" if t=12 then print "Pic", s, "of", a, "T=1/15s" if t=13 then print "Pic", s, "of", a, "T=1/20s" if t=14 then print "Pic", s, "of", a, "T=1/25s" if t=15 then print "Pic", s, "of", a, "T=1/30s" if t=16 then print "Pic", s, "of", a, "T=1/40s" if t=17 then print "Pic", s, "of", a, "T=1/50s" if t=18 then print "Pic", s, "of", a, "T=1/60s" if t=19 then print "Pic", s, "of", a, "T=1/80s" if t=20 then print "Pic", s, "of", a, "T=1/100s" if t=21 then print "Pic", s, "of", a, "T=1/125s" if t=22 then print "Pic", s, "of", a, "T=1/160s" if t=23 then print "Pic", s, "of", a, "T=1/200s" if t=24 then print "Pic", s, "of", a, "T=1/250s" if t=25 then print "Pic", s, "of", a, "T=1/320s" if t=26 then print "Pic", s, "of", a, "T=1/400s" if t=27 then print "Pic", s, "of", a, "T=1/500s" if t=28 then print "Pic", s, "of", a, "T=1/640s" if t=29 then print "Pic", s, "of", a, "T=..s" if t=30  then print "Pic", s, "of", a, "T=1/800s" if t=31 then print "Pic", s, "of", a, "T=1/1000s" if t=32 then print "Pic", s, "of", a, "T=1/1250s" if t=33 then print "Pic", s, "of", a, "T=1/1600s" if t=34 then print "Pic", s, "of", a, "T=1/2000s" if t=35 then print "Pic", s, "of", a, "T=1/2500s"

return