[uBasic] HDR-Reihe mit Hyperfokalen Fokus - Update XVI

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

Beitragvon ShowerPot » 18.03.2010, 14:40

gehtnix hat geschrieben:A470
6300, 8100, 9800, 12100, 14800, 17600, 21600
CoC = 0.005
Hallo,

ich habe das Skript für die A470 angepasst.

Code: Alles auswählen
:setfocus
      select get_zoom
      case 0; A=6300
      case 1; A=8100
      case 2; A=9800
      case 3; A=12100
      case 4; A=14800
      case 5; A=17600
      case 6; A=21600
   end_select

   select get_av
      case 8; B=26
      case 9; B=28
      case 10; B=32
      case 11; B=35
      case 12; B=40
      case 13; B=45
      case 14; B=50
      case 15; B=56
      case 16; B=63
      case 17; B=71
      case 18; B=80
   end_select

   if B<56 then
      select A
         case 8100; B=28
         case 9800; B=32
         case 12100; B=35
         case 14800; B=40
         case 17600; B=45
         case 21600; B=50
      end_select
   endif
   gosub "hfrechner"
   return
Ich hoffe, dass dies so stimmt. Ich habe nämlich erst vor drei Stunden CHDK überhaupt entdeckt (tolle Sache).

Nun bin ich aber verwirrt, da die A470 ja gar keine Blende hat, sondern mit ND-Filter arbeitet (also eigentlich nur zwei Blendenstufen). Kann man das im Skript abbilden?

Viele Grüße,

ShowerPot
PowerShot A470 1.02C
ShowerPot
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 3
Registriert: 18.03.2010, 11:10

Beitragvon ShowerPot » 18.03.2010, 21:12

So, jetzt habe ich noch mal drüber nachgedacht und habe eine Erkenntnis erlangt. Hoffentlich ist es die richtige ;)

Die A470 hat keine Iris-Blende. Die Blende verstellt sich lediglich mit dem Zoom (jedem Zoomfaktor ist eine Blendenstufe zugeordnet).

Der ND-Filter beeinflußt die Blende gar nicht. Er macht halt bloß das Bild dunkler.
PowerShot A470 1.02C
ShowerPot
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 3
Registriert: 18.03.2010, 11:10

Beitragvon gehtnix » 18.03.2010, 21:59

Hi ShowerPot,

sei gegrüßt unter den CHDK-Süchtigen.

Wahrlich eine reife Leistung von Dir, dass Du nach kaum 3 Stunden schon ein Skript angepasst hast.

Nachdem bei Dir so fix ging, wird es Dich nicht vom Hocker hauen wenn ich Dir nun sage, das war umsonst. In Zukunft wird das so aussehen.

Syntax: [ Download ] [ Verstecken ]
Benutze uBasic Syntax Highlighting
:setfocus

    set_focus get_hyp_dist

    sleep x

    return

 
Erstellt in 0.005 Sekunden, mit GeSHi 1.0.8.9
Das wird gerade umgestellt, ist aber noch nicht freigegeben. Siehe den Thread DOF-Rechner

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 gehtnix » 24.04.2010, 17:36

Hallo,

anbei das neue HDR-HYPer-Skript für alle Kameras. Auch für die IXUS!

- Die Optik brauch nicht mehr angepasst zu werden !
- Lediglich die Tastenfolge für den Custom Timer muss ausgetauscht werden.
- IXUS-User müssen hier selbst anpassen.
- Bei der SX200 müssen zwei weitere Anpassungen vorgenommen werden. Hinweis in der zweiten Datei.

In der Datei "Custom Timer Anpassung.txt" befindet sich Code der zu tauschen ist.

Später ist oben aktualisiert. Die alten Skripte stehen gesammelt in einer Zip-Datei zur Verfügung.

gruss gehtnix Bild
Zuletzt geändert von gehtnix am 30.04.2010, 23:28, insgesamt 3-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

sleep in der Prozedur schalten

Beitragvon oimara » 25.04.2010, 20:10

In der Prozedur schalten steht "sleep 300"
Für die SX 200 ist das viel zu kurz, das Fokus-Menü rotiert endlos.
Ab ca. 1500 funktionierts.

Die SX 200 hat im Autofokus-Modus 4 verschiedene Timer, es sind also nur 5 Klicks zum einschalten des CT erforderlich.
Im manuellen Fokus-Modus fällt der Gesichtserkennungsselbstauslöser weg, es reichen in diesem Fall also 4 Klicks zum Aktivieren des CT. Evtl. trifft das auch für andere Kameras zu?
Ausschalten funktioniert jeweils mit 2 Klicks.
SX 200 IS
oimara
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 10
Registriert: 22.12.2009, 20:26

