Hallo zusammen,
Ich möchte hier mein neues Intervall-Skript "IntervWO.lua" vorstellen, welches die beachtlichen neuen Möglichkeiten von CHDK 1.3 verwendet.
Wichtig waren mir dabei zunächst eine einfache Bedienung und umfassende Kameraabfragen, welche eine Fehlbedienung durch CHDK-Anfänger unmöglich machen sollen.
Ein ausgeklügeltes Zeit-Management sorgt dabei dafür, dass die gewählten Zeiten für Intervalle und Startverzögerung möglichst genau eingehalten werden.
Allerdings wollte ich dabei auch einige zusätzlich optional aktivierbare spezielle Funktionen einführen, welche mir sinnvoll erschienen und die es so in anderen Intervallskripten bisher m.W. noch nicht gibt:
Seit Skriptversion 1.06 kann bspw. der Fokus manuell eingestellt werden auch bei Kameras (etwa Ixus-Serie), die keinen MF-Modus haben.
Seit Skriptversion 1.14 sind dabei neben dem manuellen Fokus (MAN) auch die hyperfokale Distanz (HYP) oder unendlich (INF) möglich.
Seit Skriptversion 1.12 sind nun u.a. auch Unterintervalle möglich, und es kann optional bei Blitzserien immer erst eine Blitzbereitschaft vor dem Auslösen abgewartet werden.
Achtung: dieses Skript benötigt CHDK ab Version 1.3.0!
Zunächst ein Bild der möglichen Voreinstellungen im CHDK-Skript-Menü:
Mögliche Skript-Voreinstellungen:
1) Die Intervallzeit für Bilder bzw. Bildserien kann in Stunden, Minuten und Sekunden vorgegeben werden. Die drei Werte addieren sich dabei.
Info: Werden alle Vorgabewerte auf 0 gesetzt, macht die Kamera die Serienaufnahmen schnellstmöglich. Sind dabei die Unterserien deaktiviert (siehe Punkt 3), zeigt das Skript nach Beendigung den ermittelten Wert für die Anzahl Bilder pro Sekunde an. Das kann hilfreich dabei sein, die Schreibgeschwindigkeit verschiedener SD-Karten zu vergleichen.
2) Die Startverzögerung kann in Stunden, Minuten und Sekunden vorgegeben werden. Die drei Werte addieren sich dabei.
3) Über den Parameter "Anzahl Bilder je Unterserie" können (seit v1.12) auch Unterserien mit bis zu 9 Bildern je Unterserie gemacht werden.
Mit "Interv.Zeit Unterserie (sec)" kann die Unterintervallzeit im Bereich 0 (schnellstmöglich) bis 9 sec eingestellt werden.
4) Die Parameter "AF-Lock bei 1. Bild/Serie" und "Timeout für AF-Lock" bewirken folgendes:
Der Parameter "Timeout für AF-Lock" (1 bis 5 sec) gibt dabei die Zeit vor, wie lange auf einen erfolgreichen AF gewartet werden soll. Wird in dieser Zeit kein erfolgreicher AF gefunden, wird dann trotzdem mit möglicherweise fehlerhaften Fokuseinstellungen ausgelöst, damit das Intervallskript weiterlaufen kann.
a) Bei deaktivierten Unterserien wird dann kurz vor der ersten Aufnahme (die gewählte Zeit für "Timeout für AF-Lock" wird dabei mit berücksichtigt) ein AF mit anschließendem AF-Lock ausgeführt. Diese Fokuseinstellung wird dann bis zum Ende der Intervallserie beibehalten.
Hinweis: Ist zusätzlich "AE-Lock bei 1. Bild/Serie" aktiviert (siehe Absatz 5), wird dann zusätzlich auch ein AE-Lock ausgeführt. Diese Belichtungseinstellung wird dann bis zum Ende der Intervallserie beibehalten.
b) Bei aktivierten Unterserien wird dagegen beim jedem ersten Bild einer Unterserie ein AF ausgeführt mit anschließendem AF-Lock für die jeweilige Unterserie.
Hinweis: Ist zusätzlich "AE-Lock bei 1. Bild/Serie" aktiviert (siehe Absatz 5), wird dann zusätzlich auch ein AE-Lock für diese Unterserie ausgeführt.
INFO: AF-Lock und ggfs. auch AE-Lock gelten dann somit nur für die jeweilige Unterserie.
5) Der Parameter "AE-Lock bei 1. Bild/Serie" bewirkt folgendes:
a) Bei deaktivierten Unterserien wird dann kurz vor der ersten Aufnahme eine Belichtungsmessung ausgeführt und diese via AE-Lock eingefroren. Diese Belichtungseinstellung wird dann bis zum Ende der Intervallserie beibehalten.
b) Bei aktivierten Unterserien wird dagegen beim jedem ersten Bild einer Unterserie eine Belichtungsmessung ausgeführt mit anschließendem AE-Lock für die jeweilige Unterserie.
Hinweis: Ist zusätzlich auch "AF-Lock bei 1. Bild/Serie" aktiviert, siehe bitte auch die Infos in Absatz 4.
6) Ãœber den Parameter "Auto-Fixfokus verwenden" kann das Skript auch an solchen CAMs, bei denen es keine MF-Einstellungen gibt (bspw. viele Ixus-Modelle), einen festen Fokus einstellen:
a) Bei Einstellung "MAN" wird dann der Fokus eingestellt, welcher im Parameter "Man. A-FixFokus Distanz (mm)" vordefiniert wurde.
b) Bei Einstellung "HYP" wird die sogenannte "hyperfokale Distanz" eingestellt. Dafür muß die CAM aber zwingend im Programm Av oder M sein, ansonsten erfolgt ein Skriptabbruch.
c) Bei Einstellung "INF" wird auf die "unendliche Distanz" eingestellt. Dabei wird vom Skript -1 als Wert für die unendliche Distanz verwendet.
Diese Auto-FixFokuseinstellungen erfolgen dabei stets sofort nach Skriptstart.
Wichtiger Hinweis: Findet das Skript beim Start einen bereits aktivierten nativen CAM-MF-Modus, hat dieser oberste Priorität und wird nicht geändert! Die gewählten Voreinstellungen zu "Auto-Fixfokus verwenden" werden dann vom Skript ignoriert.
7) Bei aktiviertem Parameter "Blitzbereitschaft abwarten" wartet das Skript vor jeder Aufnahme, bis der interne Blitz einsatzbereit ist.
Mit externen Blitzen an CAMs mit Zubehörschuh funktioniert das aber leider nicht, weil deren Blitzbereitschaft nicht via Skript abgefragt werden kann :-(
Wichtig: Soll tatsächlich bei jeder Aufnahme geblitzt werden, muss man vorher im Canon-Menü den Blitz in den Blitzeinstellungen auf "ON" stellen.
Hinweis: Bei CAMs mit ausklappbarem internen Blitz (etwa meine S3 oder SX20) fragt das Skript dessen Zustand laufend ab und zeigt gefundene Änderungen an der Konsole an. Auf eine Blitzbereitschaft wird dann nur dann gewartet, wenn der Blitz auch ausgeklappt ist.
8) Über den Parameter "Display aus n. Bild/Serie" kann das Display der Kamera automatisch oder manuell über die zugewiesene Display-Taste (siehe Absatz 9) ausgeschaltet werden.
a) Bei Voreinstellung "MAN" erfolgt das Aus-/Einschalten des Display über die zugewiesene Display-Taste. Beim Wiedereinschalten wird dabei an der Konsole die Zeit bis zur nächsten Aufnahme angezeigt.
b) Bei den Voreinstellungen "1, 3, 5 oder 10" wird dabei zum gegebenen Zeitpunkt nur nachgefragt, ob das Display aktuell an ist und dann ggfs. automatisch ausgeschaltet.
Auch dann kann das Display zusätzlich stets manuell über die zugewiesene Display-Taste aktiviert/deaktiviert werden (siehe dazu auch den folgenden Absatz 9).
Vor dem letzten Bild/Serie wird das Display dabei vom Skript automatisch wieder eingeschaltet.
9) Zum Vorgabeparameter "Zuweisung Display-Taste"
Damit kann für die "skriptintere Display-Tasten-Funktion" definiert werden, ob dafür Taste DISPLAY, SET oder DOWN verwendet werden soll.
Wichtig: Dafür darf keinesfalls eine Taste ausgewählt werden, welche den CHDK Alt-Modus ein-/ausschaltet!
Die Funktionsweise der zugewiesenen Display-Taste hängt dabei von den Einstellungen zu "Display aus n. Bild/Serie" (siehe Absatz 8) ab:
a) Steht diese Option auf OFF, erzeugt ein Druck auf die zugewiesene Display-Taste eine Wiederherstellung der Konsolenausgabe mit einer aktualisierten Zeitangabe zum nächsten geplanten Bild. Das gilt auch bereits während der Startverzögerung.
Vereinfacht ausgedrückt: Ein Druck auf die zugewiesene Display-Taste zeigt an der Konsole immer die aktuelle verbleibende Zeit bis zur nächsten Aufnahme an.
b) Steht diese Option auf "MAN, 1, 3, 5 oder 10", wird dabei zusätzlich das Display ein- oder ausgeschaltet. Eine aktualisierte Zeitangabe zum nächsten geplanten Bild erfolgt dabei nur nach einem Wiedereinschalten des Displays.
10) Zum Vorgabeparameter "Save-Mode (nur P;Tv;Av;M)"
Dieser aus guten Gründen per default aktivierte Parameter lässt für die Verwendung dieses Skriptes nur die Programme P, Tv, Av oder M zu.
Findet das Skript beim Start ein anderes eingestelltes Programm, bricht es mit einer Fehlermeldung ab.
Der Grund dafür ist einfach: Ein sicherer Betrieb von CHDK ist nur mit diesen Programmen möglich!
Wagemutige können den "Save-Mode" auf eigenes Risiko deaktivieren (von mir nicht empfohlen!), wobei dann auch andere Programme zugelassen werden.
Dann besteht aber die Gefahr, dass das Skript abstürzt oder sogar die CAM beschädigt werden könnte!!!
11) Mit den beiden Vorgabeparametern "Konsolenoffset vertikal/horizontal" können die Skript-Konsolenausgaben am Display verschoben werden.
Das kann dann nützlich sein, falls die Konsolenausgaben wichtige gezeigte Kameraeinstellungen am Display überlagern sollten.
12) Hinweise zu kurzen Intervallzeiten:
Kurze Intervallzeiten können vom Skript oft nicht eingehalten werden, weil die kürzest real mögliche Intervallzeit von diversen verschiedenen Parametern abhängt:
a) CAM-Prozessor (DIGIC 2, 3, 4, 5...?)
b) Sensortyp (CCD oder CMOS?)
c) Bildformat (Pixelgröße)
d) JPG-Einstellungen (Standard, Fein oder Superfein?)
e) RAW-Einstellungen (sind RAW- bzw. DNG-Aufnahmen aktiviert?)
Allerdings kann man mit diesen Skript selber die kürzest real mögliche Intervallzeit ermitteln, indem man das Skript in heller Umgebung (Stichwort: Verwendung kurzer Belichtungszeiten) mit folgenden Einstellungen startet:
a) Anzahl Bilder/Serien = ca. 5 bis 10
b) Intervallzeit hour, min und sec = jeweils 0
c) Anzahl Bilder je Unterserie = OFF
d) Auto-Fixfokus verwenden = MAN, HYP oder INF
(Dabei geht nur darum, den AF zu deaktivieren, welcher die Messergebnisse verfälschen könnte)
Nach Skriptende zeigt das Skript die ermittelten Bilder/sec sowie (seit v.1.13) zusätzlich auch "Intervall min. = x,xx sec) an.
Macht man diesen Test zweifach ohne/mit aktivierter RAW-/DNG-Speicherung bekommt man so zuverlässige Infos zu den kürzest real verwendbaren Intervallzeiten. Bei meiner SX20 mit einer schnellen Class10-Speicherkarte komme ich dabei auf folgende Ergebnisse bei 4000x3000 Pixeln und JPG = Superfein:
Ohne aktivierte RAW/DNG-Aufnahme sind es 0,38 Bilder/sec mit einem Mindestintervall von 2,60 sec
Mit aktivierter RAW/DNG-Aufnahme sind es 0,26 Bilder/sec mit einem Mindestintervall von 3,72 sec
Das heißt für die Praxis, daß meine SX20 Intervallzeiten von mindestens 3-4 sec braucht.
Fazit:
Mein neues Intervall-Skript kann und soll auch keinesfalls bisherige Intervall-Skripte wie etwa das mächtige "Sevenup" oder das überaus bemerkenswerte "Ultimate Intervalometer" ersetzen. Auch für Intervalle mit besonders schnellen Aufnahmefolgen gibt es bereits Skripte, die für diese Aufgabe optimiert sind, bspw. "Turbo Intervall".
Für "übliche Intervall-Serien" ist mein Skript aber bestenst gerüstet und bietet dabei einen beachtlichen Funktionsumfang unter Verwendung neuer Befehle, welche erst seit CHDK 1.3 zur Verfügung stehen:
Die seit Version 1.06 möglichen einstellbaren Fokuswerte ermöglichen MF-Einstellungen auch an Kameras, die eigentlich gar keinen MF-Modus haben (etwa die meisten Modelle der Ixus-Serie).
Die seit Version 1.12 möglichen Unterintervall-Serien gibt es m.W. zudem bei keinem anderen Intervall-Skript.
Das seit Version 1.12 mögliche Warten auf eine Blitzbereitschaft rüstet dieses Skript auch für Blitzintervallserien.
Die umfangreichen Abfragen zu den Skript-Vorgabeparametern mit Vergleich der gefundenen Kameraeinstellungen machen dieses Skript zudem bei aktiviertem "Save-Mode" sozusagen "narrensicher" auch für CHDK-Neulinge - jeglicher gefundener Fehler wird genau angezeigt, sodaß er auch behoben werden kann.
U.v.a.m.
Danksagung:
Ich möchte mich hier ausdrücklich bei msl für seine unermüdlichen Hilfen und Erklärungen bzgl. der für mich völlig neuen Skriptsprache Lua sowie auch zu CHDK-spezifischen Lua-Befehlen bedanken !!!
Ohne ihn hätte ich dieses Skript nie hinbekommen, da ich Anfang 2014 noch gar keine Ahnung von Lua hatte.
Ansonsten bin ich übrigens für jegliche Rückmeldung, egal ob positiv oder negativ, dankbar :-)
liebe Grüße
Werner_O
Skript History:
09.03.2014 - Version 1.00 ist verfügbar
10.03.2014 - Version 1.01 ist verfügbar
Die Vorgabeoption "Intervallzeit grob (s)" wurde korrigiert - max. 30 min sind nun möglich.
Die vom Skript ausgegebenen Displayausgaben "Bild x von y" wurden korrigiert bzgl. des möglichen Vorgabewertes 0 für unendlich viele Aufnahmen.
20.03.2014 - Version 1.02 ist verfügbar
Dies ist ein weiterer Bugfix bzgl. des möglichen Vorgabewertes 0 für unendlich viele Aufnahmen. Auch mit Vorgabewert 0 sollte nun die eingestellte Intervall-Zeit (falls überhaupt möglich) eingehalten werden.
Danke an dieser Stelle an Drehermicha94 für seine Hinweise dazu :-)
06.04.2014 - Version 1.03 ist verfügbar
Die Anfangsverzögerung kann nun separat grob in Minuten (bis zu 720 min = max. 12 Stunden) und fein in Sekunden (1-60 sec) eingestellt werden. Beide Werte addieren sich dabei.
24.05.2014 - Version 1.04 ist verfügbar
Kleine Korrekturen bzgl. der Löschung überflüssiger Leerzeichen am Ende von Zeilen sowie Einfügung einer Leerzeile am Skriptende, damit das Skript auch auf Unix-Systemen korrekt verarbeitet werden kann.
24.07.2014 - Version 1.05 ist verfügbar
Die Intervallzeit kann nun zusätzlich auch in Minuten eingestellt werden auf bis zu 24 Stunden (= 1 Bild pro Tag).
Die bisherige feste Beschränkung auf die Modi P, Tv, Av oder M kann durch Deaktiveren des neuen Vorgabeparameters "Save Mode" nun auf eigene Gefahr aufgehoben werden.
Ein aktivierter "Save Mode" (in v1.04 noch automatisch erzwungen) arbeitet nun wesentlich genauer. Danke an dieser Stelle an msl, welcher diese Verbesserung überhaupt erst möglich gemacht hat durch seine enormen Lua-Kenntnisse.
21.09.2014 - Version 1.06 ist verfügbar
Mit der neuen Version kann nun bei Bedarf eine manuelle Fokusdistanz (MAN, HYP oder INF) vorgegeben werden, wobei HYP (hyperfokale Distanz) dabei nur mit den Programmen Av oder möglich ist. Die Einstellungen MAN (mit voreinstellbarer Fokusvorgabe) oder INF (Fokus = unendlich) sollten dabei manuelle Fokuseinstellungen via Skript auch an solchen Kameras ermöglichen, die eigentlich gar keinen MF-Modus haben (Stichwort: Ixus-Serie).
Den unter Skriptversion 1.05 noch verfügbaren Vorgabeparameter "Auf Blitz warten" habe ich komplett entfernt, weil er nach diversen Tests an meiner S3 und SX20 überflüssig scheint und anscheinend rein gar nichts ändert. Sinnvoll wäre er nach heutigem Wissenstand von mir nur für externe Blitze, aber deren Blitzbereitschaft kann CHDK momentan noch nicht abfragen (bisher nur externer Blitz On/Off abfragbar über kameraspezifische proprietäre "Propertycase-Variablen").
Die neue Skriptversion gibt nun zusätzlich vergleichende Infos zu "gewünschter" und "tatsächlich erreichter" Intervallzeit aus. Wurden vorher als Intervallzeit 0,00 sec (sprich schnellstmögliche Serienaufnahmen) definiert, erfolgt stattdessen eine Ausgabe in Form von Bildern/sec.
20.10.2014 - Version 1.07 ist verfügbar
Diese Version ist ein Bugfix zu Version 1.06, bei welcher sich leider neue Fehler eingeschlichen hatten - sorry dafür.
Folgende Funktionen sollten nun wieder korrekt funktionieren:
1) Die eingestellte Anfangsverzögerung
2) Die Anzeige der gemessenen realen Intervallzeiten
23.10.2014 - Version 1.08 ist verfügbar
Mit dieser Version sollte das Aus- und Wiedereinschalten des Displays nun besser funktionieren.
Zum einen kann jetzt zusätzlich voreingestellt werden (Bild 1-10), ab wann das Display ausgeht, zum anderen schaltet sich das Display nun vor der letzten Aufnahme automatisch wieder ein.
22.12.2014 - Version 1.09 ist verfügbar
Bei dieser Version ermöglicht die neu dazugekommene Vorwahl "MAN" für den Vorgabeparameter "Display aus nach Bild-Nr" ein manuelles Aus- und Einschalten des Displays über die Kamerataste DISPLAY - dazu hatte ich ja einige Anfragen bekommen, wo das gewünscht wurde.
Diese Vorwahl benötigt aber eine Intervallzeit von mind. 5 sec, sonst erfolgt ein Skriptabbruch!
Für weitere Infos siehe dazu bitte die hinzugefügten Infos in der Beschreibung zum Skript.
26.12.2014 - Version 1.10 ist verfügbar
Diese Version ist ein Bugfix, welcher seit Version 1.06 aufgetretene Probleme beseitigt:
1) Inkorrekte Intervallzeiten bei Vorwahl 0 für unendlich viele Aufnahmen
2) Doppelauslösungen bei aktiviertem AF-/AE-Lock
21.02.2015 - Version 1.11 ist verfügbar
Diese Version ist eine Weiterentwicklung dieses Skripts mit erweiterter Funktionalität:
1) Die Vorwahl-Optionen für AF-Lock und AE-Lock sind nun separat voneinander voreinstellbar.
Bei der vorherigen Version gab es ja nur den gemeinsamen Vorgabeparameter "AF-/AE-Lock verwenden", was sich im nachhinein nur als suboptimal herausgestellt hat.
2) Der bisherige Vorwahlparameter "Festen Fokus verwenden" wurde zu "Auto-FixFokus verwenden" geändert.
Auch der bisherige Vorwahlparameter "Man. Fokus Distanz (cm)" wurde zu "Man. A-FixFok Distanz (cm)" geändert.
3) Seit dieser Skripversion hat ein bei Skriptstart gefundener MF-Modus via CAM absolute Priorität gegenüber allen Skript-Vorwahlparametern:
Die Vorwahlparameter "Auto-FixFokus verwenden" und "AF-Lock bei 1. Bild" werden dann ggfs. automatisch deaktiviert.
4) Auch die Konsolenausgaben zu den gewählten Fokus-Einstellungen wurden komplett überarbeitet.
Dabei werden ggfs. automatisch deaktivierte Vorgabewerte ausdrücklich bei Skriptstart angezeigt.
5) Über die beiden neuen Vorwahlparameter "Konsolenoffset vertikal" und "Konsolenoffset horizontal" können die Konsolenausgaben nun sowohl nach oben als auch nach rechts verschoben werden.
Dadurch kann man vermeiden, daß wichtige Canon-Display-Ausgaben von der CHDK-Konsolen-Anzeige überdeckt werden.
28.03.2015 - Version 1.12 ist verfügbar
Diese Version bietet zusätzlich die Möglichkeit von Unterintervallserien mit bis zu 9 Unterintervallaufnahmen.
Durch einen radikal veränderten Code kann nun zusätzlich via "Display-Taste" jederzeit die Zeit bis zum nächsten Bild angezeigt werden.
Das Ein-/Ausschalten des Displays ist nun bereits auch während der Startverzögerung möglich.
Ein neues Fehler-Management zeigt bei Skriptstart gefundene Fehler von Skript-Voreinstellungen bzgl. ermittelter CAM-Einstellungen genau an, sodass auch CHDK-Anfänger die nötigen Skript/CAM-Settings korrigieren können.
03.04.2015 - Version 1.13 ist verfügbar
Diese Version zeigt bei deaktivierten Unterserien und jeweils 0 für Intervallzeit hour, min und sec zusätzlich zu bisher Bildern/sec auch noch die Angabe "Intervallzeit min. = x,xx sec" an.
Dadurch kann man leichter ermitteln, welche minimale Intervallzeiten nötig sind, damit das Skript zeitgerecht an der jeweiligen CAM auslösen kann.
31.05.2015 - Version 1.14 ist verfügbar
Diese Version ist ein Bugfix zu den Einstellungen für "AFL Timeout".
Mit betroffen sind dabei auch die möglichen vorgebbaren Werte für Unterinterval-Serien, die nun bestenfalls (bei AFL-Lock = Disabled oder Auto-FixFokus verwenden = MAN/HYP/INF) jetzt nun nur noch mindestens 1 sec kürzer sein müssen als das Hauptintervall.
01.06.2015 - Version 1.15 ist verfügbar
Diese Version ermöglicht nun bis zu 60 Bilder je Unterserie.
Zudem wurde die mögliche Unterintervallzeit von 9 auf 60 sec erhöht.
13.06.2016 - Testversion 1.16 beta ist verfügbar
Mit dieser Version sollen auch bei aktiviertem Macro- oder Supermacromodus vorher festgelegte manuelle Fokuswerte möglich werden.
Eine genaue Beschreibung sowie den Download dazu gibt es in diesem Posting.
Liebe Grüße
Werner_O