m (Category) |
(Corrected script) |
||
(3 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
:'''Written for/on:''' Powershot A630, CHDK Build 125 or later required. |
:'''Written for/on:''' Powershot A630, CHDK Build 125 or later required. |
||
− | :'''Also works on:''' |
+ | :'''Also works on:''' Powershot SX10 IS |
This is a new focus bracketing script. It uses set_focus to set the focus and is faster and more reliable than other scripts. |
This is a new focus bracketing script. It uses set_focus to set the focus and is faster and more reliable than other scripts. |
||
− | '''Script Code''' |
+ | '''Script Code'''(save as "focus2.bas" to your /SCRIPTS/ folder) |
<pre> |
<pre> |
||
rem Author Bubendorf |
rem Author Bubendorf |
||
Line 46: | Line 46: | ||
</pre> |
</pre> |
||
+ | A few more additions to the code: |
||
+ | |||
+ | '''Script Code'''(save as "focusrange.bas" to your /SCRIPTS/ folder) |
||
+ | <pre> |
||
+ | rem arne182 |
||
+ | rem G12 specific code |
||
+ | @title FocusRange |
||
+ | @param a Number of +steps |
||
+ | @default a 3 |
||
+ | @param b Number of -steps |
||
+ | @default b 3 |
||
+ | @param c Focus range in cm |
||
+ | @default c 10 |
||
+ | @param d Infinity included, yes = 1 |
||
+ | @default d 0 |
||
+ | |||
+ | if a<0 then let a=0 |
||
+ | if b<0 then let b=0 |
||
+ | if c<1 then let c=1 |
||
+ | if c>50 then let c=1 |
||
+ | |||
+ | rem ------- camera specific section / omit if you are not using G12 ------- |
||
+ | y=0 |
||
+ | get_prop 133 x |
||
+ | if x=1 then y=y+1 else print "Not in MF mode" |
||
+ | get_prop 12 x |
||
+ | if x=0 then y=y+1 else print "Continuous AF is on!" |
||
+ | if y=2 then goto "continue" |
||
+ | set_focus f |
||
+ | end |
||
+ | rem ------- camera specific section / omit if you are not using G12 ------- |
||
+ | |||
+ | :continue |
||
+ | sleep 500 |
||
+ | cls |
||
+ | get_focus f |
||
+ | if f<0 then let f=65530 |
||
+ | if f<69 then let b=0 |
||
+ | if f>17590 then let a=0 |
||
+ | p=b |
||
+ | if (f-(b*c*10)/(a+b))<68 then let b=(f-68)*(a+p)/(10*c) else goto "shoot" |
||
+ | if b<0 then let b=0 |
||
+ | if p=b then print "" else let a= a+p-b |
||
+ | print "b adjusted to ", b |
||
+ | print "press Set to proceed" |
||
+ | print "press Shutter to exit" |
||
+ | wait_click |
||
+ | |||
+ | :shoot |
||
+ | x=get_near_limit |
||
+ | y=get_far_limit |
||
+ | |||
+ | g=f-b*c*10/(a+b) |
||
+ | set_focus g |
||
+ | sleep 100 |
||
+ | print "Near focus check" |
||
+ | print "press Set to proceed" |
||
+ | print "press Shutter to exit" |
||
+ | wait_click |
||
+ | |||
+ | g=f+a*c*10/(a+b) |
||
+ | set_focus g |
||
+ | sleep 100 |
||
+ | print "Far focus check" |
||
+ | print "press Set to proceed" |
||
+ | print "press Shutter to exit" |
||
+ | wait_click |
||
+ | |||
+ | print "waiting for camera" |
||
+ | print "vibrations to stop" |
||
+ | sleep 2000 |
||
+ | |||
+ | for s=-b to a |
||
+ | g=f+s*c*10/(a+b) |
||
+ | set_focus g |
||
+ | sleep 100 |
||
+ | get_focus g |
||
+ | print "Shoot", s, "(", g, ")" |
||
+ | shoot |
||
+ | next s |
||
+ | if d=1 then gosub "infinity" |
||
+ | |||
+ | set_focus f |
||
+ | |||
+ | end |
||
+ | |||
+ | :infinity |
||
+ | g = 65530 |
||
+ | print "Shoot infinity", "(", g, ")" |
||
+ | set_focus g |
||
+ | sleep 100 |
||
+ | shoot |
||
+ | return |
||
+ | </pre> |
||
[[Category:Scripts|Focus Bracketing with set focus and get focus]] |
[[Category:Scripts|Focus Bracketing with set focus and get focus]] |
Latest revision as of 10:30, 20 October 2012
Focus Bracketing with set_focus and get_focus
- Written for/on: Powershot A630, CHDK Build 125 or later required.
- Also works on: Powershot SX10 IS
This is a new focus bracketing script. It uses set_focus to set the focus and is faster and more reliable than other scripts.
Script Code(save as "focus2.bas" to your /SCRIPTS/ folder)
rem Author Bubendorf @title Focus2 @param a Number of ±steps @default a 2 @param b Step size [x6] @default b 6 if a<1 then let a=2 if b<1 then let b=1 sleep 500 get_focus f for s=-a to a g=f if s<0 then gosub "negative" if s>0 then gosub "positive" print "Shoot", s, "(", g, ")" set_focus g shoot next s set_focus f end :negative for i=s to -1 g=6*g/(b+6) next i return :positive for i=1 to s g=g*b/6+g next i return
A few more additions to the code:
Script Code(save as "focusrange.bas" to your /SCRIPTS/ folder)
rem arne182 rem G12 specific code @title FocusRange @param a Number of +steps @default a 3 @param b Number of -steps @default b 3 @param c Focus range in cm @default c 10 @param d Infinity included, yes = 1 @default d 0 if a<0 then let a=0 if b<0 then let b=0 if c<1 then let c=1 if c>50 then let c=1 rem ------- camera specific section / omit if you are not using G12 ------- y=0 get_prop 133 x if x=1 then y=y+1 else print "Not in MF mode" get_prop 12 x if x=0 then y=y+1 else print "Continuous AF is on!" if y=2 then goto "continue" set_focus f end rem ------- camera specific section / omit if you are not using G12 ------- :continue sleep 500 cls get_focus f if f<0 then let f=65530 if f<69 then let b=0 if f>17590 then let a=0 p=b if (f-(b*c*10)/(a+b))<68 then let b=(f-68)*(a+p)/(10*c) else goto "shoot" if b<0 then let b=0 if p=b then print "" else let a= a+p-b print "b adjusted to ", b print "press Set to proceed" print "press Shutter to exit" wait_click :shoot x=get_near_limit y=get_far_limit g=f-b*c*10/(a+b) set_focus g sleep 100 print "Near focus check" print "press Set to proceed" print "press Shutter to exit" wait_click g=f+a*c*10/(a+b) set_focus g sleep 100 print "Far focus check" print "press Set to proceed" print "press Shutter to exit" wait_click print "waiting for camera" print "vibrations to stop" sleep 2000 for s=-b to a g=f+s*c*10/(a+b) set_focus g sleep 100 get_focus g print "Shoot", s, "(", g, ")" shoot next s if d=1 then gosub "infinity" set_focus f end :infinity g = 65530 print "Shoot infinity", "(", g, ")" set_focus g sleep 100 shoot return