[Lua] Belichtungsreihen mit erweiterten Möglichkeiten

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

Belichtungsreihen mit erweiterten Möglichkeiten

Beitragvon msl » 24.10.2008, 20:08

Hallo Leute,

Sicherlich ist die einfachste und schnellste Lösung, eine Belichtungsreihe zu erstellen, schon im CHDK eingebaut. Es gibt aber immer wieder Anwendungen, bei den besondere Einstellungen erwünscht sind. Dieses Skript faßt diese Möglichkeiten zusammen.

Für das Skript ist eine aktuelle CHDK-Version notwendig. Es sollte auf allen Kameras laufen.

Belichtungsreihe als Ev-Reihe oder Tv-Reihe alternierend
Mehrfache Erstellung von Bildern in einer Einstellung - wichtig bei Langzeitbelichtung.
Fixierung Fokus
Log-Datei schreiben

Skript-Parameter

Schrittweite in 1/3 Ev oder 1 Tv: voreingestellt 3
Anzahl verschiedene Werte: voreingestellt 5
Startverzögerung in s: voreingestellt 1s
Anzahl Bilder pro Wert: voreingestellt 1
Fix Fokus 0=aus 1=an: voreingestellt an
Modus 0=Ev 1=Tv: voreingestellt Ev
Log -1=aus ab 0 Dateiname: voreingestellt 0

Die Log-Datei befindet sich im CHDK-Unterverzeichnis LOG und hat den Namen LOG_0100.txt bei Voreinstellung 0. Ändert man den Voreinstellwert 0 auf z.B. 5, heißt die Datei LOG_0105.txt. Sie enthält alle Informationen, die in Skriptkonsole angezeigt wurden. Somit ist eine spätere Zuordnung der Bilder einfacher möglich.

Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
--[[
@title Belichtungsreihe universal
@param a Schrittweite [x*1/3Ev][Tv]
@default a 3
@param b Anzahl verschiedene Werte
@default b 5
@param c Startverzögerung in [s]
@default c 1
@param d Anzahl Bilder pro Wert
@default d 1
@param e fix Fokus [0=aus][1=an]
@default e 1
@param f Modus      [0=Ev]  [1=Tv]
@default f 0
@param g Log [-1=aus][x=Datei-Nr.]
@default g 0
]]

 
function shooting()
    press "shoot_half"
    repeat
    until get_shooting() == true
    if e == 1 then set_aflock(1) end                 
    if f == 1 then      
        if get_propset() == 2 then
            set_prop(262,TV)
        else
            set_prop(69,TV)
        end
    else
        set_ev(EV)
    end
    press "shoot_full"
    release "shoot_full"
    release "shoot_half"
    repeat
    until get_shooting() ~= true
end
 
function multi_shooting(count)
  if count>1 then print("Aufnahme 1 von",count) end
  shooting()
  if count>1 then
    for n=2,count do
      print("Aufnahme",n,"von",count)
      shooting()
    end
  end
end

function print_Tv()
    tv_output = {"64s","50s","40s","32s","25s","20s","15s","13s","10s","8s","6s",
    "5s","4s","3.2s","2.5s","2s","1.6s","1.3s","1s","0.8s","0.6s","0.5s","0.4s",
    "0.3s","1/4s","1/5s","1/6s","1/8s","1/10s","1/13s","1/15s","1/20s","1/25s",
    "1/30s","1/40s","1/50s","1/60s","1/80s","1/100s","1/125s","1/160s","1/200s",
    "1/250s","1/320s","1/400s","1/500s","1/640s","1/800s","1/1000s","1/1250s",
    "1/1600s","1/2000s","1/2500s","1/3200s","1/4000s","1/5000s","1/6400s",
    "1/8000s","1/10000s"}
    print_tv = "Tv="..tv_output[tv+19]
end

