[uBasic] Codebaustelle Sternstrichspuren

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

Codebaustelle Sternstrichspuren

Beitragvon Nasus » 21.04.2009, 22:34

Hallo zusammen

Ich hab mir heut Mittag die A 590is bestellt und möchte sie auch für eines meiner Lieblingsmotive verwenden - Sternstrichspuren. Mehr dazu und Software (nicht von mir) gibts z.B. bei startrails.de.
Eigentlich funktionierts auch mit einem Gummiring und Serienaufnahmen (sollte es wenigstens bei deaktivierter Rauschunterdrückung), aber seit fast zwei Stunden versuch ich mich an einem skript (habe keine Ahnung vom Programmieren).

Grundfragen:
Werden die @param auf dem Bildschirm angezeigt bzw. dadurch eine Auswahlmöglichkeit generiert? Setzen die sich über andere Kameraeinstellungen hinweg, z.B. wenn ich die Kamera vorher auf iso400 gestellt hab, diesen Wert aber über @param auf 200 setze, dann müsste das doch klappen, oder?

Wie löst man aus, ohne den Verschluss zu öffnen? (Ich möchte, dass die Kamera nachträglich automatisch Dunkelbilder generiert, diese aber nicht abzieht)

Die A590is hat keine Blende, sondern einen ND-Filter, right?

Gibt es weitere Befehle, die nicht im Benutzerhandbuch stehen?


Also hier mal mein allererster Versuch, Anmerkungen sind durch // eingeleitet:

Code: Alles auswählen

@title Strichspuren

@param a Anzahl an Fotos    // Wird das im OSD angezeigt bzw. zur Wahl gestellt?

@default a 100         // sollen 100 Aufnahmen werden

@param z Belichtungszeit    // Wird das im OSD angezeigt bzw. zur Wahl gestellt?

@default z -18                // sollen 64 Sekunden sein

@param i isoEinstellung      // Wird das im OSD angezeigt bzw. zur Wahl gestellt?

@default i 3         // sollen iso200 sein

set_tv z                      // die 64 Sekunden von oben

set_focus  65535           // kommt unendlich wohl am nächsten

set_nd_filter 2            // sonst wirds dunkel

set_iso i                 // iso200 dürfte passen, sonst sieht man wohl nix

set_raw_nr 1               // sonst gibts Lücken in den Strichspuren

set_backlight 0

set_raw 0

set_resolution 0

sleep 3000                 // erst mal 3 Sekunden warten, falls man durch Tastendruck irgendwelche Schwingungen verursacht hat

while a>0                 // Anfang Zählschleife

shoot                           // gibts den Befehl auch ohne zu fokussieren? Fokus hab ich oben ja schon gesetzt, darüber sollte die Kamera nicht nachdenken

a=a-1


//
// Hier sollte noch abgefragt werden, ob die Batteriespannung und der Speicherplatz ausreicht - geht das einigermassen flott?
//

wend                    // Schleifenende

playsound 4         // Lassen sich auch andere Töne/Melodien entwerfen?

//
// Hier werden dann die Dunkelbilder aufgenommen
//


playsound 7

end




Grüße
Nasus

Und sry wegen den tausend Fragen - ich werd morgen mal die Forensuche und Links abklappern, einiges dürfte sich auch damit lösen lassen (immer diese überstürtzten Neulandbetreter :D)
Nasus
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 31
Registriert: 21.04.2009, 20:01

