Inhaltsverzeichnis
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:
- 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.