function EV_hdr()
    x=0
    for s=1,b do
        if x>0 then x=-1 else x=1 end
        EV = Ev_is + (s/2*x) * a * 32
        z=EV/32/3
        if z<0 then zz=z*-1 else zz=z end
        if x == -1 then
            zzz = "-"..zz..","
        else
            zzz = zz..","
        end
        cls()
        print("Bild",s,"von",b,"mit",zzz..(EV*10/32/3-z*10)*x,"Ev")
    multi_shooting(d)
  end
end
 
function TV_hdr()
    x=0
    for s=1,b do
        if x>0 then x=-1 else x=1 end
        TV = Tv_is + (s/2*x) * a * 32
        tv = TV / 32
        cls()
        print_Tv()
        print("Bild",s,"von",b,print_tv)
    multi_shooting(d)
  end
end

--start script
 
if a<1 then a=1 end
if b<3 then b=3 end
if c<0 then c=0 end
if d<1 then d=1 end
if e<0 or e>1 then e=0 end
if f<0 or f>1 then f=0 end
 
time01 = get_tick_count()

press("shoot_half")
repeat
          until get_shooting() == true
release("shoot_half")

Ev_is  = get_ev()
Tv_is  = get_tv96()
tv     = Tv_is / 32
flash  = get_flash_mode()
EV     = 0
TV     = 0

if flash ~= 2 then
    print("Blitz abschalten!")
    sleep(3000)
    exit_alt()
    sleep(2000)
end

if c>0 then
  print("Warte",c,"Sekunde(n)")
  sleep(c*1000)
end

if g>-1 then print_screen(100+g) end
 
if f==0 then
  EV_hdr()
else
  TV_hdr()
end
 
set_ev(Ev_is)
set_tv96(Tv_is)
cls()
time02 = get_tick_count()
time03 = (time02 - time01)/1000
print(b*d,"Aufnahmen in",time03,"Sek.")
print(os.date("am %d.%m.%y um %X"))
print("erstellt.")
if g>-1 then print_screen(-10000) end
if e == 1 then set_aflock(0) end
Erstellt in 0.023 Sekunden, mit GeSHi 1.0.8.9


Viel Spaß beim Testen

Gruß msl
Dateianhänge
beli_uni.lua
Belichtungsreihe universal
(2.96 KiB) 2177-mal heruntergeladen
Zuletzt geändert von msl am 31.05.2009, 00:03, insgesamt 3-mal geändert.
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Beitragvon no.7 » 24.10.2008, 20:25

Hallo msl,

wußte gar nicht, dass es chdk schon so lange gibt ... :lol:

Für das Skript ist eine aktuelle CHDK-Version, Stand Okt. 2000, notwendig. Es sollte auf allen Kameras laufen.


Gruß
no.7
SX40HS,S5IS (+ CHDK, ist doch klar!)
Benutzeravatar
no.7
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 97
Bilder: 0
Registriert: 06.05.2008, 16:47

uBasic:1 Unk stmt

Beitragvon Money » 18.11.2008, 22:31

Hallo Zusammen,

beim meiner Ixus hängt es mit der Fehlermeldung links oben nach dem Start...Was mache ich verkehrt?
Die Einstellungen in den Menüs konnte ich alle machen...Jetzt wird es bald klappen mit den Belichtungsreihen...

Danke für eure Hilfe!
Ixus 75 5037
*Neu* ixus75_sd750-102a-0.7.7-579.zip
*Alt*chdk_sd750_102a_08jun08_1547.zip
Money
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 9
Registriert: 11.09.2008, 12:00

Beitragvon möve » 18.11.2008, 23:26

Hallo msl,

...hat nicht direkt was mit diesem thema zu tun aber meine Freundin rief eben aus Leipzig an...
Sie ist zum ersten Mal dort und von der Stadt total begeistert, meinte noch so:
hier müssen wir nochmal gemeinsam hin :-)

LG aus dem Rheinland,

möve
Zuletzt geändert von möve am 18.11.2008, 23:42, insgesamt 1-mal geändert.
S5 IS-101a-1.0.1-DE-Rev 193
FB im Salzstreuer :-) http://www.wirklemms.de/chdk/forum/view ... highlight=
Benutzeravatar
möve
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 55
Registriert: 18.07.2008, 20:48
Wohnort: Düsseldorf

