Tag&Nacht Zeitraffer mit Makrofokus starten

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

Re: Tag&Nacht Zeitraffer mit Makrofokus starten

Beitragvon kolja » 12.07.2016, 20:00

Stimmt.
Sorry, hatte ich falsch im Kopf.

g7-100g-1.4.1-4655-full.zip liegt in meinem Downloadordner :-)
kolja
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 72
Bilder: 1
Registriert: 27.08.2012, 14:05
Wohnort: Kassel
Kamera(s): G7, momentan nur eine...

Re: Tag&Nacht Zeitraffer mit Makrofokus starten

Beitragvon msl » 12.07.2016, 20:58

Ich habe ein paar Nachforschungen zur G7 angestellt. Leider ist die G7 für Skriptfunktionen im Zusammenhang mit manuellem Fokus nur bedingt geeignet. Alle Testverfahren fielen negativ aus: => https://docs.google.com/spreadsheets/d/ ... edit#gid=1

Das bedeutet, wenn das Setzen einer Fokusdistanz überhaupt funktionieren soll, muss man die Kamera manuell auf MF (manueller Fokus) schalten. Somit kommen wir wieder zur schon vorgeschlagenen Klick-Abfrage-Schleife.

In der zitierten Funktion werden die möglichen Optionen überprüft. Trifft eine zu, wird diese aktiviert. Für die G7 wird das Skript aber keine Möglichkeit finden, da im Quellcode entsprechend der verlinkten Tabelle diese Information hinterlegt ist. (bitand verarbeitet die Argumente bitweise als UND-Funktion.)

Außerdem habe ich die Befürchtung, dass 10 cm Fokusdistanz mit dem Weitwinkelvorsatz im Modus MF zu kurz sind. Deshalb sind die Ergebnisse bei Verwendung des Makromodus besser, weil hier die minimal mögliche Fokusdistanz deutlich geringer ist gegenüber dem Modus MF.

Gruß msl
■ "Hey you, don't tell me there's no hope at all. Together we stand, divided we fall."CHDK inside FAQCHDK-Neuigkeiten auf Twitter
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4507
Bilder: 271
Registriert: 22.02.2008, 12:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Re: Tag&Nacht Zeitraffer mit Makrofokus starten

Beitragvon kolja » 12.07.2016, 21:27

Hi msl

Vielen Dank für deine Nachforschungen.
Hätte ich doch eine G9 :-(

Ich habe mal drei Testbilder gemacht: AF, Macro-Modus und MF

Bild

Bild

Bild

So wirklich kann ich keinen Unterschied zwischen Macro und MF feststellen.

Gruß Kolja
kolja
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 72
Bilder: 1
Registriert: 27.08.2012, 14:05
Wohnort: Kassel
Kamera(s): G7, momentan nur eine...

Re: Tag&Nacht Zeitraffer mit Makrofokus starten

Beitragvon c_joerg » 13.07.2016, 17:29

msl hat geschrieben:Außerdem habe ich die Befürchtung, dass 10 cm Fokusdistanz mit dem Weitwinkelvorsatz im Modus MF zu kurz sind. Deshalb sind die Ergebnisse bei Verwendung des Makromodus besser, weil hier die minimal mögliche Fokusdistanz deutlich geringer ist gegenüber dem Modus MF.


Hallo msl,
habe ich das jetzt richtig verstanden?

Bei set_focus ist es wichtig, in welchem Modus (z.B Makro) man sich befindet?
Ich dachte bisher immer der Makromodus ist nur für den AF wichtig, weil er dann nur in dem vorderen Bereich sucht. Würde der AF immer den gesamten Bereich absuchen, dann würde er immer ziemlich lange brauchen.
Also wenn mein Kamera zum Beispiel ab 5mm fokussieren kann, dann würde set_focus(5) nicht funktionieren, wenn die Kamera nicht im Makromodus ist?

kolja hat geschrieben:So wirklich kann ich keinen Unterschied zwischen Macro und MF feststellen.

Worauf hast du denn fokussiert?

Grüße Jörg
c_joerg
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 326
Registriert: 14.08.2014, 07:50
Wohnort: Bremen
Kamera(s): S110 103a
IXUS30 100k
2 * S45
2 * G1X 101a, 100e
SX230 101a
SX50hs 100c
IXUS160 100a
EOS M3 101a

Re: Tag&Nacht Zeitraffer mit Makrofokus starten

Beitragvon msl » 13.07.2016, 17:50

c_joerg hat geschrieben:habe ich das jetzt richtig verstanden? ...
Nicht so ganz. ;) Ich wollte in erster Linie darauf hinweisen, dass das Nahlimit der Fokusdistanz im Makromodus immer deutlicher niedriger ist, als im normalen AF- oder MF-Modus. Das macht sich dann mit einem Weitwinkelvorsatz noch mehr bemerkbar. Wobei mir der hier verwendete Vorsatz nicht geeignet zu sein scheint. Die Ergebnisse sind eher bescheiden. Am besten ist immer noch das Bild im Makromodus, weil hier offensichtlich wegen des geringeren Nahlimits der Autofokus besser arbeiten konnte.

