AvisCam / Mikrokopter / CHDK USB Auslöseskript

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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.