Re: uBasic:1 Unk stmt

Beitragvon fe50 » 18.11.2008, 23:27

Money hat geschrieben:beim meiner Ixus hängt es mit der Fehlermeldung links oben nach dem Start...Was mache ich verkehrt?
...wie lautet die denn ??? ;)

Hast du das Script auch mit .lua abgespeichert ?

  Bild    CHDK Wikia: Lua Hauptseite
Zuletzt geändert von fe50 am 19.11.2008, 01:37, insgesamt 1-mal geändert.
◄"The grass was greener, The light was brighter"►  ◄fe50 home►  ◄TRAIL-Magazin►  ◄RTFM !►
Benutzeravatar
fe50
CHDK-Legende
CHDK-Legende
 
Beiträge: 1106
Registriert: 25.04.2008, 14:28
Wohnort: B'Württemberg
Kamera(s): Ixus50 101b, Ixus860 100c, SX10 101a

Beitragvon msl » 19.11.2008, 00:05

@Money

CHDK ist mit einer ubasic-Fehlermeldung gekommen, obwohl es ein Lua-Skript ist. Das heißt also:

1. kein Lua-fähiges CHDK (ist wohl mit der neuen Version auszuschließen.)
2. falsche Datei-Endung? Sollte .lua sein.
3. Skript-Datei fehlerhaft? Nochmal laden und kopieren.
(4. evt. mal eine anderes Lua-Skript probieren.)

Hoffentlich bekommst Du es hin - viel Glück.

@Möve

Stimmt - Leipzig ist wie viele andere Städte in Deutschland eine Reise wert. :D

Gruß msl
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Beitragvon PhyrePhoX » 19.11.2008, 01:12

auf jeden, bin da auch öfter, von mir aus können wir da das weltweit erste chdk treffen machen ;)
sorry offtopic... tjo, scheinst das script falsch abgespeichert zu haben ;)
Benutzeravatar
PhyrePhoX
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 490
Registriert: 04.07.2008, 21:31

*Gelöst* Nicht mit *.lua Endung

Beitragvon Money » 20.11.2008, 20:20

Kein kleiner Dummer...

aber die Tabelle fehlt heute bei mir (Firefox) die wurde gestern noch angezeigt.
Ich erinner mich das die Datei vorgestern mit *.lua Endung da bezeichnet war.

Naja nichts desto trotz jetzt funzt es... Super
Ixus 75 5037
*Neu* ixus75_sd750-102a-0.7.7-579.zip
*Alt*chdk_sd750_102a_08jun08_1547.zip
Money
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 9
Registriert: 11.09.2008, 12:00

Beitragvon holgi09 » 21.11.2008, 20:24

Ich habe noch einkleines Problem mit dem script:

Wenn das Script läuft, zeigt mir die Scripteinblendung immer "Focus: 0" an und auch kurz vor Auslösung scheint jedesmal neu focussiert zu werden. Egal was ich bei "fix focus" einstelle...

Ich nutze 0.7.6-575 mit der Ixus 75 Firmware 1.02a
Canon Digital Ixus 130, leider noch nicht portiert...
Benutzeravatar
holgi09
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 144
Registriert: 13.06.2008, 08:04
Wohnort: 31xxx
Kamera(s): EOS 10D.

Beitragvon msl » 21.11.2008, 20:51

Das Problem ist mir bekannt. Leider habe ich dazu bisher noch keine Lösung gefunden. Bei Veröffentlichung des Skriptes dachte ich, es könnte evt. jemand eine Lösung anbieten. Du bist aber der erste, dem dieser Umstand eine Mitteilung wert ist. :shock:

Manchmal funktioniert es, manchmal nicht. Bisher konnte ich keine Zusammenhänge zwischen Kameraeinstellungen und Skript herstellen. Obwohl die Werte erst nach dem Fokusieren (Auslöser halbgedrückt) gesetzt werden, bleiben sie nicht konstant.

Vielleicht findet ja jemand eine Möglichkeit, Kameraeinstellungen und Skriptfunktion in Einklang zu bringen.