Re: [uBasic] Codebaustelle Sternstrichspuren (blutiger Anfän

Beitragvon fe50 » 21.04.2009, 22:54

Hallo Nasus, herzlich wilkommen im CHDK Forum !

Ich bin grad nur mit dem Netbook unterwegs, hier aber mal ein paar erste kurze Antworten...
Nasus hat geschrieben:Werden die @param auf dem Bildschirm angezeigt bzw. dadurch eine Auswahlmöglichkeit generiert? Setzen die sich über andere Kameraeinstellungen hinweg, z.B. wenn ich die Kamera vorher auf iso400 gestellt hab, diesen Wert aber über @param auf 200 setze, dann müsste das doch klappen, oder?

Handbuch;
CHDK Overrides übersteuern immer die Kamera, egal wie sie gesetzt werden, ob per Script oder im Menü.
@param Variablen sind im CHDK Script Menü nach Laden des Scripts sicht,- und einstellbar.
Die A590is hat keine Blende, sondern einen ND-Filter, right?

Nein, die A590 hat ne reale Iris & keinen ND Filter.

Gibt es weitere Befehle, die nicht im Benutzerhandbuch stehen?

Eventuell ganz neue, mehr dazu in der CHDK Wikia oder direkt im Quellcode...

ich werd morgen mal die Forensuche und Links abklappern, einiges dürfte sich auch damit lösen lassen (immer diese überstürtzten Neulandbetreter :D)
Ja !!!

Viel Spass mit CHDK !
◄"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

Re: [uBasic] Codebaustelle Sternstrichspuren (blutiger Anfän

Beitragvon gehtnix » 21.04.2009, 23:50

Nasus hat geschrieben:....immer diese überstürtzten Neulandbetreter

Für diese Gilde haben wir extra eine Script-Sammlung zusammengetragen, gleich oben in der Code-Ecke, schön geordnet nach LUA/uBasic und Themen.

Was willst Du mehr? :-k

gruß gehtnix
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 + IXUS990 IS

Beitragvon Nasus » 22.04.2009, 09:17

Hi

Und vielen Dank euch beiden. Wie schon geschrieben: war gestern Abend etwas überstürtzt - hab was neues für mich entdeckt und war erstmal begeistert ohne groß drüber nachzudenken :D
Gerade aus sevenup werd ich mir einiges "klauen" können, vielen Dank gehtnix, ich hoff mal das geht so in Ordnung.
Mal schau wie weit ich heut Abend komm - erstmal werd ich auf "richtige" Blende umstellen, dann die auto power off aus Sevenup einfügen.
Mit den Spielereien wie andere Töne werd ichs erstmal lassen - es wird wohl eh schon schwierig genug, dass es stabil und möglichst schnell läuft (eben ohne Pause).

Fast alles konnte ich mir bis jetzt schon zusammenlesen - unklar ist noch, wie ich Dunkelbilder automatisch aufnehmen kann.

Grüße
Nasus
Nasus
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 31
Registriert: 21.04.2009, 20:01

Beitragvon C4_87 » 22.04.2009, 10:19

1. wofür brauchst du dunkelbilder?
2. wenns eh dunkel drausen ist brauchst ja nur kurzbelichtetes bild machen lassen ;)
erstmal kein CHDK mehr für mich :)

http://zephyrc4.deviantart.com

[irgenwie hab ich ja mit den : ^^] ^^
Benutzeravatar
C4_87
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 250
Bilder: 5
Registriert: 13.06.2008, 11:26
Wohnort: Jetzt in DD

Beitragvon Nasus » 22.04.2009, 10:41

Hi C4_87

Dunkelbilder dienen der Rauschunterdrückung bei Langzeitbelichtungen - die meisten Kameras machen das automatisch bei langen Belichtungszeiten und ziehen dieses Dunkelbild dann automatisch vom "richtigen" ab.
Bei Strichspuraufnahmen stört das allerdings, da man da Pausen zwischen den Strichen generiert.
Daher möchte ich die nachträglich machen.
Diese Dunkelbilder enthalten dann - gleiche Temperatur, Belichtungszeit und iso vorausgesetzt - das gleiche Rauschen wie das richtige Bild ("Lightframe"), aber eben nur das Rauschen. Durch diese zwei Bilder, eben Light und Dark, kann man also einigermassen das Rauschen vom Signal trennen, ohne Weichzeichner oder ähnliches zu verwenden, die das Rauschen und das Nutzsignal schwächen.
Kürzer belichten geht also nicht. Wobei ganz kurz belichtete "Darks" auch interessant wären - diese enthalten nur das Ausleserauschen und werden "Bias" genannt.
Bei Strichspuraufnahmen ists aber etwas einfacher als bei "richtigen" Astrofotos - es mittelt sich das Rauschen durch die verschobenen Nutzsignale (die Sterne) weitestgehend raus - unbedingt nötig sind Darks daher nicht, auf Bias kann man wohl auch verzichten.
Trotzdem wäre es eben interessant, das mit einem skript zu lösen.

"Wer kann der kann" 8)
Wie schon geschrieben gäbs auch einfache mechanische Lösungen (auch für die Dunkelbilder - ich muss ja nur das normale Skript bei völliger Dunkelheit ablaufen lassen), aber mich reizt es einfach, mich mal als völlig Fachfremder mit Informatik und Programmiersprachen zu beschäftigen :)
Nasus
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 31
Registriert: 21.04.2009, 20:01

