[Lua] Neues Lua-Skript USB Remote

CHDK-Skripte, CHDK-Entwicklung, PC-Zusatzprogramme, Informationen für Tüftler

Neues Lua-Skript USB Remote

Beitragvon Werner_O » 29.11.2014, 17:45

Hallo zusammen,

ich möchte hier mein neues Skript USB_Remo.lua vorstellen. Mein Ziel war dabei ein einfach zu bedienendes USB-Fernbedienungs-Skript, mit welchem auch CHDK-Neulinge schnell Bilder schießen oder auch Videoaufnahmen starten/stoppen können.
Im Skript integrierte rigorose Sicherheitsabfragen sorgen insbesondere bei aktivierten Save-Mode dafür, daß eine Fehlbedienung dieses Skriptes quasi unmöglich ist. Bei erkannten Fehleinstellungen bricht das Skript mit aussagekräftigen Fehlermeldungen ab.

Ein Highlight dieses Skriptes ist dabei die Möglichkeit, sehr einfach manuelle Fokusdistanzen auch bei solchen Cams zu ermöglichen, die eigentlich über keinen MF-Modus verfügen. Das betrifft bspw. viele besonders kompakte und leichte Ixus-Modelle, welche gerne an ferngesteuerten Flugmodellen/Koptern eingesetzt werden. Alternativ können auch die "unendliche Distanz" oder die "hyperfokale Distanz" (benötigt Programm Av oder M) voreingestellt werden.

Sehr praktisch ist auch die mögliche Option, den USB-Port der Cam bei Skriptstart automatisch in den Remote-Modus zu schalten, wobei dieser nach Skriptende automatisch wieder in den "normalen" USB-Modus zurückgesetzt wird.

Ebenfalls überaus praktisch ist auch die Möglichkeit, bei laufendem Skript nach Deaktivierung des Alt-Modus den Zoomfaktor verändern zu können und nach erneuter Aktivierung des Alt-Modus wieder in das Skript einsteigen zu können. Bei gewählten manuellen Fokusvorgaben (MAN, HYP oder INF) erfolgt dann immer eine Neufokussierung des Objektives.
Gleiches gilt auch bei Einstellung HYP (benötigt Programm Av oder M): auch nach einer Blendenvorwahl-Änderung erfolgt dann automatisch eine Neufokussierung des Objektives auf die neue aktuelle hyperfokale Distanz.

Das Skript benötigt dabei zwingend CHDK 1.3 oder höher!
Bei einer erkannten CHDK 1.3 Version ab v3442 wird zudem automatisch der seit dieser Version verfügbare USB-Highspeed-Mode aktiviert, welcher USB-Impulszeiten deutlich präziser messen kann.

Zu den Details:

1) Belichtung

Das Skript verwendet grundsätzlich die an der Cam gemachten Belichtungseinstellungen.
Bei der per Default aktivierten Option "SaveMode" werden dabei nur die Programme P, Tv, Av oder M zugelassen, welche bei der Verwendung von CHDK besonders empfehlenswert sind.
Wagemutige können diese Option auf eigene Gefahr (!) auch deaktivieren, sodaß auch alle anderen verfügbaren Programme zugelassen werden. Das geht dann aber auf eigenes Risiko mit der Möglichkeit, daß reale Schäden an der Kamera auftauchen könnten!

2) Shoot-Modus

Der Vorgabeparameter "Shoot-Mode" kann auf PHOTO, VIDEO oder AUTO eingestellt werden:
a) Bei Voreinstellung PHOTO wird nach einem USB-Impuls immer ein Bild gemacht.
b) Bei Voreinstellung VIDEO wird nach einem USB-Impuls immer eine Videoaufnahme gestartet bzw. wieder gestoppt.
c) Bei Voreinstellung AUTO wird dagegen die Länge eines USB-Impulses ausgewertet und mit dem zusätzlichen Vorgabeparameter "Auto-Time Limit" verglichen:
ist der USB-Impuls kleiner als dieser Wert wird ein Bild gemacht, ist er dagegen größer/gleich diesem Wert wird stattdessen eine Videoaufnahme gestartet.
Info: Der Parameter "Auto-Time Limit" kann dabei in 100ms-Schritten im Bereich 100-1500ms an eigene Vorlieben angepasst werden.