Gruß msl
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Beitragvon fe50 » 21.11.2008, 21:41

msl hat geschrieben:Vielleicht findet ja jemand eine Möglichkeit, Kameraeinstellungen und Skriptfunktion in Einklang zu bringen.

Wie wäre es mit Focus Lock AFL ?
◄"The grass was greener, The light was brighter"►  ◄fe50 home►  ◄TRAIL-Magazin►  ◄RTFM !►
Benutzeravatar
fe50
CHDK-Legende
CHDK-Legende
 
Beiträge: 1106
Registriert: 25.04.2008, 14:28
Wohnort: B'Württemberg
Kamera(s): Ixus50 101b, Ixus860 100c, SX10 101a

Beitragvon gaggala » 03.03.2009, 23:16

Hallo,

ich habe gerade das Script auf der S5is getestet, irgendetwas klappt leider nicht. In den Standardeinsstellungen kommt 5 mal das gleiche Bild raus. Es kommt zu keiner Fehlermeldung, das Log sagt auch, es wären Bilder mit unterschiedlichem Ev aufgenommen worden. Die Kamera ist im Modus "M".

Stelle ich im Script auf Tv Modus um funktioniert es plötzlich prima.

Ich würde aber gern die Belichtungsreihe über die Blende steuern lassen, mach ich da was falsch? Hab ich evtl. etwas übersehen?

für einen Tip wär ich sehr dankbar.

Ansonsten wäre das Script erste Sahne:-)

viele Grüsse,
gaggala
S5ISgaggala
Benutzeravatar
gaggala
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 19
Registriert: 10.07.2008, 18:20
Wohnort: München

Beitragvon gaggala » 03.03.2009, 23:34

Habs grad noch mit dem Script beli_iv.lua probiert, da hab ich das gleiche Problem.
Ich habe gedacht, daß ich evtl bei einem Faktor von 3 ,also 1 Ev möglicherweise nicht viel erkenne und daher diesen mal auf 9 erhöht, bringt aber auch nichts.

viele Grüsse,
gaggala
S5ISgaggala
Benutzeravatar
gaggala
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 19
Registriert: 10.07.2008, 18:20
Wohnort: München

Beitragvon msl » 03.03.2009, 23:57

Hallo gaggala,

da bist Du an die Grenzen von Belichtungsreihen per Skript gestoßen. Leider lassen sich Belichtungsreihen nicht für alle Modi und alle Kameras gleichermaßen per Skript realisieren. Z.B. gibt es auch Probleme bei Belichtungszeiten über 1 Sekunde.

Der optimale Weg ist immer noch die die Erstellung einer Reihe im fortlaufenden Modus. Da kannst Du dann auch mit der Blende arbeiten. Alles, was unveränderlich bleiben soll, läßt sich durch die Ersatzwerte fest einstellen.

Gruß msl
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Beitragvon gaggala » 04.03.2009, 00:32

Guten Abend msl,

danke für die super schnelle Reaktion:-) War grad noch am tüfteln und habe mir die alten Postings unter dem uBasic Belichtungsreihen von stefstef angesehen, da hatte ich schon das gleiche Problem.

und ich hab ne Lösung gefunden:-)
Bei der S5is darfs nicht der M-Modus sein, im"Auto" oder "P" Modus macht die Kamera unterschiedliche Belichtungen. Schon mal nicht schlecht.

Jetzt aber noch was anderes, egal ob ich Tv oder Ev einstelle, die Blende bleibt immer gleich. Nur die Zeit ändert sich. Im AUTO Modus wird sogar der ISO Wert verändert...

Ist das so korrekt, oder hab ich da was falsch verstanden?

Oder bin ich schon zu müde?

Ab ins Bett, heut komm ich eh nimmer drauf:-)

gute Nacht,
gaggala
S5ISgaggala
Benutzeravatar
gaggala
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 19
Registriert: 10.07.2008, 18:20
Wohnort: München

Nächste

Zurück zu Code-Ecke

Wer ist online?

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

cron