Beitragvon Hamster.78 » 25.04.2010, 21:17

Hi oimara,

die sleep 300 sollte bei Deiner SX200 auch reichen, ich denke das du den Parameter für den Fokus noch nicht geändert hast.

Syntax: [ Download ] [ Verstecken ]
Benutze uBasic Syntax Highlighting
@param y Fokus Down=0/Left=1/S5=2

@default y 1
Erstellt in 0.004 Sekunden, mit GeSHi 1.0.8.9


gruß Hamster
◄ SX100 v100c ◄ Samsung NX10

CHDK DEThe Canon Camera Hackers Manual schon gelesen?
Benutzeravatar
Hamster.78
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 318
Registriert: 24.01.2009, 11:21
Wohnort: Sachsen / Chemnitz

Re: sleep in der Prozedur schalten

Beitragvon gehtnix » 25.04.2010, 22:00

oimara hat geschrieben:..Ab ca. 1500 funktionierts.
Hattest Du nie die alte Version ausprobiert? Da stand doch auch die 300 drinnen. Probiere das doch mal aus.
Und den Fokus hast wohl geändert weil sonst würde da ja was anderes getippt werden. Aber 1500 :roll:

oimara hat geschrieben:Die SX 200 hat im Autofokus-Modus 4 verschiedene Timer...
Das verstehe ich nun mal gar nicht! 84x wurde das alte Skript runtergeladen. Bist Du der Erste der das ausprobiert?

Bei Kopieren habe ich wohl was durcheinander gebracht. Das hier sind die Zeile aus dem alten SX200 Skript.
Syntax: [ Download ] [ Verstecken ]
Benutze uBasic Syntax Highlighting
rem -------------------- Kameraspezifisch --------------------

:customein

    click "set"

    sleep z

    click "down"

    sleep z

    click "down"

    sleep z

    click "left"

    sleep z

    click "set"

    sleep z

    a=1

    return



:customaus

    click "set"

    sleep z

    click "right"

    sleep z

    click "up"

    sleep z

    click "up"

    sleep z

    click "set"

    sleep z

    a=2

    return

 
Erstellt in 0.006 Sekunden, mit GeSHi 1.0.8.9
Ob das jetzt funktioniert?
Was ich nicht verstehe, im Handbuch geht es doch mit Down auf den Selbstauslöser. Müsste doch dann Down, Down, Down, (Down ?), Set heißen.

Ich sehe mir mal an ob das mit Propcase 102 geht.

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 oimara » 26.04.2010, 07:46

Den Parameter für den Fokus habe ich geändert.
In der Standardeinstellung rotiert das Fokusmenü endlos.
Ich hab daraufhin sleep 300 durch sleep z ersetzt und erst bei einem Wert von 150 für z (entspricht doch 1500) stoppte das Menü beim manuellen Fokus.

Übrigens: im alten Skript steht auch sleep z und hab den Wert deutlich ggü. dem Standard erhöhen müssen.

Die Tastenklicks selber funktionieren auch mit einem wesentlich geringeren Wert.
Liegt's am get_focus_mode?

Zum Selbstauslöser:
Mit dem ersten down wird das Menü aufgerufen, off ist ausgewählt, vier weitere wechseln zum CT.
Im manuellen Fokus-Modus sind nur drei weitere Klicks auf down erforderlich.
SX 200 IS
oimara
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 10
Registriert: 22.12.2009, 20:26

Beitragvon gehtnix » 26.04.2010, 13:02

Hi oimara,

teste mal folgendes Skript. Das schaltet nur MF ein und wieder aus.
Fokus-Taste sollte so stimmen. sleep lässt Du erst ein mal bei den 15.

Gib mir dann mal Zeiten und Zahl der Durchläufe.

Wenn der nicht Ausschaltet, dann nimm mal das rem in Zeile 24 raus.

gruß gehtnix
Dateianhänge
Schalte.bas
(601 Bytes) 316-mal heruntergeladen
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 gehtnix » 26.04.2010, 17:33

Hi oimara,

das probiere mal bitte für den CT aus.

gruß gehtnix
Dateianhänge
Propcase.bas
(434 Bytes) 310-mal heruntergeladen
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 oimara » 26.04.2010, 19:08

Das Skript "Propcase" gibt a Propcase 102 " zurück.

Zum Skript "Schalten":
Ohne Veränderungen schaltet es die Fokus-Modi pausenlos in einer Endlosschleife durch.
Das Entfernen von rem hat nichts gebracht.

