[uBasic] Intervall-Foto Skript mit autom. LCD-Abschalt.+USB

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

Beitragvon holgi09 » 05.07.2008, 19:51

Diese Variante funktioniert bei mir schon besser. Allerdings muss ich vor dem Drücken der Print Taste noch eine Pause machen, da die Funktion sonst nicht ausgeführt wird. ICh habe mal 10 Bilder mit einem Intervall von 10 Sekunden und abschalten des Display nach 3 Bildern eingestellt. Nach dem 3. Bild wird auch abgeschaltet, aber beim 4. Bild wird das Display wieder eingeschaltet und bleibt auch an.
Also irgendwo ist da noch was krumm...vom sonstigen Verhalten kann man die 860 wohl aber mit der 75 gleichstellen..
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 Lipo » 05.07.2008, 20:11

Hallo gehtnix

Ich löse die Kamera über einen Servo aus, der Flieger wird grob in die Richtung ausgerichtet in die man fotografieren will, die Kamera wird auf 1/1000s, Serienbild und die entsprechende Blende gestellt. Bei einem Flug von rund 30min hat man um die 600-800 Bilder auf der Karte, da sind immer ein paar dabei wo der richtige Bildausschnitt getroffen wurde.

Gruss
Lipo
Benutzeravatar
Lipo
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 261
Registriert: 04.07.2008, 16:10
Wohnort: Thüringen / Jena

Beitragvon gehtnix » 06.07.2008, 00:43

Hallo,

das Skript habe ich noch um eine Kleinigkeit erweitert.

Nun kann man mit dem USB-Taster den Zoombereich einstellen.
1x kurz "Zoom in"
1x länger "Zoom out"
1x ganz lang, Intervall-Foto, wie gehabt, wird gestartet.
Die Zeiten können auch hier, wie unter meiner USB-Remote Bauanleitung beschrieben, individuell angepasst werden.

Das hier ist das neu eingefügt Skriptteil:
------------------------------
while 1
do
p=get_usb_power
until p>0
sleep 100
if p>100 then goto "intervall"
if p>50 then
p=0
click "zoom_out"
sleep 600
endif
if p>0 then
p=0
click "zoom_in"
sleep 600
endif
print "Zoom einstellen"
wend

:intervall
------------------------------

Und wer mag kann ja das in ein Skript seiner Wahl einfügen.

Und alles wie gehabt!
Bei Digic III Cameras muß nachfolgend get_prop von 181 auf 105 abgeändert werden!


Das neue Skript:

Code: Alles auswählen
@title Intervall-Foto - USB/LCD
@param a Anzahl Bilder (Faktor 100)
@default a 0
@param b Anzahl Bilder (Faktor 10)
@default b 1
@param c Anzahl Bilder (Faktor 1)
@default c 0
@param d Intervall (min)
@default d 0
@param e Intervall (sec)
@default e 1
@param f LCD aus nach x Bildern
@default f 5

get_prop 181 x
u=x
t=d*60000+e*1000
if a<0 then let a=0
if b<0 then let b=0
if c<0 then let c=0
if t<1000 then let t=1000
s=a*100+b*10+c
print "Gesamtzeit:", t*s/60000, "min", t*s%60000/1000, "sec"
print "Zoom mit Taster einstellen"
sleep 1000

while 1
  do
   p=get_usb_power
  until p>0
  sleep 100
  if p>100 then goto "intervall"
  if p>50 then
    p=0
    click "zoom_out"
    sleep 600
  endif
  if p>0 then
    p=0
    click "zoom_in"
    sleep 600
  endif
  print "Zoom einstellen"
wend

:intervall
print "Bild 1 von", s
shoot
for i=2 to s
  if s<=(f*2) then goto "weiter"
  if i=(f+1) then
    do
    click "display"
    get_prop 181 u
    until u=2
  endif
  if i=(s-f+1) then
    do
    click "display"
    get_prop 181 u
    until u=x
  endif
:weiter
  print "Warte", d, "min", e, "sec"
  sleep t
  print "Bild", i, "von", s
  shoot
next i

end



Viel Spaß damit

gruß gehtnix
Zuletzt geändert von gehtnix am 13.07.2008, 17:47, insgesamt 1-mal geändert.
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 _c_ » 06.07.2008, 08:10

Und hier das Skript für A720-Besitzer. Die Zeiten können hier auch eingestellt werden, dazu müssen die Werte für "z" entsprechend geändert werden.

