[uBasic] Codebaustelle Sternstrichspuren

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

Beitragvon Nasus » 23.04.2009, 12:03

Hi msl

Und vielen Dank für den Tipp. Den ruppigen Weg über 'sleep' hab ich gerade ausprobiert - funktioniert leider nicht, selbst bei sehr langen Pausen von 5000ms.
Mittagspause ist jetzt leider rum, ich werd in der nächsten Kaffepause mal die andere Variante ausprobiern und mir die Intervallskripte näher anschaun, die dürften damit ja auch konfrontiert werden.

Grüße
Nasus
Canon Powershot A590is // Pentax k100ds
Nasus
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 31
Registriert: 21.04.2009, 20:01

Beitragvon gehtnix » 23.04.2009, 13:18

msl hat geschrieben:...Eine Schleife mit get_shooting (gibt 1 während der Auslösung zurück) ist effektiver

Selbiges Thema, dem kurzmöglichsten Intervall im Script, haben wir ja hier auch noch.
Jetzt habe ich mal das anstatt Sleep eingesetzt
Code: Alles auswählen
   do
      a=get_shooting
      z=z+1
      if a=1 then
         print z" - A = ",a
      endif
   until a=0

Der zählt zwar schön das z hoch und verlässt dann auch die Schleife, aber bei 100 Bilder habe ich auch nur 26 auf der Karte abgespeichert.
Mal vorsichtig von mir getippt, das Abspeichern der Daten wird "unterschlagen".

gruß gehtnx
Bild
Benutzeravatar
gehtnix
CHDK-Legende
CHDK-Legende
 
Beiträge: 2406
Bilder: 8
Registriert: 17.04.2008, 12:42
Wohnort: München
Kamera(s): A610 100e+f + IXUS50 101b

Beitragvon Nasus » 23.04.2009, 14:11

gehtnix hat geschrieben:...Mal vorsichtig von mir getippt, das Abspeichern der Daten wird "unterschlagen"....


Oo...
Muss man sich darum etwa auch kümmern wenn länger belichtet wird? Ich dachte das machen "shoot" und Konsorten automatisch.
Bzw. _kann_ man sich darum kümmern? Das wäre ja eigentlich sehr interessant, z.B. liesse sich vielleicht sogar die Bildfolge beschleunigen, wenn z.B.:

Verschluss auf
Bild aufnehmen
Verschluss zu
CCD auslesen und in Internen Speicher schreiben
Verschluss auf
Bild aufnehmen Parallel dazu 'altes' Bild vom internen Speicher auf Karte schieben
Verschluss zu
CCD auslesen und in Internen Speicher schreiben
Verschluss auf
etc.

...sofern es überhaupt möglich ist, Parallel verschiedene Dinge zu tun.


Aber bis dahin wärs eh noch ein weiter Weg - ich versuch erstmal eine normale "Gummiring-Serien-Langzeitbelichtung" ohne Skript und schau was passiert. Das ein oder andere liesse sich so vielleicht ausschliessen.

Grüße
Nasus


edit:
Hierbei (M, Belichtung auf 64s, keine Rauschunterdrückung, Serienbildmodus) hängt sich die Kamera bei mir bereits nach dem ersten Bild auf. Es könnte also mit der zu langen Belichtungszeit und Serienbildern zu tun haben.
Setze ich die Belichtungszeit auf 1s, werden 3 Bilder aufgenommen...
Canon Powershot A590is // Pentax k100ds
Nasus
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 31
Registriert: 21.04.2009, 20:01

Beitragvon msl » 23.04.2009, 14:32

Nasus hat geschrieben:Oo...
Muss man sich darum etwa auch kümmern wenn länger belichtet wird? Ich dachte das machen "shoot" und Konsorten automatisch.


Du dachtest schon richtig. Laß Dich nicht durch die [offtopic]-Anmerkungen durcheinanderbringen. der Shoot-Befehl hat sozusagen allinclusive. Du mußt bei Deinen Intervall-Langzeitbelichtungen nur darauf achten, dass das Skript erst weiter macht, wenn die Belichtungszeit abgeschlossen ist.

Anders herum ist es, wenn man sehr kurze Intervallabstände mit relativ kurzen Belichtungszeiten machen will. Dann könnte es zeitkritisch werden, weil nicht alle Befehle im Takt verarbeitet werden können.

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

Beitragvon Nasus » 23.04.2009, 15:16

Jetzt kommt der peinliche Teil:

Der minicode aus dem Handbuch funktioniert einwandfrei:


Code: Alles auswählen
@title minitrail

@param a Bilder

@default a 20

while a>0

shoot

a=a+1

wend

end