Beitragvon Nasus » 22.04.2009, 11:51

Mahlzeit

Hier mal das etwas überarbeitete Skript:
Code: Alles auswählen
@title Strichspuren

@param a Anzahl an Fotos    // Wird das im OSD angezeigt bzw. zur Wahl gestellt?

@default a 100         // sollen 100 Aufnahmen werden

@param z Belichtungszeit    // Wird das im OSD angezeigt bzw. zur Wahl gestellt?

@default z -18        // sollen 64 Sekunden sein

@param i iso  2=100 3=200 4=400 5=800     

@default i 3         // sollen iso200 sein

@param q Qualität 0=Super 1=Fein 2=Normal

@default q 1

set_tv z              // die 64 Sekunden von oben

set_focus  65535           // kommt unendlich wohl am nächsten

set_av 9                   // Offenblende setzen

set_iso i         // iso200 dürfte passen, sonst sieht man wohl nix

set_raw_nr 1               // sonst gibts Lücken in den Strichspuren

set_raw 0

set_quality q

set_resolution 0

sleep 3000         // erst mal 3 Sekunden warten, falls man durch Tastendruck irgendwelche Schwingungen verursacht hat

set_backlight 0         // Hintergrundbeleuchtung aus

click "display"         // Display deaktivieren

while a>0         // Anfang Zählschleife

click "shoot_full"                // Auslösen ohne fokussieren

a=a-1

wend            // Schleifenende

playsound 4         // Lassen sich auch andere Töne/Melodien entwerfen?

//
// Hier werden dann die Dunkelbilder aufgenommen
//

click "display"       // Display aktivieren

set_backlight 1         // Hintergrundbeleuchtung an

playsound 7

end


Was mir noch Probleme bereitet:
- gibt es set_flash_mode? Ich würd den Blitz gern grundsätzlich deaktivieren?
- wie schliesst man die Objektivschutzklappe und nimmt dabei ein Bild auf?
- wie bekomme ich den Debugger zum laufen? Muss ich dafür eine Umgebung schaffen? .jar kenn mein XP nicht

edit: Debugger läuft, hab da nur etwas falsch eingestellt. Scheinbar keine Fehler - wobei es mich etwas verwundert, dass er so schnell ist - die vorgegebene Belichtungszeit etc wird er wohl nicht emulieren können. Oder muss ich das anders lösen, als mit einem kurzen click auf den Auslöser?

Grüße
Nasus
Nasus
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 31
Registriert: 21.04.2009, 20:01

Beitragvon fe50 » 22.04.2009, 13:43

Hi Nasus,
bitte trage doch erstmal Deine Kameradaten in die Signatur ein...

Nasus hat geschrieben:- gibt es set_flash_mode? Ich würd den Blitz gern grundsätzlich deaktivieren?

Du kannst den Blitz über /get_prop/set_pop steuern, in der Wikia findest Du die PropertyCase-Seite mit den Werten
Dieser Thread könnte auch interessant sein...

wie schliesst man die Objektivschutzklappe und nimmt dabei ein Bild auf?

manuell ;)
Es gibt derzeit im Standard-CHDK keine direkte Steuerung des Shutters, dürfte wohl auch nicht eingebaut werden, da die Kamera hier bei falscher Nutzung beschädigt werden könnte.

Du kannst im CHDK Menü die DarkFrameSubtraction abschalten, den DF selbst musst Du "händisch" machen (größter Blendenwert für kleinste Iris-Öffnung is zu empfehlen), teste auch mal mit unterschiedlichen Einstellungen & bei unterschiedlichen Kameratemperaturen...

Du meinst sicher Zeno's Debugger - ja, die Kameraabhängigen Befehle werden einfach emuliert.

Du solltest unbedingt auch folgenden Beitrag mit Hintergrundinfos im engl. Forum lesen:
How to subtract a dark frame without taking a dark frame
◄"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 Nasus » 22.04.2009, 14:14

Hi fe50

fe50 hat geschrieben:Hi Nasus,
bitte trage doch erstmal Deine Kameradaten in die Signatur ein...

Ich hoffe es wird angezeigt - bis jetzt hab ich ja noch keine (gestern Abend bestellt, chdk entdeckt, Forum entdeckt, von uBasic gehört...)

