Was ist CHDK?

CHDK (Canon hack development kit) ist ein Firmware Add-On für Canon Konsumerkameras. Neben diversen Zusatzfunktionen bietet CHDK auch eine Scripting-Funktion mit der für den MK-Einsatz entscheidende Funktionen realisierbar sind:

  1. Fernauslösung über den USB-Port (externes Schalten der 5V-Stromversorgung am USB-Port der Kamera) B. automatisches Auslösen in festgelegtem Zeitraster (alle 5s)

CHDK auf die Kamera bringen

Zum Einlesen zunächst die Anleitung http://chdk.wikia.com/wiki/German/CHDK-Handbuch

Deutsches Forum http://www.wirklemms.de/chdk/forum/

Als erstes Formatiert man eine Speicherkarte mit http://chdk.wikia.com/wiki/CHDK/Installing_with_Cardtricks

Und macht diese Bootfähig .

Dann kann man die Kamera Version auslesen (mit PC EDITOR ansehen)

Dannach sucht man sich die richtige Version CHDK und entpackt diese mit Cardtricks auf der SD Karte.

Mit Schreibschutz bootet man jetzt die Kamera mit CHDK (dauert ein wenig) Ohne Schreibschutz Bleibt alles beim alten.

Nun kann man die Einstellungen ändern. Wichtig viele funktionieren nur im Manuell Modus der Kamera!

Script - hier ist wichtig auf dem PC die Dateierweiterung(txt, doc,...) nicht auszublenden(Ordneroptionen). Die Scripte können mit dem Editor bearbeitet werden . Einfach das Default.bas öffnen folgendes Script einfügen und unter neuem MK.bas speichern.

CHDK Funktionen

Scripte für MK-Einsatz

CHDK Skript ZOOMSHOOT

Mit diesem Skript kann man in 2 Stufen rein- und rauszoomen, Einzelfotos und Dauerfotos schiessen.

Außerdem wird einmal alle 90 Sekunden kurz fokusiert um ein Abschalten des Displays zu verhindern - also das All-inklusiv Paket für den Mikrokopter.

Anleitung:

Sobald per Fernbedienungsschalter die USB-Spannung angelegt wird, zählt ein Counter hoch. Schaltet man zum richtigen Zeitpunkt ab, so werden folgende Funktionen ausgeführt:

0 bis 1 Sekunde: Einzelaufnahme

1 bis 2 Sekunden: Zoom in

2 bis 3 Sekunden: Zoom out

Nicht abschalten: Daueraufnahme

Das Zoomen funktioniert in 2 Stufen von Zoom 0 über 1,5x bis 3x.

Den folgenden Inhalt in eine leere TXT Datei einkopieren und in zoomshoot.bas umbennen:

@title ZoomShoot
@param a Shoot
@default a 10
@param b ZoomIn
@default b 20
@param c ZoomOut
@default c 30

do
  z=0
  while is_key "remote"
    z=z+1
    cls
    if z>0 and z<a then print "SHOOT:",z
    if z>a and z<b then print "ZoomIN:",z
    if z>b and z<c then print "zoomOUT:",z
    if z>c then
      print "SHOOT:",z
      gosub "fire"
    endif
  wend
  wait_click 1
  n=n+1
  if n=900 then
    click "shoot_half"
    n=0
  endif
  if z>0 then gosub "auswerten"
until is_key "set"

:auswerten
if z<=a then shoot
if z>a and z<=b and i=1 then
  set_zoom 8
  i=2
endif
if z>a and z<=b and i=0 then
  set_zoom 4
  i=1
endif
if z>b and z<=c and i=1 then
  set_zoom 0
  i=0
endif
if z>b and z<=c and i=2 then
  set_zoom 4
  i=1
endif
z=0
return
:fire
while is_key "remote"
  shoot
wend
return

MK Bilder Script

@title MK Bilder 
@param m max zeit TV96 Werte -18 bis 1056
@default m 736
@param p pause zwischen Bildern s
@default p 0
@param r raw 0 aus 1 ein
@default r 0
@param u Auflösung 0-8 gut-schlecht
@default u 0
@param e USB-Taster 0=aus 1=ein
@default e 0
@param k Korekturiso 54
@default k 54

rem blitz aus
while get_flash_mode<>2
  click "right" sleep 100
wend

rem zoom auf Weitwinkel
set_zoom 0

sleep 200

rem RAW oder JPG
set_raw r

rem beste Auflösung
set_resolution u

rem beste qualität
set_quality 0

rem Iso Startwert 1 etspricht iso 80
i=1

rem fokus auf unendlich
set_focus 65535
sleep 400
set_aflock 1

rem filter ausschalten (entspricht Belde 8 auf Blende 2,8 öffnen)
set_nd_filter 2

