Hallo zusammen,
ich möchte hier mein neues Lua-Skript für die USB RC-Fernbedienung AuRiCo RC-CHDK2 vorstellen.
Das von Peter Engels für dieses RC-FB-Modul bereitgestellte Skript (siehe http://skyware.fam-engels.de/chdk/rc-chdk/rc-chdk2.htm) ist ja leider extrem simpel gestrickt. Zudem berücksichtigt dieses Skript auch nicht, daß dieses Modul statt drei sogar vier verschiedene USB-Impulslängen an die Kamera senden kann (Quelle: viewtopic.php?f=10&t=3322#p29351).
Insofern habe ich es als dringend nötig gesehen, für einen anderen Forumsuser hier ein neues Skript zu entwickeln, welches die Möglichkeiten des Moduls RC-CHDK2 deutlich weiter ausreizen kann und zudem so solide programmiert ist, daß Fehlfunktionen quasi ausgeschlossen sind.
Was kann mein neues Skript?
1. Zunächst kann es wie das Ursprungsskript Auslösen sowie Rein- oder Raus-Zoomen. Neu ist aber der voreinstellbare Vorgabeparameter "Zoom Time", mit welchem individuell eingestellt werden kann, wie lange ein Druck auf die Zoomtasten je Betätigung an der FB jeweils ausfallen soll. Der voreinstellbare Bereich liegt dabei von 10 bis 500 ms.
Seit Version 1.03 gibt es in den Skriptvorgaben zudem die Möglichkeit, die Funktionen Shoot und Zoom In/Out zu deaktivieren, falls diese nicht benötigt werden.
2. Zusätzlich kann bei Kameras mit separater Video-Taste auch eine Videoaufnahme gestartet und wieder gestoppt werden. Seit Skriptversion 1.1 kann diese Videofunktion bei Bedarf über einen zusätzlichen Vorgabeparameter generell deaktiviert werden, um eine versehentlich ausgelöste Videoaufnahme auszuschließen.
3. Seit Skriptversion 1.04 kann die Funktion "Start/Stop Video" auf "HalfShoot" geändert werden.
Nach einem Halfshoot werden dabei die Fokus- und Belichtungswerte dauerhaft gespeichert. Nachfolgende Shoot-Befehle lösen dann nur noch (in diesem Fall aber besonders schnell!) aus, wobei die gespeicherten Werte für Fokus und Belichtung jeweils erhalten bleiben.
Dieser "Halfshoot" kann dabei über einen neuen Impuls über die RC-FB für diese Funktion wieder deaktiviert werden. Auch ein folgender Zoom In/Out deaktiviert diese Halfshoot-Funktion automatisch wieder.
4. Bzgl. Zoom In/Out fragt das Skript beim Start nach, wieviele Zoomschritte das jeweilige Objektiv überhaupt hat. Ein Zoom In/Out wird anschließend nur dann ausgeführt, wenn überhaupt noch real rein- oder rausgezoomt werden kann, ansonsten erscheint eine Fehlermeldung am Display.
5. Nach einem Shoot-Befehl geht das Skript solange in den Pause-Modus, bis das Bild korrekt verarbeitet und gespeichert wurde, und nimmt solange keine neuen Befehle der FB an.
Etwa bei aktivierter RAW/DNG-Aufnahme kann die Verarbeitung und Speicherung eines Bildes (insbesondere bei langsamer SD-Karte) ja beträchtliche Zeit dauern.
6. Der optional aktivierbare Vorgabewert "Enable AutoMode USB-Port" aktiviert beim Start für den USB-Port die Remote-Funktion und deaktiviert sie bei Skriptende wieder.
Diese Funktion ist nützlich, wenn man die Bilder der Kamera normalerweise via USB auf den PC überträgt.
7. Die Zeitgrenzen für die Unterscheidung der von der Kamera gemessenen USB-Impuls-Längen des RC-CHDK2-Moduls können individuell angepasst werden. Das betrifft die nun einstellbaren Vorgabewerte für "USB Time Limit 1" bis "USB Time Limit 3".
Das ist überaus wichtig, da CHDK USB-Impuls-Längen bisher noch recht ungenau erkennt und diese Zeitgrenzen individuell an die jeweilige Kamera angepasst werden müssen.
8. Im optional aktivierbaren Modus "Start in USB Test-Mode" zeigt das Skript nur die gemessenen USB-Impuls-Längen an. Die Anzeigelänge der gemessenen Werte kann dabei über die zusätzliche Option "Result Report Time (s)" von 1 bis 5 sec eingestellt werden.
Über mehrfach wiederholte Tests (!) können dann sinnvolle Werte für die Vorgabeparameter "USB Time Limit 1" bis "USB Time Limit 3" ermittelt werden (siehe den vorherigen Absatz 4).
9. Seit Skriptversion 1.05 verwendet das Skript automatisch (falls möglich) den in CHDK neu eingeführten "USB Highspeed Modus", welcher wesentlich genauere Ergebnisse zu gemessenen USB Impuls-Zeiten ermöglicht.
Voraussetzung dafür ist ein installiertes CHDK 1.3 ab Version 3442, ansonsten wird der "USB Highspeed Modus" nicht verwendet.
Wie lauten die aktuellen Zuweisungen der Funktionen bei einer 4-Kanal RC-FB mit oben/unten und rechts/links?
Korrekt angeschlossen (ansonsten bitte die beiden Servo-Anschlüsse am Modul RC-CHDK2 tauschen) sollten die Zuweisungen wie folgt sein:
Oben: Shoot
Unten: Start/Stop Video oder HalfShoot
Links: Zoom-Out
Rechts: Zoom-In
Hinweis dazu:
Über Änderungen am Skript (momentan Zeilen 299-311) sind beliebige eigene Zuweisungen möglich:
Die hier verwendeten vier Unterfunktionen command_shoot(), command_video(), command_zoomin() und command_zoomout() können nach Belieben ausgetauscht werden und dadurch anderen Steuerknüppeln (sprich anderen USB-Impulslängen) einer AuRiCo RC-CHDK2 zugeordnet werden.
Hier ein Screenshot zu den einstellbaren Skript-Vorgabeparametern:
Liebe Grüße
Werner_O
History:
02.05.2014 – Skriptversion 1.00 ist verfügbar
03.05.2014 – Skriptversion 1.01 ist verfügbar
Über einen zusätzlichen Vorgabeparameter kann eine Videoaufnahme nun generell unterbunden werden.
06.05.2014 – Skriptversion 1.02 ist verfügbar
Bugfix: Die Belegungen "oben für Shoot" und "unten für Start/Stop Video" waren noch vertauscht und nicht wie im Text (siehe oben) beschrieben.
07.05.2014 – Skriptversion 1.03 ist verfügbar
Über zusätzliche Vorgabeparameter können nun auch die Funktionen Shoot und Zoom deaktiviert werden.
11.05.2014 – Skriptversion 1.04 ist verfügbar
Anstelle der Funktion "Start/Stop Video" kann nun alternativ die Funktion "Halfshoot" ausgewählt werden.
Über einen neuen Vorgabeparameter können die Funktionen "Video" bzw. "Halfshoot" nun ebenfalls deaktiviert werden.
20.05.2014 – Skriptversion 1.05 ist verfügbar
Bei einer erkannten CHDK-Version 1.3 ab v3442 wird nun automatisch der neue "USB Highspeed Modus" verwendet, welcher wesentlich genauere Messungen der gesendeten USB Impulszeiten ermöglicht.
22.05.2014 – Skriptversion 1.06 ist verfügbar
Die Skript-Dateigröße wurde minimiert durch Löschen unnötiger Leerzeichen.
Die Anzeigezeit für die nach Skriptstart an der Konsole ausgegebenen Ausgaben der eigenen gewählten Voreinstellungen wurde auf 9 Sekunden verlängert.
22.08.2014 - Skriptversion 1.07 ist verfügbar
Diese Version berücksichtigt die seit CHDK-Version 1.3 v3585 vorgenommenen Änderungen für die Verwendung des sogenannten "USB High Speed Modus".
Dazu kommen einige kleinere Code-Änderungen im Skript.
13.12.2014 - Skriptversion 1.08 ist verfügbar
Abhängig von der erkannten CHDK-Version (1.3 >= v3791 oder 1.4) wird für die Aktivierung/Deaktivierung des USB-High-Speed-Mode nun der neuere Befehl "set_remote_timing()" anstelle von bisher "enable_remote_hp_timer()" verwendet.
Details zu der Notwendigkeit dieser Änderung gibt es hier.
Der "USB High Speed Modus" ist nun bereits ab CHDK 1.3 v3442 statt bisher v3585 verfügbar.
26.02.2015 - Skriptversion 1.09 ist verfügbar
Dieses kleine Update vermeidet im Skriptmenü die bisherige Warnmeldung:
No @chdk_version, assuming CHDK 1.3