Ich hab die Zeile sleep 300 wieder auskommentiert.

Bei z = 130 wird der manuelle Fokus aktiviert, dann wieder auf Auto zurückgestellt.
Durchläufe: 4 Zeit 5800
Durchläufe: 1 Zeit 1500

Bei z = 100 wird der manuelle Fokus aktiviert, springt dann aber mit der Anzeige der ersten Zeilen auf Auto, bleibt dann auf Auto stehen.
Durchläufe: 5 Zeit 5750
Durchläufe: 0 Zeit 50

Unter z = 100: Endlosschleife

Grüße
Martin
SX 200 IS
oimara
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 10
Registriert: 22.12.2009, 20:26

Beitragvon gehtnix » 26.04.2010, 20:17

Hi oimara,

mit dem Schalten komme ich erstmal auch nicht weiter.
Du könntest noch versuchen nach dem ersten "down" mit "up" um die Ecke an den MF zu kommen. Das wäre schon mal kürzer.

Das Skript "Propcase" gibt a Propcase 102 " zurück.
Na, das ist ja mal das mindeste. Hat aber der Custom Timer 2x gewechselt?

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 oimara » 26.04.2010, 21:51

Also, was lange währt wird endlich gut:
"propcase" funktioniert mit folgenden Änderungen:
  • in der letzten Zeile fehlt ein return
  • mit Propcase 223, folglich B=0 bzw. 3
  • mit Klammern um get_prop A
Code: Alles auswählen
@param a Prop case (Faktor 100)
@default a 2
@param b Prop case  (Faktor 10)
@default b 2
@param c Prop case   (Faktor 1)
@default c 3
@param e Tastensleep
@default e 15

e=e*10
A=a*100+b*10+c

print "Propcase "A, get_prop A

B=3
gosub "ct"
sleep 5000
press "shoot_half"
do
until get_shooting=1
release "shoot_half"
do
until get_shooting=0
B=0
gosub "ct"
sleep 2000
end

:ct
while (get_prop A) <> B
   click "down"
   sleep e
wend
return



"Schalte" bzw. "HDR-Hyper" funktioniert auf der SX 200 wie folgt:
  1. h=1 durch h=4 im Skript ersetzen und
  2. folgende Code-Schnippsel verwenden:

Code: Alles auswählen
:schalten
   if get_nd_present<>0 then goto "ixus"
      cls
      if y=2 and (h=4)or(h=0) then
         click "mf"
         sleep z
      else
         while (get_prop 6)<>h
            select y
               case 0; click "down"
               case 1; click "left"
            end_select
            sleep 300
         wend
      endif
   :ixus
   return


Code: Alles auswählen
rem -------------------- Kameraspezifisch --------------------
:customein
while (get_prop 223) <> 3
   click "down"
   sleep z
wend
   a=1
   return

:customaus
while (get_prop 223) <> 0
   click "down"
   sleep z
wend
   a=2
   return


Es funktioniert mit dem voreingestellten Wert 15 für z.

Warum es mit get_focus_mode nicht (bzw. nur mit extrem langen sleep-Pausen) und mit get_prop 6 funktioniert? Keine Ahnung.
SX 200 IS
oimara
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 10
Registriert: 22.12.2009, 20:26

Beitragvon gehtnix » 26.04.2010, 22:45

oimara hat geschrieben:in der letzten Zeile fehlt ein return
:oops: , sorry.

Deine Änderungen (=D>)stelle ich nun in "Custom Timer Anpassung.txt" ein.

Und bei "get_focus_mode", könnt mir nur noch vorstellen dass da im Trunk was nicht stimmt.

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 rudi » 27.04.2010, 16:01

Hallo oimara,
oimara hat geschrieben:Warum es mit get_focus_mode nicht (bzw. nur mit extrem langen sleep-Pausen) und mit get_prop 6 funktioniert? Keine Ahnung.
Ich auch nicht, daher nimm das uBasic-Script.
Du stellst nacheinander verschiede Modi (normal, MF, Makro) ein und startest das Script. Die Anzeigen sollten dem eingestellten Mode entsprechen.

Gruß rudi
Dateianhänge
focmode.bas
uBasic: Test zu get_focus_mode
(1.04 KiB) 299-mal heruntergeladen
Benutzeravatar
rudi
CHDK-Spezialist
CHDK-Spezialist
 
Beiträge: 510
Registriert: 11.09.2009, 11:27
Kamera(s): A590IS_101B, SX260_100B

VorherigeNächste

Zurück zu Code-Ecke

Wer ist online?

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

cron