Methoden der Auslösung
Es gibt mehrere Methoden, per Skript eine Auslösung zu erzeugen. Das gilt unabhängig von der verwendeten Skript-Sprache. Deshalb werden die nachfolgenden Beispiele in unterschiedlichen Sprachen präsentiert.
einfachste Methode (1)
Syntax: [ Download ] [ Verstecken ]
Benutze uBasic Syntax Highlighting
shoot
Erstellt in 0.003 Sekunden, mit GeSHi 1.0.8.9
Variante der einfachsten Methode (2)
ausführliche Methode (3)
Syntax: [ Download ] [ Verstecken ]
Benutze uBasic Syntax Highlighting
press "shoot_half"
sleep 1000
press "shoot_full"
release "shoot_full"
release "shoot_half"
sleep 1000
sleep 1000
press "shoot_full"
release "shoot_full"
release "shoot_half"
sleep 1000
Erstellt in 0.004 Sekunden, mit GeSHi 1.0.8.9
verfeinerte ausführliche Methode (4)
Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
press("shoot_half")
repeat
until get_shooting() == true
press("shoot_full")
release("shoot_full")
release("shoot_half")
repeat
until get_shooting() ~= true
repeat
until get_shooting() == true
press("shoot_full")
release("shoot_full")
release("shoot_half")
repeat
until get_shooting() ~= true
Erstellt in 0.004 Sekunden, mit GeSHi 1.0.8.9
spezielle Methode (5)
Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
press("shoot_half")
repeat
until get_shooting() == true
for i=1 , 10 do
click("shoot_full_only") -- Befehl nur in CHDK-DE verfügbar
sleep(2000)
end
release("shoot_half")
repeat
until get_shooting() ~= true
repeat
until get_shooting() == true
for i=1 , 10 do
click("shoot_full_only") -- Befehl nur in CHDK-DE verfügbar
sleep(2000)
end
release("shoot_half")
repeat
until get_shooting() ~= true
Erstellt in 0.004 Sekunden, mit GeSHi 1.0.8.9
Methode 1 und 2 unterscheiden sich fast nicht. Methode 2 ist etwas schneller (10 ms bei uBasic). Beide Methoden führen eine komplette Auslösung durch. Es wird eingemessen, fokussiert und ausgelöst. Methode 3 eignet sich zum Einfügen von Befehlen nach dem Fokussieren. Es können also Messergebnisse der Kamera berücksichtigt werden. Das gleiche gilt für Methode 4. Hier wird aber solange gewartet, bis die Kamera mit dem Messen und Fokussieren sowie dem Shooting fertig ist. Bei Methode 3 wurde dafür eine Wartezeit festgelegt. Das kann in ungünstigen Momenten evt. nicht ausreichen oder zu lang sein.
Methode 5 ist ein Sonderfall, der sich für Intervall-Aufnahmen eignet, bei denen nicht wiederholt eingemessen werden muss. Diese Methode zeichnet sich durch eine hohe Verarbeitungsgeschwindigkeit aus. Dadurch können sehr kurze Intervallabstände realisiert werden.
Zu beachten ist auch, dass die die komplette Auslösung Zeit beansprucht. Insbesondere Beim Skripten mit Lua muss unbedingt darauf geachtet werden, dass das Shooting abgeschlossen wurde, bevor man weitere Befehle im Zusammenhang mit einer Auslösung abarbeiten lässt. Das wird unter Methode 3 bedingt und unter Methode 4 vollständig beachtet.
Für diese verschiedenen Methoden haben wir diverse Möglichkeiten, auf Verschlusszeit, Blende/ND-Filter, Belichtung und ISO Einfluss zu nehmen. Dabei sollte man wissen, dass für diese Faktoren nicht immer jeder Wert unter jeder Bedingung einsetzbar ist.
Grundsätzlich gibt es zwei Varianten, Einfluss zu nehmen: a) vor dem Shooting und b) während des Shootings. Beide Varianten haben Ihre Vor- und Nachteile. Bei a) wird vor dem Auslösen alles festgelegt. Das ist einfach und unkompliziert. Variante b) hat den Vorteil, das von der Kamera gemessene Werte beeinflusst werden können. Die Ausführung ist aber komplizierter und nicht immer optimal in allen Situationen einsetzbar.
Welche Möglichkeiten der Einflussnahme bestehen nun?
Nachfolgend sprechen wir über die wichtigsten Befehle zur Einflussnahme auf das zu erstellende Foto. Es gibt wesentlich mehr Skript-Befehle in diesen Zusammenhang. Die meisten dieser Befehle dienen aber nur bestimmten Spezialanwendungsfällen.
Insbesondere sollen Befehle zum Einsatz kommen, die dem APEX-System entsprechen. Mit diesen können wir mathematische Abhängigkeiten besser darstellen. Man spricht auch vom APEX96-System, weil eine Belichtungseinheit dem Wert 96 entspricht. Der kleinste Belichtungswert ist 32 und entspricht 1/3 Belichtungseinheit. Das ist auch gleichzeitig die kleinste Stufe bei den Berechnungen. Im Anhang des CHDK-Handbuchs gibt entsprechende Werte-Tabellen.
Die grundlegende Formel für alle Berechnungen ist:
- Code: Alles auswählen
Av+Tv=Bv+Sv
also
Blende(Av) + Verschlusszeit(Tv) = gemessene Helligkeit(Bv) + Empfindlichkeit(Sv)
umgestellt in zwei Gleichungen
Av+Tv=Ev
Bv+Sv=Ev
Ev entspricht der Belichtungseinheit
Belichtungskorrektur Wir gehen davon aus, dass ein fester oder automatisch ermittelter Wert der Empfindlichkeit (ISO) vorliegt und die Kamera das Objekt eingemessen hat. Dann können wir mit einer Belichtungskorrektur Einfluss auf Blende und Verschlusszeit nehmen. Mit get_ev erhalten wir den gegenwärtigen Wert der Belichtungskorrektur. Der wird, wenn nichts anderes an der Kamera eingestellt wurde, 0 sein. Soll die Belichtung nun per Skript korrigiert werden, benutzen wir set_ev. Der Wert -192 würde beispielsweise eine Korrektur von -2 Ev bedeuten.
Eine Besonderheit ist aber zu beachten. Canon-Kameras verhindern in den meisten Modi eine Belichtungszeit über eine Sekunde. Haben wir also eine Belichtungskorrektur vorgegeben, bei der die Kamera eigentlich länger als eine Sekunde belichten müsste, wird es zu unerwarteten Ergebnissen kommen.
set_ev sollte möglichst vor dem Shooting eingesetzt werden. Benutzt man diesen Befehl in Methode 3 oder 4 nach dem Fokussieren, kann es zu falsch belichteten Bildern und falschen Werten für die Exif-Daten kommen.
Verschlusszeit bestimmen
Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
get_tv96()
get_user_tv96()
set_tv96_direct()
set_tv96()
set_user_tv96()
get_user_tv96()
set_tv96_direct()
set_tv96()
set_user_tv96()
Erstellt in 0.003 Sekunden, mit GeSHi 1.0.8.9
get_user_tv96 ist nur für Kameras mit einem Tv-Modus interessant. Der Befehl gibt den Wert für die in diesem Modus eingestellte Verschlusszeit zurück.
set_tv96_direct ist der wichtigste Befehl zum Setzen der Verschlusszeit. Er entspricht der Funktion "Ersetze Verschlusszeit" im CHDK-Menü "Extra-Foto-Einstellungen". Er wird immer die von der Kamera berechnete Zeit überschreiben. Man kann ihn in allen vier Methoden vor dem Shooting setzen. Konkrete Werte für bestimmte Verschlusszeiten sind im CHDK-Handbuch im Anhang gelistet.
set_tv96 kann man nur verwenden, nach dem die Kamera fokussiert und berechnet hat. Demzufolge kommen nur die Methoden 3 und 4 zum Einsatz.
set_user_tv96 ist wiederum nur für Kameras mit einem Tv-Modus interessant. Hier wird die Verschlusszeit für diesen Modus gesetzt.
Zusätzlich gibt es in Lua noch eine Möglichkeit, die Verschlusszeit zu steuern.
Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
proptable=require "propcase"
set_prop(proptable.TV,wert)
set_prop(proptable.TV,wert)
Erstellt in 0.003 Sekunden, mit GeSHi 1.0.8.9
Blenden-Wert bestimmen
Syntax: [ Download ] [ Verstecken ]
Benutze uBasic Syntax Highlighting
get_nd_present
get_av96
get_user_av96
set_nd_filter
set_av96
set_av96_direct
set_user_av96
get_av96
get_user_av96
set_nd_filter
set_av96
set_av96_direct
set_user_av96
Erstellt in 0.002 Sekunden, mit GeSHi 1.0.8.9
Bei einer Iris-Blende können wir verschiedene Werte setzen, meistens zwischen 2.8 bis 8.0. Ein ND-Filter kann dagegen nur 2 Blenden-Werte einehmen, 2,8 und 8.0. Außerdem sollte auch beachtet werden, dass der Zoom Einfluss auf den Blenden-Wert hat. Je weiter in das Objekt hereingezoomt wird, desto geringer ist der Lichteinfall. Damit verringert sich auch der kleinste mögliche Blenden-Wert.
get_av96 gibt den Blenden-Wert als APEX-Wert aus.
get_user_av96 ist nur für Kameras mit Av-Modus anwendbar. Der Befehl gibt den in diesem Modus eingestellten Blenden-Wert zurück.
Mit set_nd_filter kan der ND-Filter ein- und ausgeklappt werden.
Die nächsten drei Befehle sind nur Kameras mit Iris-Blende nutzbar!
set_av96_direct ist der wichtigste Befehl zum Setzen der Blende. Er entspricht der Funktion "Ersetze Blenden-Wert" im CHDK-Menü "Extra-Foto-Einstellungen". Er wird immer die von der Kamera berechnete Blende in Abhängigkeit vom Zoom überschreiben. Man kann ihn in allen vier Methoden vor dem Shooting setzen. Konkrete Werte für bestimmte Blenden-Werte sind im CHDK-Handbuch im Anhang gelistet.
set_av96 kann man nur verwenden, nach dem die Kamera fokussiert und berechnet hat. Demzufolge kommen nur die Methoden 3 und 4 zum Einsatz.
set_user_av96 ist wiederum nur für Kameras mit einem Av-Modus interessant. Hier wird die Blende für diesen Modus gesetzt.
Belichtungsempfindlichkeit (ISO) beeinflussen
Mit get_sv96 erhält man für den eingestellten oder automatisch ermittelten ISO-Wert den dazugehörigen Wert Belichtungsempfindlichkeit.
Mit set_sv96 kann man die Empfindlichkeit und damit auch den ISO-Wert bestimmen.
Die Befehle get_iso_real und set_iso_real lesen und setzen den real verwendeten Iso-Wert. Dieser ist nicht mit der Canon-eigenen ISO-Anzeige identisch! Das Setzen entspricht der Funktion "Ersetze ISO-Wert" im CHDK-Menü "Extra-Foto-Einstellungen".
Belichtung messen
Syntax: [ Download ] [ Verstecken ]
Benutze uBasic Syntax Highlighting
get_bv96
Erstellt in 0.002 Sekunden, mit GeSHi 1.0.8.9
get_bv96 gibt den Wert der gemessenen Helligkeit als APEX-Wert zurück.
bestimmte Werte berechnen
Mit den bisher genannten Befehlen können wir nun einen bestimmten Wert berechnen. Dazu kommt die bereits genannte Formel
- Code: Alles auswählen
Av+Tv=Bv+Sv
Will man z.B. die notwendige Verschlusszeit ermitteln, wird die Formel entsprechend umgestellt.
- Code: Alles auswählen
Tv=Bv+Sv-Av
Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
press("shoot_half")
sleep(1000)
release("shoot_half")
A=get_av96()
B=get_bv96()
S=get_sv96()
sleep(1000)
release("shoot_half")
A=get_av96()
B=get_bv96()
S=get_sv96()
Erstellt in 0.002 Sekunden, mit GeSHi 1.0.8.9
Wer diese Abhängigkeiten einmal ausprobieren möchte, kann dazu das Skript "erweiterter Tv-Modus" ausprobieren.
Bisher haben wir immer für ein Gleichgewicht der Formel gesorgt. Deshalb bekommen wir bei der Abfrage der Belichtungskorrektur das Ergebnis 0 für E. Wollen wir nun eine Belichtungskorrektur von einer Belichtungseinheit durchführen, sieht das wie folgt aus: Da B (gemessene Helligkeit) und S (Empfindlichkeit) festgelegt sind, hat die Belichtungskorrektur nur Einfluss auf Verschlusszeit und/oder Blende.
Weitere Möglichkeiten der Einflussnahme beim Shooting
Selbstverständlich können wir auch den Abstand zwischen Objektiv und Motiv (manuelles Fokussieren) selbst bestimmen. Dieses Thema ist aber so komplex, dass es dazu einen sehr umfangreichen Beitrag inkl. Skriptanwendung gibt.
Eine weitere interessante Möglichkeit ist das Einrechnen von Tonwertkurven. CHDK bietet damit Möglichkeiten, die es bisher nur in der elektronischen Bildverarbeitung (EBV) gab. Weiterführende Informationen dazu sindhier zu finden.
Sonderfall Videoaufzeichnung
Im Video-Modus kann eine Aufnahme mit folgender Sequenz gestartet und und beendet werden: Ein einfacher Shoot-Befehl funktioniert nicht, weil die Kamera die Fokussierungsprozedur in diesem Modus nicht versteht.
Wird (evt.) fortgesetzt ...