Jump to content

Scripts para CHDK


Gliese

Publicaciones recomendadas

Hace tiempo que tengo la idea de hacer un script para el CHDK para hacer mas fácil la toma de fotos con las digicam.

Principalmente la idea es para fotos planetarias, donde se necesitan muchos cuadros y que usemos el timer para que no salgan movidas, aprovechando la resolución de la cámara en megapíxeles en vez de los 640x480 que nos da un video.

Por ejemplo la foto esta de Mariano Ribas aprovecha la resolución de fotos máxima de las cámaras:

http://www.espacioprofundo.com.ar/foros/about8828.html

Pero sacarlas se vuelve un trabajo tedioso y que lleva tiempo, y en casos como el de Júpiter que tiene una rápida rotación no tenemos mucho tiempo para sacar los frames a apilar.

Hasta ahora intenté hacer uno que "mantenga" presionado el botón de disparo y aproveche el modo ráfaga, pero sólo me saca una, no se como solucionarlo.

El otro que hice y es el que voy a postear es

No se si se puede reducir más el tiempo entre foto y foto, traté de sacarle el dark frame sustraction (opción de CHDK) pero el planeta queda con un halo de ruido y tarda lo mismo.

http://img403.imageshack.us/img403/4315/img5117o.jpg

Para pasar los scripts a la cámara copian lo que esta en código a un archivo .bas de 8 letras, lo pasan a la carpeta scripts del chdk en la tarjeta de memoria de la cámara y lo cargan desde la opción de scripts junto con el seteo de los parámetros.

Este es el intento fallido de hacer un script que mantenga pulsado el botón de disparo por x segundos, en teoría debería andar pero en la práctica saca sólo la primera foto. Aclaro que hay que poner la cámara en modo ráfaga antes de disparar y el valor a "Duracion" controla cuanto tiempo se quiere mantener presionado el botón de disparo (por default es 30 segundos), el b "Espera" controla cuanto tiempo pasa desde que activas el script hasta que hace la primera foto (para eliminar vibraciones por presionar los botones de la cámara, default 5 segundos).

@title Secuencia
@param a Duracion
@default a 30
@param b Espera
@default b 5

sleep b*100
press "shoot_half"
sleep 500
press "shoot_full"
sleep a*1000
release "shoot_full"
sleep 500
release "shoot_half"

end

El que sigue es el que funciona, pero saca una foto cada 7 segundos mas o menos y no puedo bajarlo más (tal vez necesite una SD de alta velocidad, SDHC). Los valores a modificar se explican por sí solos.

@title Secuencia
@param a Cantidad de fotos
@default a 10
@param b Espera (seg)
@default b 5

sleep b*100
for n=1 to a
press "shoot_half"
sleep 500
press "shoot_full"
sleep 500
release "shoot_full"
sleep 500
release "shoot_half"
sleep 500
next n

end

A ver si alguien quiere probarlos o alguna recomendación para mejorar los scripts es bienvenida también.

Enlace al comentario

Gliese . yo para fotos planetarias estaba usando del scripts llamado motion detec al cual le daba un valor de grillaro de 15x15 lo cual lo transformaba en muy sensible y disparaba fotos una tras otra ya que la camara encontraba diferencias de brillo continuamente , y el otro mas sensible aun es el scripts llamado lightning que esta desarrollado para cazar rayos en tormentas , ese ya es sensible por naturaleza jajaja

creo que yo ya los habia posteado en el foro hace tiempo , cualquier cosa te los vuelvo a subir y los probas

Saludos , Mauricio

Enlace al comentario

Gliese:

No tengo el chdk ni digicam pero mirando el codigo del script (el que funciona), éste se divide en dos partes:

1) la instruccion de espera en la primera linea (azul)

2) el bucle (rojo)

@title Secuencia

@param a Cantidad de fotos

@default a 10

@param b Espera (seg)

@default b 5

sleep b*100

for n=1 to a

press "shoot_half"

sleep 500

press "shoot_full"

sleep 500

release "shoot_full"

sleep 500

release "shoot_half"

sleep 500

next n

end

En el bucle o loop los valores de sleep son de aparentemente medio segundo que son referenciales nada mas...si el procesador esta muy ocupado haciendo otra cosa esos valores se multiplican..

Que quiero decir? que el codigo esta ok pero que hay algo que le esta retrasando el reloj que marca el ritmo...esto puede ser que cada foto en formato RAW tarde demasiado (en ese caso podrias probar la diferencia de calidad sin RAW)....o que el equipo se demore haciendo el dark Frame Substaction....o ambos..

Si estas dos opciones está activadas..proba sacandolas y corre el script aa ver que pasa.

En planetaria no le veo demasiada utilidad al RAW ni a la sustracción de darkframes..

Suerte

Alejandro

Enlace al comentario

Mauricio, me podrías pasar los scripts que mencionás?

Ale, el problema es que tiene que tener un poco de pausa entre las "presiones" de botón porque sino lo hace todo seguido y es como si hubiera apretado una sola vez.

Anduve cambiando los valores y me paso eso, que sacaba una sola y terminaba, puse a cargar las pilas para seguir probando mañana.

Enlace al comentario

Leandro:

Como te decia en mi post, el problema no es el codigo del script..esta OK. Mi sugerencia apunta a que no uses la funcion RAW como formato ni el Dark frame Substraction ya que el procesador DIGIC tiene que ocuparse de "bayerizar" la imagen , generar un dark, restarlo y guardar el nuevo RAW que es pesadito...Eso es lo que puede estar generando la demora entre disparo y disparo. No perdés nada con probar..