Gruß msl
■ "Hey you, don't tell me there's no hope at all. Together we stand, divided we fall."CHDK inside FAQCHDK-Neuigkeiten auf Twitter
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4507
Bilder: 271
Registriert: 22.02.2008, 12:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Re: Tag&Nacht Zeitraffer mit Makrofokus starten

Beitragvon Werner_O » 17.07.2016, 17:10

Hallo Kolja (und auch alle anderen CHDK-Interessierten)

ACHTUNG:
Beitrag von mir geändert am 18.07.2016 21:02 Uhr wegen falscher Aussagen von mir !

Auf das dabei sonst übliche Durchstreichen falscher Aussagen habe ich in diesem Fall verzichtet und lieber den gesamten Text komplett korrigiert.

Ich möchte an dieser Stelle darauf hinweisen, dass man über Skripte auch Tastendrücke an der Kamera simulieren kann, um dadurch bspw. in einem Skript den Makromodus zu aktivieren. Dazu würden dann vom Skript schlichtweg der Reihe nach die Tasten gedrückt werden, die man sonst manuell drücken würde, um den Makromodus zu aktivieren.

Leider steckt aber auch hier der Teufel im Detail:

1) CHDK kann üblicherweise nur die "normalen Kameratasten" nachstellen: Up, Down, Left, Right, Set, Menu und vielleicht noch Display.
Weitere Zusatztasten an der jeweiligen CAM (etwa Flash, Print, Makro uam.) werden von CHDK aber normalerweise in Skripten (!) kaum bis gar nicht unterstützt.
Bei meiner (uralten) S3 kann aber bspw. der Makromodus nur über eine separate Zusatztaste aktiviert werden, und das ist m.W. zumindest bisher noch nicht via CHDK möglich.

2) Aktiviert man nach dem Makromodus den MF-Modus, wird der Makromodus wieder aufgehoben!
Es gilt also: entweder Makro oder MF.

Nun zur G7 von Kolja:

Bei der sollte der Makromodus so aktiviert werden können, weil dazu nur die Steuerkreuztasten nötig sind (siehe Anhang).

Hier dazu mal ein Codeschnipsel von mir, welcher für LUA-Skripte (!) geeignet sein sollte auf einigen CAMs wie etwa die G7, SX20 uam. Für sehr viele andere CAMs (etwa meine SX240) müssten die Tastendrücke aber anders nachgestellt werden!
Alle Befehle sind dabei von mir kommentiert:

Code: Alles auswählen
click("left") -- Gehe in die Makromodus-Einstellungen
sleep(100)    -- Zwangspause im Skript von 100 ms (nur zur Sicherheit)
click("left") -- Wähle die Einstellung Makromodus aus (1x nach links in diesem Menü)
sleep(100)    -- Zwangspause im Skript von 100 ms (nur zur Sicherheit)
click("set")  -- Aktiviere den Makromodus via SET
sleep(500)    -- Zwangspause im Skript von 500 ms (nur zur Sicherheit)