Zusätzlicher Hinweis:
Bei aktuell laufender Videoaufnahme führt jegliche USB-Impulslänge zu einem Abbruch der Videoaufnahme!
Einzelne Bildaufnahmen bei laufender Videoaufnahme sind mit diesem Skript derzeit also bewußt nicht möglich, um Fehlbedienungen vorzubeugen.

3) Fokuseinstellungen

Der Vorgabeparameter "Foc-Mode" kann auf AF, MAN, HYP oder INF eingestellt werden:
a) Bei Voreinstellung AF wird der Autofokus der Cam verwendet.
INFO: Wird bei Einstellung AF ein eingestellter MF-Modus gefunden, wird der dort eingestellte Fokuswert nicht verändert!
b) Bei Voreinstellung MAN wird nach Skriptstart automatisch auf die Distanz eingestellt, welche im zusätzlich verfügbaren Vorgabeparameter "Man. Focus Distance" definiert wurde.
c) Bei Voreinstellung HYP wird nach Skriptstart automatisch auf die hyperfokale Distanz fokussiert.
Wichtig: HYP ist nur in den Programmen Av oder M verfügbar!
d) Bei Voreinstellung INF wird nach Skriptstart automatisch auf unendlich fokussiert.

Zusätzlicher Hinweis:
Bei den Voreinstellungen MAN, HYP und INF aktiviert das Skript falls nötig automatisch entweder (falls möglich) den MF-Modus oder alternativ den AFL-Modus.
Bei Skriptende wird an der Cam wieder der Modus wie beim Skriptstart hergestellt.

4) USB-Einstellungen:

Damit dieses Skript funktionieren kann, müssen in CHDK im Menü CHDK-Einstellungen/USB-Fernbedienung-Parameter folgende Einstellungen gemacht werden:
a) USB Fernbedienung an/aus: AN
b) Schalter-Typ: None
c) Kontrollart: None

Den unter a) genannten Parameter "USB Fernbedienung an/aus" kann dieses Skript über den per Default aktivierten Vorgabeparameter "Auto-Mode USB-Port" auch automatisch bei Skriptstart aktivieren und bei Skriptende wieder deaktivieren. Das ist in der Praxis zumeist überaus nützlich.

5) Automatische Erkennung einer geänderten Zoomeinstellung

Erkennt das Skript bei einer manuellen Fokuseinstellung (MAN, HYP oder INF) und nicht laufender Videoaufnahme eine Änderung der Zoomeinstellung, hält es für 2 sec mit einer Konsolenmeldung an und anschließend erfolgt ein neues Einstellen der gewählten MF-Distanz.

6) Automatische Erkennung einer geänderten Blendeneinstellung im Av- oder M-Modus bei Einstellung HYP

Erkennt das Skript bei der Fokuseinstellung HYP und nicht laufender Videoaufnahme eine Änderung der Blendeneinstellung, hält es für 2 sec mit einer Konsolenmeldung an und anschließend erfolgt ein neues Einstellen der hyperfokalen Distanz passend zur neuen Blendeneinstellung.
Tipp:
Ein zusätzlich aktivierter DOF-Rechner kann wertvolle Infos zu den sich dabei ändernden Nahgrenzen geben, ab denen das Bild scharf wird.

7) Einstellung Save-Mode

Diese per Default aktivierte Einstellung lässt nur die Programme P, Tv, Av oder M zu, ansonsten erfolgt ein Skriptabbruch.
Das ist ausdrücklich so gewollt und auch sinnvoll, da CHDK nur mit diesen Programmen zuverlässig arbeitet.
Deaktiviert man diesen Parameter, lässt dieses Skript auch andere Programme zu.
Eine Deaktivierung dieses Parameters läuft auf eigenes Risiko mit der lauernden Gefahr, daß die Cam beschädigt werden könnte!
Nur erfahrene Photographen können dabei abschätzen, ob gewisse Spezialprogramm wie bspw. möglicherweise PORTRÄT oder LANDSCHAFT zu diesem Skript kompatibel sein könnten!