fe50 hat geschrieben:Du kannst den Blitz über /get_prop/set_pop steuern, in der Wikia findest Du die PropertyCase-Seite mit den Werten
Dieser Thread könnte auch interessant sein...

Ah, wunderbar - da war ich schon, habs aber wohl überlesen.

Das mit den automatischen Dark- /Biasframes werd ich dann wohl lassen - das verlinkte Skript reicht ja eigentlich auch.
Was ich sonst noch implementieren wollte wäre ein Abbruch durch den Benutzer - entsprechenden Code hab ich schon gefunden + recycelt.
Gibt es sonst noch Ideen oder sind offensichtliche Fehler aufgefallen? Bevor ich meine Kamera damit malträtiere werd ich hier noch die endgültige Fassung zeigen und ggf. auch das logfile des Debuggers.
Wie gesagt hab ich davon keine Ahnung und ein bisschen Bammel...

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

Beitragvon Nasus » 22.04.2009, 16:34

Hallo zusammen

Hier eine weitere Fassung. Bis auf 'Abbruch durch Benutzer' dürfte sie komplett sein. Wobei ich das in 'Sevenup' nicht ganz kapiert hab (den Code wollte ich abkucken): So wie ich das verstanden hab, wird die Kamera bei Benutzerabbruch komplett heruntergefahren - gäbe es da auch andere Möglichkeiten, z.B. per Tastendruck auf 'end' zu springen? Diesen Sprungbefehl könnte ich an eine beliebige Stelle schreiben?
Weitere Probleme:
Beim Debugging bekomm ich nur einen Durchlauf hin - cls hilft da auch nicht, um den Wert 'a' für die Anzahl der Aufnahmen zurückzusetzen. Kann das später zum Problem werden?


Code: Alles auswählen
rem Strichspuren by Nasus
rem Nimmt hunder(te) Bilder zum anschliessenden Ãœberlagern auf
rem Noch nicht implementiert: Abbruch durch Benutzer


@title Strichspuren
rem per Default werden 100 Bilder gemacht
@param a Anzahl an Fotos

@default a 100
rem Die Belichtungszeit wird auf 64 Sekunden gesetzt
@param z Belichtungszeit

@default z -18
rem Die iso werden auf 200 gesetzt
@param i iso  2=100 3=200 4=400 5=800     

@default i 3
rem Kompression wird auf Fein gesetzt
@param q Qualität 0=Super 1=Fein 2=Normal

@default q 1
rem Blende festlegen 9-18
@param b Blende

@default b 9
rem Bildstabilisator deaktivieren
set_prop 145 3
rem Blitz wird deaktiviert
set_prop 143 2
rem Belichtungszeit
set_tv z 
rem Fokus auf unendlich
set_focus 65535
rem Blende festlegen
set_av b
rem iso festlegen
set_iso i
rem Darkframe deaktivieren
set_raw_nr 1
rem jpgs aufnehmen
set_raw 0
rem Kompression festlegen
set_quality q
rem Auflösung festlegen
set_resolution 0
rem Pause gegen Verwackeln
sleep 3000
rem Hintergrundbeleuchtung aus
set_backlight 0
rem Display aus
click "display"
rem Fotografieren
while a>0

click "shoot_full"

a=a-1

wend
rem Display einschalten
click "display"
rem Hintergrundbeleuchtung an
set_backlight 1
rem Weckton
playsound 7

end



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

Beitragvon gehtnix » 22.04.2009, 17:41

@Nasus,

Du bist ja recht ungeduldig. So kannst Du Deine Wartezeit sinnvoll überbrücken. Den Kartenleser so umbauen das dieser auch schreibgeschützte (Lock) Karte beschreiben kann. Das wirst Du beim Scripten schätzen lernen. Hier der Link. Einige SD-Karten wurden nur mit LOCK auf/zu zerlegt.

Nasus hat geschrieben:...Wobei ich das in 'Sevenup' nicht ganz kapiert hab (den Code wollte ich abkucken): So wie ich das verstanden hab, wird die Kamera bei Benutzerabbruch komplett heruntergefahren

Im PDF steht, da steht "@param n Kamera aus 0=nein 1=ja". Also wenn n=1 dann Display wieder ein und Kamera absolut aus, sonst nur Display ein und nur Script Stopp.