Bei uBasic-Skripten sollte das auch auf ähnliche Weise möglich sein, wenn die Syntax an diese Programmiersprache angepasst wird.
Um uBasic habe ich selber aber bisher einen weiten Bogen gemacht und bisher "nur" LUA gelernt, welches ja enorm viel mächtiger als uBasic ist...

Liebe Grüße
Werner
Dateianhänge
G7.gif
G7.gif (5.39 KiB) 1440-mal betrachtet
Zuletzt geändert von Werner_O am 18.07.2016, 21:06, insgesamt 9-mal geändert.
Benutzeravatar
Werner_O
CHDK-Legende
CHDK-Legende
 
Beiträge: 1011
Registriert: 22.10.2010, 14:12
Wohnort: Köln
Kamera(s): SX20 1.02d
SX240 1.01a
S100 1.01a
S3 1.00a

Re: Tag&Nacht Zeitraffer mit Makrofokus starten

Beitragvon kolja » 17.07.2016, 22:32

Hallo Werner

Vielen Dank für die ganze Arbeit die du hier machst.

Ich habe deinen Code in das Skript von dem Ultimate Intervallometer eingefügt:

Code: Alles auswählen
function switch_mode( psmode )   -- change between shooting and playback modes
    if ( psmode == SHOOTING) then
        if ( get_mode() == false ) then
            set_record(true)                                            -- switch to shooting mode
            wait_timeout( get_mode, true, 10000, "fault on switch to shooting mode")
            sleep(2000)   

         -- added code to switch to macro mode
         click("left") -- Gehe in die Makromodus-Einstellungen
         sleep(200)    -- Zwangspause im Skript von 200 ms (nur zur Sicherheit)

         click("left") -- Wähle die Einstellung Makromodus aus (1x nach links in diesem Menü)
         sleep(200)    -- Zwangspause im Skript von 200 ms (nur zur Sicherheit)

         click("set")  -- Aktiviere den Makromodus via SET
         sleep(200)    -- Zwangspause im Skript von 200 ms (nur zur Sicherheit)

         click("up")   -- Aktiviere den MF-Modus
         sleep(500)    -- Zwangspause im Skript von 500 ms (nur zur Sicherheit)
         --

-- a little extra delay so things like set_LCD_display() don't crash on some cameras
        end
    else
        if ( get_mode() == true ) then
            set_record(false)                                           -- switch to playback mode
            wait_timeout( get_mode, false, 10000, "fault on switch to playback mode")
            sleep(2000)                                                 -- a little extra delay so things like set_LCD_display() don't crash on some cameras
        end
    end
end


Doch leider geht die Kamera (G7) nicht in den Makro Modus.

Was kann ich noch versuchen?

Gruß Kolja

-- 17.07.2016, 23:25 --

So, das Ganze mal im Tag&Nacht Zeitraffer Skript versucht
und Tatsache, es funktioniert.

Den Teil mit dem MF_Mode habe ich raus genommen.

Da die Kamera vor jedem Bild die "Tasten drückt" ändert sich der Modus immer hin und her.
Ich habe versucht eine Abfrage einzubauen, leider läuft damit das Skript nicht mehr an.

Was habe ich falsch gemacht?

Code: Alles auswählen
function shooting(logFileName)
--    writeEntryToLog(logFileName, "1");
    check1=get_exp_count()
--    writeEntryToLog(logFileName, "2");
    print ("Photo ",phc)
--    writeEntryToLog(logFileName, "3");

   -- added code to switch to macro mode
   if get_focus_mode != 4 then
   click("left") -- Gehe in die Makromodus-Einstellungen
   sleep(200)    -- Zwangspause im Skript von 200 ms (nur zur Sicherheit)

   click("left") -- Wähle die Einstellung Makromodus aus (1x nach links in diesem Menü)
   sleep(200)    -- Zwangspause im Skript von 200 ms (nur zur Sicherheit)

   click("set")  -- Aktiviere den Makromodus via SET
   sleep(200)    -- Zwangspause im Skript von 200 ms (nur zur Sicherheit)

   end
   -- 
    press ("shoot_half")
    writeEntryToLog(logFileName, "4");
    repeat
        bla = "nein"
        if get_shooting() then
            bla = "ja"
        end