if e=0 then goto "messen"

:usb
P=get_usb_power
sleep 200
print "USB",P
if P>0 then goto "messen"
goto "usb"

:messen
  set_iso i
  press "shoot_half"
  sleep 500
  release "shoot_half"
  a=get_av96
  t=get_tv96
  b=get_bv96
  s=get_sv96
  cls
  print "Blende", a
  print "Zeit", t
  print "ISO", s
  print "b", b
  print b+s a+t
  sleep 100
  z=s+b-292
  rem Isoanpassung bei zu langer Belichtungszeit
  if z<m then gosub "iso"
  rem minimale Belichtungszeit sicherstellen
  if z<m then
  set_tv96 m
  set_nd_filter 2
  rem auslösen
  shoot
  sleep p*1000
  if e=1 then goto "usb"
goto "messen"

:iso
rem differenzberechnung
rem verlängert sich die Belichtzngszeit über den eingestellten wert
rem wird dann iso erhöht rem reicht dies nicht aus wird mit max iso und der max Zeit Fotografiert
rem dann werden die Bilder dunkler
f=m-z
h=f+z
set_tv96_direct h
n=f*k/100
if n>795 then n=795
set_iso_real n 
cls 
return

:restore
  cls
  print "Benutzerabbruch"
  set_aflock 0
  sleep 500
  exit_alt
  end

Das Script wird mit Druck auf die PRINT Taste aktiviert und mit dem Auslöser gestartet und gestoppt.

Script USB01 für Ixus 80is, Powershot SX200is

Mit dem Script "MK Bilder" hatte ich mit meiner Ixus 80is und Powershot SX200IS Probleme. Die nicht beendeten If-Schleifen (endif) ließen das Skript unter gewissen Umständen mit Fehler stehen bleiben. Die hohe Anzahl der if-Schleifen führte auf der SX200is zu einem "Stack Error". Die Abfrage des USB-Ports über "get_usb_power" funktionierte nicht zuverlässig.

Das folgende Skript basiert vom Grundsatz her auf dem "MK Bilder"-Skript und funktioniert auf der Ixus 80is und Powershot SX200IS. Es wird über USB ausgelöst.

@title USB01
rem works on Ixus 80is, Powershot SX200is
rem xchris 2010-09-01
@param m max zeit TV96 Werte -18 bis 1056
@default m 736

@param p pause zwischen Bildern s
@default p 0

@param r raw 0 aus 1 ein
@default r 0

@param u Auflösung 0-8 gut-schlecht
@default u 0

@param k Korekturiso 54
@default k 54

rem blitz aus
while get_flash_mode<>2
click "right" sleep 100
wend

rem zoom auf Weitwinkel
set_zoom 0
sleep 200

rem RAW oder JPG
set_raw r

rem beste Auflösung
set_resolution u

rem beste qualität
set_quality 0

rem Iso Startwert 1 etspricht iso 80
i=1

rem fokus auf unendlich
set_focus 65535
sleep 400
set_aflock 1

rem filter ausschalten (entspricht Blende 8 auf Blende 2,8 öffnen)
set_nd_filter 2

:start
do
  is_key P "remote"
  sleep 1000
  press "shoot_half"
  sleep 200
  release "shoot_half"
until P>0
  set_iso i
  press "shoot_half"
  do
  until get_shooting=1
  a=get_av96
  t=get_tv96
  b=get_bv96
  s=get_sv96
  release "shoot_half"
  cls
  print "Zeit", t
  print "ISO", s
  sleep 100
  z=s+b-292
  rem Isoanpassung bei zu langer Belichtungszeit
  rem und
  rem minimale Belichtungszeit sicherstellen

  if z<m then 
  f=m-z
  h=f+z
  set_tv96_direct h
  n=f*k/100
  print "n", n
  if n>795 then 
  n=795 
  endif
  set_iso_real n
  rem Belichtungszeit           
  set_tv96 m 
  set_nd_filter 2
  endif

  rem auslösen
  shoot
  sleep p*1000
  goto "start"
:restore
cls
print "Benutzerabbruch"
set_aflock 0
sleep 500
exit_alt
end

Scripte Entwickeln und Debuggen

DEBUGGER is a debugger for .bas Scripts

Instruction for debugger: You need java on your PC.

  • 1. download the zip file
  • 2. unzip it into a convenient folder (perhaps one in which you intend to put test basic scripts)
  • 3. double click the UBDB.jar file

If that doesn't bring up the debugger, then it's likely that you don't have java installed. You need the Windows version of JRE which you can download from http://java.com/ The file "libUBEngine.jnilib" is for Mac users, you can delete it under Windows.


KategorieVideoTechnik