Auch wenn ich meine Wunschvariablen einfach im M Modus eingeb ohne dass ich im Skript Presets treffe (d.h. sie belichtet lange und hört erst auf, wenn genug Bilder gemacht wurden).
Die Kamera bekommts also hin, aber in einer Codebastelei muss ich wohl einen Fehler gebaut haben.

edit: habe shoot noch in click "shoot_full" abgeändert - mehr brauch ich eigentlich gar nicht, der Rest lässt sich ja prima übers normale Menü einstellen. Merkliche Verzögerungen gibts da zum Glück auch nicht. Somit wäre das Programm als "Public Beta" fertig:
Code: Alles auswählen
@title minitrail

@param a Bilder

@default a 90

while a>0

click "shoot_full"

a=a+1

wend

end



Bei den Einstellungen eben unter 'RAW' die Rauschunterdrückung deaktivieren und eine lange Belichtungszeit vorwählen. Manuell auf unendlich fokussieren und iso und Blende nach Gusto bzw. Erträglichkeit setzen.
Beispielbilder gibts sobald das Wetter mal mitspielt.

Grüße
Nasus
Canon Powershot A590is // Pentax k100ds
Nasus
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 31
Registriert: 21.04.2009, 20:01

Beitragvon gehtnix » 23.04.2009, 16:30

msl hat geschrieben:...Laß Dich nicht durch die [offtopic]-Anmerkungen durcheinanderbringen...
Hmmmm, gibt mir zu Denken. Du schlägst einen Befehl vor, den setze ich ein, stelle fest dass der nicht das tut was Du ankündigst und bezeichnet dann den umgesetzten Vorschlag, der dazu für viele Scripte eine Lösung darstellen könnte, als Offtopic Bild

Dann habe ich, simpel gedacht, zu dem get_shooting ein Sleep dazu gesetzt. Wenn also t=2 oder 20 Sekunden dann eiert das Script während der Belichtung in der Schleife rum. Das Sleep sollte das die Zeit zum Abspeichern auffangen. Soweit so gut. Dachte ich man könnte das Problem so erschlagen.

Code: Alles auswählen
@param a Anzahl Bilder (Faktor 100)
@default a 1
@param b Speicherzeit (1/100)
@default b 1

cls
a=a*100
B=b*100
press "shoot_half"
sleep 200
set_aflock 1
for i=0 to a
   click "shoot_full"
   do
      a=get_shooting
      z=z+1
      if a=1 then
         print z" - A = ",a
      endif
   until a=0
   sleep B
next i
print "I = ",i
release "shoot_half"
set_aflock 0
end



Es geschieht aber keine Änderung bei Sleep 200. Dann mal Sleep allmählich hochgeschraubt, bis auf 1000. Und da fällt mir was sehr Eigenartiges auf. Die Schleife mit dem Do und get_shooting wird nicht mehr ausgeführt, z müsste ja weiter hochzählen. Z wird einmal auf 8 hochgezählt und einmal Printbefehl, das war´s. Das Script läuft ohne Murren zu Ende und liefert mir exakt meine 101 Bilder. Das Sleep wirkt sich zeitlich nicht nach hinten aus sondern nach vorne aus!

Was das passiert, da bin ich aber völlig ratlos.
get_shooting scheint dafür unbrauchbar zu sein.

Was aber mit Sleep passiert, da bedarf es der Klärung durch die Coder.

Und wie ich sehe, Nasus hat eine Lösung gefunden.

geschmeidig bleiben

gruß gehtnix
Bild
Benutzeravatar
gehtnix
CHDK-Legende
CHDK-Legende
 
Beiträge: 2406
Bilder: 8
Registriert: 17.04.2008, 12:42
Wohnort: München
Kamera(s): A610 100e+f + IXUS50 101b

Beitragvon msl » 23.04.2009, 16:32

@Nasus

Na das ist doch nicht schlecht.

Auch für CHDK gilt: warum umständlich, wenn es einfach geht. ;)

Du kannst eigentlich alle Vorgaben, die notwendig sind, im Menü "Extra Foto Einstellungen" eingeben. Vielleicht wird es für die A590 wie schon für einzelne andere Kameras unbegrenzt lange Belichtungszeiten geben.

Aber nun kennst Du Dich schon mit den Skripten aus, hast CHDK am Laufen und kannst Einstellungen vornehmen. Deshalb habe ich mal das "blutiger Anfänger" aus dem Titel gestrichen.

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

Beitragvon Nasus » 23.04.2009, 23:49

So,

erstes Bild ist im Kasten. Das Skript funktioniert; wie beim Bild erläutert ( viewtopic.php?p=9729#9729 ) gibts aber noch Optimierungsbedarf: Das muss schneller gehn, ohne Pausen :?
Canon Powershot A590is // Pentax k100ds
Nasus
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 31
Registriert: 21.04.2009, 20:01

Vorherige

Zurück zu Code-Ecke

Wer ist online?

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