kolja
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 72
Bilder: 1
Registriert: 27.08.2012, 14:05
Wohnort: Kassel
Kamera(s): G7, momentan nur eine...

Re: Tag&Nacht Zeitraffer mit Makrofokus starten

Beitragvon kolja » 18.07.2016, 15:29

Hallo

Einen Fehler habe ich schon gefunden, diese Zeile:

if get_focus_mode != 4 then

muss so lauten:

if get_focus_mode ~= 4 then

(das Ausrufezeichen wurde durch eine Tilde ersetzt)

Damit läuft das Skript durch, macht aber immer noch ein scharfes Bild und dann ein unscharfes...

Noch Ideen?
kolja
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 72
Bilder: 1
Registriert: 27.08.2012, 14:05
Wohnort: Kassel
Kamera(s): G7, momentan nur eine...

Re: Tag&Nacht Zeitraffer mit Makrofokus starten

Beitragvon kolja » 18.07.2016, 18:31

So, jetzt funktioniert es.
Es fehlten die beiden () hinter dem Funktionsaufruf.

Code: Alles auswählen
   -- added code to switch to macro mode
   if get_focus_mode() ~= 4 then
   click("left") -- Gehe in die Makromodus-Einstellungen
   sleep(200)    -- Zwangspause im Skript von 200 ms (nur zur Sicherheit)

   click("left") -- Wähle die Einstellung Makromodus aus (1x nach links in diesem Menü)
   sleep(200)    -- Zwangspause im Skript von 200 ms (nur zur Sicherheit)

   click("set")  -- Aktiviere den Makromodus via SET
   sleep(200)    -- Zwangspause im Skript von 200 ms (nur zur Sicherheit)

   end
   -- 
kolja
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 72
Bilder: 1
Registriert: 27.08.2012, 14:05
Wohnort: Kassel
Kamera(s): G7, momentan nur eine...

Re: Tag&Nacht Zeitraffer mit Makrofokus starten

Beitragvon Werner_O » 18.07.2016, 23:14

Hallo Kolja,

leider komme ich erst jetzt zu einer Antwort auf Deine letzten drei Antworten - vorher ging leider nicht.
Immerhin hast Du meine Idee aufgenommen und Dich auch tapfer erfolgreich durch die Tiefen der Lua-Programmierung gekämpft - Respekt!

Zwei Lua-Sachen hast Du ja schon selber rausgefunden:
Das Zeichen für ungleich ist: ~=
Ein Lua-Befehl muss mit einem () am Ende versehen werden, wobei in den Klammern ggfs. auch ein Wert stehen kann, etwa bei sleep(200)

Zunächst muss ich hier aber darauf hinweisen, dass ich meine vorherige falsche Antwort eben komplett revidiert habe!
Jetzt sollte sie richtig sein - bitte also noch mal neu lesen.
Ich habe dabei auch die Zeiten für die Sleepbefehle etwas realistischer geändert.

Da tatsächlich nur entweder der Macromodus oder aber der MF-Modus eingestellt werden kann, gibt das natürlich ein grundsätzliches Problem für Deine gewünschten Intervallaufnahmen im Makromodus, wenn man statt eines (immer relativ unsicheren) AF eigentlich lieber eine feste Fokusdistanz einsetzen möchte, die man vorher erfolgreich getestet hat.