7) Last not least hier noch ein Screenshot der möglichen Skript-Vorgabeparameter:

Bild

Fazit:

Dieses Lua-Skript nutzt sinnvoll viele der neuen Möglichkeiten von CHDK 1.3 und ist dabei einfach zu bedienen.
Umfassenden Sicherheitsabfragen lassen dabei im Save-Mode keine Fehlbedienungen zu.
Die manuellen Fokuseinstellungen (MAN, HYP oder INF) sind besonders für Cams ohne einstellbaren MF-Modus interessant.

Praktisch ist auch die Möglichkeit, bei laufendem Skript (bei kurzzeitig deaktivierten Alt-Modus) die Zoomposition und/oder die Blendenvorwahl (bei den Programmen Av oder M) ändern zu können.
Eine geänderte Zoomeinstellung wird dabei vom Skript erkannt und führt bei aktiviertem "Foc-Mode" MAN, HYP oder INF automatisch zu einer Neufokusssierung. Bei eingestelltem "Foc-Mode" HYP führt ein Änderung der Blendeneinstellung dabei ebenfalls automatisch zu einer Neufokussierung.

Für Rückmeldungen zu diesem Skript, egal ob positiv oder negativ, wäre ich sehr dankbar!
In diesem Skript stecken immerhin unzählige Arbeitsstunden von mir bzgl. Programmierung und auch realen Tests an meinen beiden Kameras.

Liebe Grüße
Werner_O

History:

29.11.2014: Skriptversion 1.00 ist verfügbar

30.11.2014: Skriptversion 1.01 ist verfügbar
Ein Bugfix mit kleinen Änderungen in der Unterfunktion restore().

30.11.2014: Skriptversion 1.02 ist verfügbar
Die manuellen Fokus-Vorgabewerte wurden von 0-6500 cm auf 0-65000 mm geändert.
Damit kann speziell bei Aufnahmen im Makromodus noch genauer fokussiert werden.

11.12.2014: Skriptversion 1.03 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 Änderungen gibt es hier.

13.12.2014: Skriptversion 1.04 ist verfügbar
Zum einen ist die neue Skriptversion nun vorbereitet für das kommende CHDK 1.4.
Zum anderen ist der "USB High Speed Mode" nun bereits ab CHDK 1.3 v3442 statt wie bisher v3585 verfügbar.

27.03.2015: Skriptversion 1.05 ist verfügbar
Durch Hilfen von msl, für welche ich überaus dankbar bin =D> , konnte ich den Code weiter optimieren:
1) Ein verbessertes Fehler-Management überprüft nun bei Skriptstart die Skript-Vorgabeparameter bzgl. der gefundenen Kamera-Voreinstellungen und zeigt nun an der Konsole ggfs. sämtliche gefundenen Fehler an, welche ein Ausführen dieses Skriptes bei den gewählten Voreinstellungen verhindern.
2) Durch einen eleganteren Code zum Aktivieren/Deaktivieren des "USB high speed mode" konnte ich die Skriptgröße von ehemals ~ 14 kB auf nun ~ 12 kB reduzieren.

17.05.2015: Skriptversion 1.06 ist verfügbar
Die neue Skriptversion überwacht in den Programmen Av und M mit der Fokuseinstellung HYP zusätzlich die gewählte Blendeneinstellung und stellt bei Blenden-Änderungen automatisch die neue nötige hyperfokale Distanzeinstellung ein.
Dateianhänge
USB_Remo.lua
USB_Remo.lua Version 1.06
(12.53 KiB) 211-mal heruntergeladen
Benutzeravatar
Werner_O
CHDK-Legende
CHDK-Legende
 
Beiträge: 1015
Registriert: 22.10.2010, 13:12
Wohnort: Köln
Kamera(s): SX20 1.02d
SX240 1.01a
S100 1.01a
S3 1.00a

Re: Neues Lua-Skript USB Remote

Beitragvon andreas » 12.12.2017, 15:54