Code: Alles auswählen
@title A720 Intervall/ZOOM/USB/LCD
@param a Anzahl Bilder (Faktor 100)
@default a 0
@param b Anzahl Bilder (Faktor 10)
@default b 1
@param c Anzahl Bilder (Faktor 1)
@default c 0
@param d Intervall (min)
@default d 0
@param e Intervall (sec)
@default e 1
@param f LCD aus nach x Bildern
@default f 5

get_prop 105 x
u=x
t=d*60000+e*1000
if a<0 then let a=0
if b<0 then let b=0
if c<0 then let c=0
if t<1000 then let t=1000
s=a*100+b*10+c
print "Gesamtzeit:", t*s/60000, "min", t*s%60000/1000, "sec"
print "Zoom mit Taster einstellen"

sleep 1000
p=0
z=0

while 1
  do
    p=get_usb_power
  until p>0
  while p>0
    p=get_usb_power
    z=z+1
  wend
  sleep 100
  if z>15 then goto "intervall"   
  if z>5 then
     z=0
    click "zoom_out"
    sleep 600
  endif
  if z>0 then
    z=0
    click "zoom_in"
    sleep 600
  endif
  print "Zoom einstellen"
wend

:intervall
print "Bild 1 von", s
shoot
for i=2 to s
  if s<=(f*2) then goto "weiter"
  if i=(f+1) then
    do
    click "display"
    get_prop 105 u
    until u=2
  endif
  if i=(s-f+1) then
    do
    click "display"
    get_prop 105 u
    until u=x
  endif
:weiter
  print "Warte", d, "min", e, "sec"
  sleep t
  print "Bild", i, "von", s
  shoot
next i

end


Grüße
Claudio
A720 IS. CHDK-SVN 0.9.8, revision 765 Bild
_c_
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 88
Registriert: 25.06.2008, 11:59

Beitragvon Jörg aus Dresden » 07.07.2008, 13:43

fe50 hat geschrieben:Hallo zusammen,
für die IXUS 860 (SD870) Kamera muss das Script modifiziert werden, da bei diesem Modell das Display mit der DISP Taste NICHT abgeschaltet werden kann
(ist das ist evtl. bei allen neueren Ixus - Modellen OHNE optischen Sucher so ?).

Ich habe deshalb mal die PRINT Taste im Canon-Menü mit "LCD Off" belegt und das Script dahingehend modifiziert, dass nur ein langer Tastendruck (1.5 s) auf die PRINT Taste simuliert wird (kurzer Druck würde ja den Alt-Modus umschalten)...läuft bei mir (mit Allbest51) wunderbar.

Hallo,
gute idee mit der Printtaste. Ich habe es mal ausprobiert mit der IXUS 860, leider schaltet sich der Bilschirm nach dem erfolgreichen Ausschalten sofort beim nächsten Bild wieder ein.
Muß ich sonst noch was beachten?
Viele Grüße
Jörg
IXUS 860IS
Jörg aus Dresden
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 26
Registriert: 30.05.2008, 08:34

Beitragvon PhyrePhoX » 08.07.2008, 13:04

sieht so als wären auch alle kameras mit elektronischem sucher davon betroffen, bei der s3is zB kann ich mit der display taste nur zwischen 0,1,3 wechseln (propcase), die 2 wird erst erreicht wenn man den beschriebenen weg mit der shortcut taste nimmt.
allerdings (wie vom vorredner beschrieben) schaltet sich das display wieder an sobald der auslöser betätigt wird.

habe übrigens in meinem code jetzt einen ubasic befehl angegeben, der lautet get_display_mode - der liefert den propcasewert zurück unabhängig von der digic version. ist aber noch nirgends hochgeladen weil der betreffende server gerade down ist.

vorrausgesetzt, der elektronische sucher verbraucht weniger strom als das grosse display (ist ja fast anzunehmen, da die beleuchtete fläche viel geringer ist), kann man in der abfrage
Code: Alles auswählen
    until u=2

durch
Code: Alles auswählen
    until (u=2 or u=3)

ersetzen, somit liefe das skript auf mehr kameras. zusammen mit get_display_mode wäre es quasi universell. und das mit dem shortcut kriegen wir auch noch raus, es wird ausserdem auch sicherlich bald einen befehl geben, mit dem man das display direkt ausschalten kann (bzw. die hintergrundbeleuchtung, denn die nimmt den löwenanteil des stromes weg).
Benutzeravatar
PhyrePhoX
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 490
Registriert: 04.07.2008, 21:31

Beitragvon fotopeter » 08.07.2008, 18:03

Ich habe das Skript von fe50 ein wenig modifiziert um auch bei Kameras ohne optischen Sucher trotzdem das Display während der Wartezeit - nach der Aufnahme - auszuschalten. Da ich denke, dass das Skript ja nur Sinn macht, wenn lange Wartezeiten zwischen den Aufnahmen liegen, dürfte es schon zu einer Stromersparnis kommen. Nach der letzten Aufnahme bleibt das Display eingeschaltet.

PRINT-Taste mit "LCD-off" belegen: siehe Posting von fe50

Code: Alles auswählen
@title Intervall-LCD aus
rem Für Powershot S5IS, ohne Prüfung auf Displaystatus
rem ACHTUNG: die PRINT Taste muss im Canon Menü mit der Funktion "LCD OFF" belegt sein
@param a Anzahl Bilder (Faktor 100)
@default a 0
@param b Anzahl Bilder (Faktor 10)
@default b 1
@param c Anzahl Bilder (Faktor 1)
@default c 0
@param d Intervall (min)
@default d 0
@param e Intervall (sec; min 2)
@default e 2
@param f LCD aus nach x Bildern
@default f 2

rem Anzahl
if a<0 then let a=0
if b<0 then let b=0
if c<0 then let c=0

s=a*100+b*10+c

if s < 2 then
   print "Anzahl < 2"
   sleep 1000
   goto Ende
endif

rem Zeit
t=d*60000+e*1000

if t<2000 then
  print "Wartezeit fehlt/falsch - mind. 2 Sek"
  sleep 1000
  goto Ende
endif

if s<=f then
   print "LCD immer bleibt an !"
   sleep 1000
endif

print "Gesamtzeit:", t*s/60000, "min", t*s%60000/1000, "sec"
sleep 1000

rem 1. Bild
print "Bild 1 von ", s
sleep 1000
shoot
print "warte", d, "min", e, "sec"
sleep t

rem ab 2. Bild
for i=2 to s-1
  if i<f then     
    print "Bild", i, "von", s
    shoot
    print "warte", d, "min", e, "sec"
    sleep t         
  else         
    shoot   
    print "Bild", i, "von", s
    sleep 500
    press "print"
    sleep 1500
    release "print"
    sleep t - 2000     
  endif
next i

shoot
print "Bild", i, "von", s

:Ende
end
Dateianhänge
IntoDp4.bas
(1.38 KiB) 391-mal heruntergeladen
Zuletzt geändert von fotopeter am 10.07.2008, 07:06, insgesamt 1-mal geändert.
[size=75] [b] S5IS, 860IS; EOS350D [/b] 1.1.0.DE[/size]
Benutzeravatar
fotopeter
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 36
Registriert: 14.06.2008, 07:56
Wohnort: Graz

Beitragvon fe50 » 08.07.2008, 22:58

Hallo fotopeter,

habe Dein angepasstes Script (IntoDp4.bas) gerade mit meiner Ixus 860 (SD870) ausprobiert, funktioniert korrekt, gute Arbeit !

Die von mir oben gepostete Version hatte noch noch ein paar Macken, die hast Du ja nun behoben :)

Um hier nicht allzuviel Verwirrung durch viele verschiedene Versionen zu stiften werde meinen obigen Beitrag editieren & auf Deine Version verweisen :D
◄"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 fe50 » 09.07.2008, 08:22

IceBaer hat geschrieben:Ich habe auch eine PowerShot S5 IS, leider habe ich es mit noch keinem hier vorgestellten Script geschaftt, das Display abzuschalten.
...
Ich habe sowohl bei der Kamera die "Werkseinstellungen" als auch beim CHDK auf Standartwerte zurückgesetzt.


Hallo IceBaer,
eigentlich sind keine weiteren Schritte notwendig, die Version "IntoDp4.bas" von fotopeter sollte auf Deiner S5 direkt funktionieren...
Das Einzige, was mir spontan einfällt sind die Stromspareinstellungen im Canon Menü: Displayabschaltung nach Zeit, zum Testen des Scripts dies evtl. vorübergehend deaktivieren.

1.) Prüfe, ob Du (im Aufnahmemodus der Kamera) durch Tastendruck_lang (= min. 1.5 s) auf die Print-Taste das Display abschalten kannst

Ja -> Script sollte direkt funktionieren, Kamera im manuellen Modus

Nein -> die Print-Taste wurde dann noch nicht korrekt belegt bzw. hier liegt ein Problem vor...
◄"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 fe50 » 09.07.2008, 09:41

Hallo IceBaer,

im S5 Handbuch Seite 97 / 98 ist beschrieben, wie Du die Taste belegen kannst...

(Edit: Link zu externer Seite)
Zuletzt geändert von fe50 am 09.07.2008, 12:28, 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 PhyrePhoX » 09.07.2008, 10:04

das display schaltet sich leider nur bis zum nächsten bild ab, bleibt danach an. zumindest auf der s3is.:(
Benutzeravatar
PhyrePhoX
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 490
Registriert: 04.07.2008, 21:31

Beitragvon fotopeter » 09.07.2008, 10:47

@PhyrePhoX

Das ist genau der Job meines Skripts, dass der Bildschirm nach dem Foto wieder abgeschaltet wird und bis zum nächsten Foto abgeschaltet bleibt.
Leider ist es mir bisher nicht gelungen, der S5IS das kurzfristige Anzeigen des Schirmes beim "Schuß" abzugewöhnen.
Der letzte Teil des Skripts dient dazu, den Schirm wieder einzuschalten.
[size=75] [b] S5IS, 860IS; EOS350D [/b] 1.1.0.DE[/size]
Benutzeravatar
fotopeter
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 36
Registriert: 14.06.2008, 07:56
Wohnort: Graz

Beitragvon fotopeter » 09.07.2008, 11:57

@ IceBaer

Beim Skript kannst Du einstellen, ab wann das Display dunkel geschaltet werden soll; Vorgabe ist nach der 2. Aufnahme; dann hängt es davon ab, welches Zeitintervall Du für die Displayabschaltung wählst. Versuch es bitte mal mit einer Minute bei fünf Aufnahmen (damit Du nicht zu lange warten mußt). Dann sollte nach der 2. Aufnahme für eine Minute das Displpay abgeschaltet werden, dann für die Aufnahme wieder kurz aufleuchten (Zeitraum ist mit 500 mSek. für speichern vorgegeben, da ich bei Tests festgestellt habe, dass die Kamera während dieses Zeitraumes keine Befehle annimmt) und anschl. wieder für eine Min. abgeschaltet werden,.... ; bis zur 5. Aufnahme. Dann wird das Display wieder eingeschaltet und bleibt auch so.

Guten Versuch fotopeter
[size=75] [b] S5IS, 860IS; EOS350D [/b] 1.1.0.DE[/size]
Benutzeravatar
fotopeter
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 36
Registriert: 14.06.2008, 07:56
Wohnort: Graz

Beitragvon PhyrePhoX » 09.07.2008, 22:24

im übrigen:

hier gibt es den trick, einfach einen Stecker oder ein Stürck Plastik in den A/V Ausgang der Kamera zu stecken. Somit denkt die Kamera, der Fernseher ist angeschlossen und man spart so auch Strom.

Für solche Fälle habe ich immer den Stecker eines defekten Kopfhörers dabei (einfach abgeschnitten). total klein, steht nicht über und erfüllt seinen Zweck - Strom sparen.
Benutzeravatar
PhyrePhoX
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 490
Registriert: 04.07.2008, 21:31

Beitragvon helifie » 13.07.2008, 14:42

Das Skript scheint mit meiner G7 nicht klarzukommen (oder ich nicht mit der G7 ?).

Fall 1: Das Skript startet, macht genau ein Bild "Bild 1 von 10" und tut dann gar nichts mehr.

Nach Ausschalten, Warten, Einschalten
Fall 2: Die Schleife wird jetzt durchlaufen, aber das Display wird nicht ausgeschaltet. Man hört und sieht zwar, dass die Taste immer wieder "gedrückt" wird, aber hier dreht es sich im Kreis.
Meine Vermutung: Die G7 reagiert auf "click "display"" nicht erwartungsgemäß, weil im Nachgang der Befehl "get_prop 105 u" in einer Schleifer immer den Wert 0 zurückliefert. Testausgabe eingebaut:
for i=2 to s
if s<=(f*2) then goto "weiter"
if i=(f+1) then
do
click "display"
get_prop 105 u
print "u=", u
until (u=2 or u=3)
endif

Die Bildnachschau habe ich ausgeschaltet.

Hat jemand einen Tipp?

Gruß helifie
Canon Powershot G7, Firmware CHDK für 1.00I
helifie
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 2
Registriert: 12.07.2008, 15:56

VorherigeNächste

Zurück zu Code-Ecke

Wer ist online?

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

cron