Dazu ist mir heute folgende Idee gekommen:
Viele Powershots beherrschen ja - oft zusätzlich zum MF-Modus - auch noch den Modus AF-Lock, bei welchem ebenfalls vorher definierte Fokuswerte via Skript eingestellt werden können. Der MF-Modus wird dabei umgangen. Möglicherweise könnte man ja auf diese Weise voreingestellte Fokuswerte auch im Makromodus realisieren.
Ich muss mal ausprobieren, ob ich das an meiner SX20 über neu zu erstellende Testskripte hinbekommen kann - dann könnte es evtl. auch an der G7 funktionieren. Mal schauen, wie lange ich dafür brauche...

Liebe Grüße
Werner_O
Benutzeravatar
Werner_O
CHDK-Legende
CHDK-Legende
 
Beiträge: 1011
Registriert: 22.10.2010, 14:12
Wohnort: Köln
Kamera(s): SX20 1.02d
SX240 1.01a
S100 1.01a
S3 1.00a

Re: Tag&Nacht Zeitraffer mit Makrofokus starten

Beitragvon c_joerg » 19.07.2016, 09:32

Hallo Werner_O
ich finde die Methode von msl sehr smart, bei der man solange in einer Schleife bleibt, bis man in den Makro Modus kommt.
Siehe Reply #2
https://chdk.setepontos.com/index.php?t ... .msg129374
Grüße Jörg
c_joerg
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 326
Registriert: 14.08.2014, 07:50
Wohnort: Bremen
Kamera(s): S110 103a
IXUS30 100k
2 * S45
2 * G1X 101a, 100e
SX230 101a
SX50hs 100c
IXUS160 100a
EOS M3 101a

Re: Tag&Nacht Zeitraffer mit Makrofokus starten

Beitragvon kolja » 19.07.2016, 17:32

Smart ja, aber es muss ja nicht nur nach links geklickt, sondern auch Set gedrückt werden.
Mit dem Code aus dem verlinkten Beitrag würde der Marco Mode, bei der G7 zumindest, nie erreicht werden.
kolja
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 72
Bilder: 1
Registriert: 27.08.2012, 14:05
Wohnort: Kassel
Kamera(s): G7, momentan nur eine...

Re: Tag&Nacht Zeitraffer mit Makrofokus starten

Beitragvon c_joerg » 19.07.2016, 19:51

kolja hat geschrieben:Smart ja, aber es muss ja nicht nur nach links geklickt, sondern auch Set gedrückt werden.
Mit dem Code aus dem verlinkten Beitrag würde der Marco Mode, bei der G7 zumindest, nie erreicht werden.


Ist das Set denn wirklich notwendig?
Bei der G1x reicht es wenn man nur zweimal Left macht ohne Set. Das Set scheint die Einstellung vermutlich nur zu beschleunigen..
c_joerg
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 326
Registriert: 14.08.2014, 07:50
Wohnort: Bremen
Kamera(s): S110 103a
IXUS30 100k
2 * S45
2 * G1X 101a, 100e
SX230 101a
SX50hs 100c
IXUS160 100a
EOS M3 101a

Re: Tag&Nacht Zeitraffer mit Makrofokus starten

Beitragvon msl » 19.07.2016, 20:06

SET ist nicht notwendig. Das kann man im Grundlagen!-Handbuch zur G7 nachlesen (S. 16). Es würde auch dem prinzipiellen Bedienkonzept von Canon widersprechen.

Beim Skripten ist das Aufrufen von bestimmten Tastaturfunktionen am besten zu bewerkstelligen, indem man Schleifen zum virtuellen Drücken von Tasten verwendet und die zuständige Variable (Propertycase) abfragt. Ist der gewünschte Zustand erreicht, kann die Schleife beendet werden. Das hat u.a. den Vorteil, dass kein definierter Ausgangspunkt notwendig ist.

Prinzipiell sollte man sich Beim Skripten etwas Zeit nehmen.

Gruß msl
■ "Hey you, don't tell me there's no hope at all. Together we stand, divided we fall."CHDK inside FAQCHDK-Neuigkeiten auf Twitter
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4507
Bilder: 271
Registriert: 22.02.2008, 12:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Re: Tag&Nacht Zeitraffer mit Makrofokus starten

Beitragvon Werner_O » 20.07.2016, 22:07

Hallo zusammen,

irgendwie habe ich bei diesem Thread das Gefühl, dass die Kommunikation zwischen dem Threadsteller (ein CHDK-Neuling) und den Antwortenden (allesamt mindestens so halbwegs CHDK-Fortgeschrittene bis CHDK-Profis) sehr unsymmetrisch verläuft mit dem Ergebnis, dass Kolja mit so manchen Antworten völlig überfordert ist, auch wenn diese mit bestem Gewissen und auch bester Absicht geschrieben wurden.

Jeder für Kolja erklärte und für ihn schnell umsetzbare Skriptbefehl ist z.Zt. m.E. wichtiger als die Frage, wie das ggfs. noch professioneller gehen könnte.
Natürlich könnte man das OK (zum Makromodus) weglassen, aber bei einem Intervallskript will man ja normalerweise schnell weiterkommen, und dafür reichen normalerweise meine aufgeführten Befehle inkl. dem OK aus, ohne noch zwingend irgendwelche zusätzliche Schleifen programmieren zu müssen.

Selbstverständlich wären solche zusätzliche Schleifen "eigentlich" codemässig professioneller, aber geht es jetzt darum?
Und wenn Kolja jetzt für solche Schleifen auch noch Propertycase-Variablen verwenden soll bekomme ich ehrlich gesagt Bauchweh - auch ich als "halbwegs Luaprogrammierer" mache aus gutem Grund bei meinen Skripten möglichst einen weiten Bogen darum, weil die so kompliziert sind und auch immer nur für einige Powershot-Modelle gelten.
Einen Überblick der diversen Propertycase-Variablen, sortiert nach "PropSetNr", bietet bspw. die Seite http://chdk.wikia.com/wiki/PropertyCase - eine noch bessere Quelle kenne ich leider nicht. Nach einem näheren Blick auf diese Seite sollte aber schnell klar werden, dass dieses Thema enorm komplex ist und keinesfalls anfängertauglich...

Dazu kommen noch weitere Probleme, wie etwa die von msl in diesem Posting verlinkte Tabelle zu unterschiedlichen Kameramöglichkeiten.
Ich habe diese Tabelle mal zusammengefasst für die G7 sowie meine eigenen drei CAMs. Nicht so wichtige Spalten habe ich dabei weggelassen (Min.- und Max.-Distance sowie die Spalten mit gleichen Werten für alle genannten CAMs). Siehe dazu die Datei im Anhang.

Als "normaler Mensch" sehe ich da bspw. zu meiner SX240 in Spalte "set aflock" eindeutig "crash" - rein theoretisch sollte meine SX240 also keinen AF-Lock machen können.
In der Praxis macht sie aber trotzdem einen AF-Lock (obwohl am Bildschirm dann kein AF-Lock angezeigt wird wie bei meiner SX20), und ich kann sogar Intervallaufnahmen bei aktiviertem Makromodus mit Auto-FixFokus mit ihr machen mit der neuen Beta-Version meines Intervallskriptes IntervWO.lua (siehe dieses Posting).

Leider kann ich dieses Skript nicht an meiner S3 testen, weil die gerade verliehen ist.
Ob diese neue Skriptversion an einer G7 läuft müsste zudem Kolja testen - einen Versuch wäre es ja wert.

Als Fazit bleibt bei mir nun nur die Erkenntnis, dass alle Tabellen der Welt nur mit gesunder Skepsis betrachtet werden dürfen.
Sehr oft bekommt man nur durch eigenes Ausprobieren heraus, ob etwas funktioniert oder nicht.

Liebe Grüße
Werner_O
Dateianhänge
powershot_Möglichkeiten_k.gif
Benutzeravatar
Werner_O
CHDK-Legende
CHDK-Legende
 
Beiträge: 1011
Registriert: 22.10.2010, 14:12
Wohnort: Köln
Kamera(s): SX20 1.02d
SX240 1.01a
S100 1.01a
S3 1.00a

Vorherige

Zurück zu Code-Ecke

Wer ist online?

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

cron