Wie Wheinachten! Nur besser!! Echt sehrgut gemacht!!! Ich habe meine 220er ja schon sehr lange, es ist sogar schon die zweite davon. Als die sx 220 hs rauskam war neben den ganzen Einstellungen, vor allem die geringste Verzögerung. Das CHDK war da schon ein BonBon mit ich nicht rechnete. Ich hab es dann aber kaum gebraucht und es war dann auch schnell wieder weg, (wohin? ? ?).Für wieviel freudiges habt ihr wohl sonst nochseitdem gesorgt? Ich bin so gespannt.Klar dafür kann man sich garnicht genug bedanken. Also eigentlich unbezahlbar!!! Ich mach gern mein Handwerk aber Fotografie ist das was mir richtig freude macht und ich auch noch machen kann wenn ich wie ständig die Hände kaum benutzen kann. Ich dachte damals das dieses Forum ein verlassenes Gewölbe ist. Wirklich gut das das nur eine Täuschung war. Reizt mich schon das mit einem Arduino Nano mit Funk zu bauen. (Auf YT fand sich leider nichts für meine cam).
andreas
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 1
Registriert: 12.12.2017, 15:20
Kamera(s): canon powershot SX 220 HS

Re: Neues Lua-Skript USB Remote

Beitragvon Werner_O » 14.12.2017, 21:51

Hallo Andreas,

zunächst einmal herzlich willkommen hier im CHDK-Forum!
Momentan geht es hier zwar leider sehr ruhig zu, aber "tot" ist dieses Forum GsD noch nicht.

Vielen herzlichen Dank für Deine überaus positive Bewertung meines Skriptes "USB-Remo" :-)))
Es freut mich sehr, daß Du (übrigens als erster überhaupt) eine Rückmeldung zu diesem m.E. wirklich nützlichen Skript gegeben hast. Ich habe dafür ja durchaus viel Zeit investiert bis hin zur aktuellen Version 1.06.
Eine neuere Version dieses Skriptes (v1.07) habe ich auch schon vorbereitet - das könnte dann optional pro Auslösung sogar automatisch mehrere Bilder (vorgesehen sind 2 bis 9) hintereinander machen - wäre das für interessant?

Die drahtlose Steuerung einer Canon Powershot ist natürlich auch sehr interessant!
Wie das mit einem Arduino Nano gehen soll entzieht sich aber meiner Kenntnis.

Allerdings gibt es hier im Forum einen Thread der beschreibt, wie man das mit einem Raspberry Pi 3 hinbekommen kann, wobei die Steuerung der CAM dann via WLAN über ein Laptop oder ein Handy erfolgt:
Wlan-Kamera-Fernsteuerung inkl. Live-Bild mit Raspberry Pi

Liest man diesen Thread durch ist aber vermutlich jeder erschlagen von den vielen Problemen, die msl und ich lösen mussten, damit alles letztendlich dann doch so funktioniert hat wie es soll :-(((

In der Praxis kann das alles aber trotzdem sehr schnell funktionieren:
Einfach von meiner eigenen Homepage ein Abbild einer fertigen Raspi3-Installation inklusive allen nötigen installierten Programmen für CHDK (URL nur auf Anfrage!) downloaden und dann mit dem nötigen Programm (Info dazu auf Anfrage) auf eine neue 32GB Micro-SD-Karte schreiben - Voila, dann funktioniert alles sofort :-)
Wer will, kann dann am Raspi noch etwas nachkonfigurieren, etwa Änderungen von Pi-Benutzername, Passwort, WLAN-Kanal uvam., aber zwingend nötig ist das beileibe nicht.

Nachtrag 22:08
Anbei zusätzlich noch ein Bild, wie das am fernsteuernden Gerät (im Beispiel ein Laptop) aussieht.
Das Bild vom CAM-Monitor kann dabei noch wesentlich vergrößert werden.

Weihnachtliche Grüße aus Köln
Werner_O
Dateianhänge
CHDK-PTP_an_S100.jpg
Benutzeravatar
Werner_O
CHDK-Legende
CHDK-Legende
 
Beiträge: 1015
Registriert: 22.10.2010, 13:12
Wohnort: Köln
Kamera(s): SX20 1.02d
SX240 1.01a
S100 1.01a
S3 1.00a


Zurück zu Code-Ecke

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste