Mittels CHDK kann man die Canon Kameras gut programmieren. Für AvisCam und USB Auslösung benutze ich folgendes Script mit automatischer Berechnungsfunktion.
Die Verschlusszeit wird vorgegeben und die ISO-Werte werden entsprechend berechnet.
@title AvisCam USB Shutter @param q Shutter 1st Shot @default q 1 @values q 1/100 1/200 1/400 1/640 1/800 1/1000 @param p Shutter 2nd Shot @default p 1 @values p 1/100 1/200 1/400 1/640 1/800 1/1000 @param f AutofocusLock @default f 1 @values f off on @param w Pic Delay (sec) @default w 2 @param r Raw Mode @default r 0 @values r off on rem Defaults - Kameraabhängig - Tabelle benutzen rem Minium ISO = 80 n = 371 rem Maximum ISO = 3200 x = 891 print "Set focus unendlich" set_focus 65535 sleep 500 print "Set AF lock" set_aflock f sleep 500 rem ND Filter ausschalten print "ND Filter ausschalten" set_nd_filter 2 sleep 200 rem Raw mode setzen print "Set Raw Mode" set_raw r sleep 1000 w = w * 1000 print "Start!" :eval c = 0 while 1 p = get_usb_power 1 if p > 0 then c = c + 1 rem Shoot Foto now rem 1. Messen gosub "meter" rem 2. Verschlusszeit festlegen v = q gosub "gettv96" rem 3. Belichtung ausrechnen gosub "exposure" rem 4. Knipsen click "shoot_full" print "Shot TV1 #", c, S , T rem 2. Foto wenn untersch. Bel. Zeiten if q <> p then sleep 1000 rem 2. Verschlusszeit festlegen v = p gosub "gettv96" rem 3. Belichtung ausrechnen gosub "exposure" rem 4. Knipsen print "Shot TV2 #", c, S, T click "shoot_full" endif rem Zwangspause lt. Parameter sleep w endif wend rem Bild messen :meter press "shoot_half" while get_shooting = false sleep 10 wend A = get_av96 B = get_bv96 return rem Belichtung (ISO berechnen) :exposure S = t + A - B rem Limit minimum Sv if S<n then let S=n rem Limit maximum Sv if S>x then let S=x rem Tv anpassen falls außerhalb der limits if S <> A + t - B then let T = B + S - A else let T = t set_tv96_direct T set_sv96 S sleep 200 return rem Umwandlung verschlusszeit in werte :gettv96 if v = 0 then let t=640 if v = 1 then let t=736 if v = 2 then let t=832 if v = 3 then let t=896 if v = 4 then let t=928 if v = 5 then let t=960 return