Sonst bist Du schon auf gutem Wege. Mit dem Display aus/ein wird so nicht gehen. Aber warte mal ab bist Du die Kamera in Händen hast. Handbuch lesen nicht vergessen. Wenn Du nicht Deine Kamera-Tastatur nicht verstehst, wie kannst Du dann dem Script sagen was zu tun ist.

Auf die Schreibweise der Parameter achten: Hier mal ein Satz aus Sevenup:

@param a Anzahl Bilder (Faktor 100)
@default a 0


geschmeidig bleiben

gruß gehtnix
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 + IXUS990 IS

Beitragvon Nasus » 22.04.2009, 19:21

Hi gehtnix

Ja, ich bin wahnsinnig ungeduldig und fasziniert von diesen Möglichkeiten :)
Morgen oder übermorgen dürfte die Kamera da sein - ich werd dann lieber in Richtung trial an error arbeiten; so trocken ists irgendwie weniger sinnvoll :?
Die Sache mit dem Display hab ich jetzt versucht über PropertyCase zu lösen, mal schaun obs klappt.
Das mit dem Beutzerabbruch ist mir jetzt auch etwas klarer geworden, dürfte hinhauen.

Vielen Dank schonmal, ich meld mich dann wieder wenn ich vermute etwas lauffähiges gebastelt zu haben.

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

Beitragvon Nasus » 23.04.2009, 09:19

So

Kamera kam pünktlich zur Kaffeepause, hier mal die Version, die ich aufspielen möchte:

Code: Alles auswählen
rem Strichspuren by Nasus
rem Nimmt hunder(te) Bilder zum anschliessenden Ãœberlagern auf
rem Noch nicht implementiert: Abbruch durch Benutzer

@title Strichspuren
rem per Default werden 100 Bilder gemacht
@param a Anzahl an Fotos

@default a 100
rem Die Belichtungszeit wird auf 64 Sekunden gesetzt
@param z Belichtungszeit

@default z -18
rem Die iso werden auf 200 gesetzt
@param i iso  2=100 3=200 4=400 5=800     

@default i 3
rem Kompression wird auf Fein gesetzt
@param q Qualität 0=Super 1=Fein 2=Normal

@default q 1
rem Blende festlegen 9-18
@param b Blende

@default b 9
rem Bildstabilisator deaktivieren
set_prop 145 3
rem Blitz wird deaktiviert
set_prop 143 2
rem Belichtungszeit
set_tv z 
rem Fokus auf unendlich
set_focus 65535
rem Blende festlegen
set_av b
rem iso festlegen
set_iso i
rem Darkframe deaktivieren
set_raw_nr 1
rem jpgs aufnehmen
set_raw 0
rem Kompression festlegen
set_quality q
rem Auflösung festlegen
set_resolution 0
rem Pause gegen Verwackeln
sleep 3000
rem Hintergrundbeleuchtung aus
set_backlight 0
rem Display aus
click "display"
rem Fotografieren
while a>0

click "shoot_full"

a=a-1

wend
rem Display einschalten
click "display"
rem Hintergrundbeleuchtung an
set_backlight 1
rem Weckton
playsound 7

end


Abbruch hab ich erst noch weggelassen, ansonsten halte ich das Geschreibsel für lauffähig. Werd heut Mittag oder Abend vom Test berichten.

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

Beitragvon Nasus » 23.04.2009, 11:25

Getestet....

...und durchgefallen. In der Version wird nur ein einziges Bild aufgenommen - ansonsten macht die Kamera, was sie soll. Wobei ich den Teil (Anzahl der Bilder) direkt aus dem Handbuch übernommen hab. :?
Diesen eeeeewig langen Piepton deaktivier ich auch.

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

Beitragvon msl » 23.04.2009, 11:38

Das ist doch schon mal nicht schlecht, wenn das Skript ohne Fehlermeldung funktioniert.

Dein Problem liegt an der langen Belichtungszeit. Da mußt Du dem Skript schon sagen, dass es mit der weiteren Abarbeitung warten soll. Sonst rennt es durch und ist fertig, bevor Dein erstes Bild erstellt wurde.

Du kannst mit sleep experimentieren. Das ist aber nicht so elegant. Eine Schleife mit get_shooting (gibt 1 während der Auslösung zurück) ist effektiver.

Viel Spaß beim weiteren Experimentieren.

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

Nächste

Zurück zu Code-Ecke

Wer ist online?

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