Para mi, coicido con lo que dice Baxter...el mayor valor del CHDK es el tiempo de exposicion, el resto es de valor muy relativo.

Alejandro

Enlace al comentario

Gliese aca te dejo los scripts que te comente anteriormente:

Motion detection ( detector de movimiento) , este scripts cambiando los valores de grillado desde el setup del scripts en la camara a valores por ejemplo de 15 x 15 y elvalor mas importante es el que se le da a threshold , por defecto es 10 , te da un rango a elegir desde 0 a 255 , mientras mas cerca del 0 elijas mas sencible es la captura de movimiento yo uso un valor de 5

copien y peguen esto en la carpeta scripts de la camara

rem Author: MLuna - based om MX3 sample script

rem Tested on S3IS only

rem Requires Fingalo's build v 119

rem Use with caution!

@title Motion Detection

rem Shot without auto-focus/with auto-focus/continously (nedd to put in continous mode manually)

rem T implies test mode with MD cells drawing and no shots taken

@param a Shot (0=nf/1=f/2=c/3=t)

@default a 1

rem How long the shutter button will be pressed in continous mode

@param b Continuos shoot (secs)

@default b 10

@param c Threshold (0-255)

@default c 5

@param d Compare Interval (msecs)

@default d 20

@param e Compare Interval (secs)

@default e 0

rem If this value is too small, the camera goes continously shooting after the 1st shot.

rem Experiment with this value to find one fitted to your needs

@param f Begin Delay (secs)

@default f 5

@param g Pix step(speed/accuracy adj)

@default g 5

@param h Columns

@default h 6

@param i Rows

@default i 6

rem Frame width in which no MD is performed (in cell units)

@param j Dead frame

@default j 0

if a<0 then let a=0

if a>3 then let a=3

if c<0 then let c=0

if d<0 then let d-0

if e<0 then let e=0

if g<1 then let g=1

if h<1 then let h=1

if i<1 then let i=1

if j<0 then let j=0

rem Conversions secs to msecs

let b=b*1000

let e=e*1000

let f=f*1000

let d=d+e

rem This is the timeout in msecs. After this period, the motion trap is rearmed.

let T=600000

rem Parameters for the Dead Frame

let J=j+1

let H=h-j

let I=i-j

let t=0

print "press Shutter Button to Stop"

:repete

md_detect_motion h, i, 1, T, d, c, 1, t, 1, J, J, H, I, 0, g, f

if a=0 and t>0 then click "shoot_full"

if a=1 and t>0 then shoot

if a=2 and t>0 then goto "continuos"

if a=3 then goto "test"

let t=0

goto "repete"

:continuos

let X=get_tick_count

press "shoot_full"

:contloop

let U=get_tick_count

let V=(U-X)

if V

release "shoot_full"

goto "repete"

:test

if t>0 then print "Detected cells: ",t else print "No detection in 10 min!"

let t=0

goto "repete"

end

y el otro que es similar pero con mas sensibilidad es MD Lightning , este scripts se usa para la captura de relampagos y rayos en tormentas

copien y peguen esto en la carpeta scripts de la camara

rem Author: fudgey - based on BarneyFive's MD Lightning6 and MLuna's Motion Detect scripts

rem Tested on A570IS, Allbest build 16

rem For bursts, set the camera in continuous shooting mode and set j>0

rem If j>0 in single shot mode, you will see your shot for j seconds on screen.

@title Fast MD with Burst/Preview 080205

@param a Columns

@default a 6

@param b Rows

@default b 4

@param c Threshold (0-255)

@default c 10

@param d Compare Interval (ms)

@default d 1

@param e Trigger Delay (0.1 sec)

@default e 42

@param f Rows to Exclude

@default f 0

@param g Pix-Step(speed/accuracy adj)

@default g 8

@param h Reg Mode(0-no,1-incl,2-excl)

@default h 0

@param i Measure Mode (1-Y,0-U,2-V)

@default i 1

@param j Burst/Preview (sec,0=off)

@default j 0

if a<1 then a=1

if b<1 then b=1

if c<0 then c=0

if g<1 then g=1

if f<1 then f=1

if j<0 then j=0

e=e*100

j=j*1000

print ">[";a;",";b;"] threshold: ";c

x=30000

if j>0 then goto "md_burst"

:md_singleshot

press "shoot_half"

t=0

do

md_detect_motion a, b, i, x, d, c, 1, t, h, 1, 1, a, f, 0, g, e

until t>0

click "shoot_full"

goto "md_singleshot"

:md_burst

press "shoot_half"

t=0

do

md_detect_motion a, b, i, x, d, c, 1, t, h, 1, 1, a, f, 0, g, e

until t>0

press "shoot_full"

let X=get_tick_count

:contloop

let U=get_tick_count

let V=(U-X)

if V

release "shoot_full"

goto "md_burst"

Cualquier cosa me avisan o preguntan

Saludos Mauricio

Enlace al comentario

Crear una cuenta o conéctate para comentar

Tienes que ser miembro para dejar un comentario

Crear una cuenta

Regístrese para obtener una cuenta nueva en nuestra comunidad. ¡Es fácil!

Registrar una nueva cuenta

Conectar

¿Ya tienes una cuenta? Conéctate aquí.

Conectar ahora
×
×
  • Crear nuevo...