[geklärt] Manueller Fokus schießt Kamera + USB ab

Fragen zur Bedienung und Funktionsweise des CHDKs
Forumsregeln
Überprüfe folgende Dinge:
Bist stets der Dokumentation gefolgt?
Hast du im Forum schon nach ähnlichen Problemen gesucht?
Hast du bei deiner Frage das Problem umfassend beschrieben?
Welche Kamera und CHDK-Version betrifft das Problem?

Probleme mit einem Skript sollten möglichst und wenn vorhanden in dem zugehörigen Thema zum Skript besprochen werden.

Manueller Fokus schießt Kamera + USB ab

Beitragvon fehlfarbe » 15.02.2012, 01:00

Hallo Leute,

ich bastle gerade an einem Skript für meine IXUS 60, das automatisch Bilder schießen soll, welche dann vom Linux Rechner ausgelesen werden usw.

Nun versuche ich den Fokus auf unendlich zu stellen, da die Kamera später eh den Himmel aufnehmen soll. Leider passiert dabei etwas sehr merkwürdiges. Wenn ich versuche den Fokus mittels set_prop(12,1) auf manuell zu stellen spinnen Kamera und Rechner auf einmal herum.
Das Display der Kamera (lasse ich mir am Rechnerbildschirm über den Videoausgang anzeigen) bleibt vllt 1s danach hängen und sogar Linux (läuft im VMWarePlayer) hängt bis sich der VMWarePlayer wegen Lesefehlern verabschiedet (!). Die Fehler kommen wohl vom USB Port, der auf einmal zu spinnen scheint.
Wenn ich andere Werte per set_prop(12, x) setze, läuft alles normal weiter?! Alle anderen Befehle funktionieren bisher auch einwandfrei und verursachen auch keine Abstürze.

Hat jemand eine Idee, woran das liegen könnte oder wie ich das Problem evtl. umgehen kann?

Hier mal mein Skript, ab Zeile 96 wird es dann interessant. Das print(get_prop(12)) gibt er noch ohne zu murren aus, danach ist Sense.

Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
--[[
@title TimelapseIntervalometer
--]]


--initialize variables
exptime = -15
wtime = 3
run = true;

-- get the exp value in sec
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"}

    tv_input = get_tv96() / 32
    ret = "Exposure: "..tv_output[tv_input+19]
    return ret
end

-- prints the ISO val
function print_iso()
    iso_val = {"HIGH ISO","AUTO","80","100","200","400","800"}
    iso = get_iso_mode()
   
    if iso<-1 then iso = -1 end
    if iso>4 then iso = 5 end

    ret = "ISO: "..iso_val[iso+2]
    return ret
end


-- add exif data (temp...)
require "EXIFModule"
function addExif()

    P = JPEGImage
    ImgDir = "A/DCIM/101CANON/"
    ImgNumber = get_exp_count()
    No = tostring(ImgNumber)
    ImgFileName = "IMG_"..string.rep("0", 4-string.len(No))..No..".JPG"
    P:new(ImgDir..ImgFileName)
    P:SetUserComment("Temp: "..get_temperature(0).."/"..get_temperature(1).."C "..print_Tv().." "..print_iso().." "..get_vbatt().."mV")
    write_usb_msg(ImgFileName) --send filename to pc
end

-- delete old images
function delfileson(path)
  local fd,c,i,fpath,stat=os.listdir(path),0
  if fd~=nil and #fd>0 then
    for i=1, #fd do
      fpath=path .. "/" .. fd[i]
      stat=os.stat(fpath)
      if stat~=nil and stat.is_file==true and os.remove(fpath)~=nil then
        c=c+1
      else
        break
      end
    end
  end
  print("deleted all in "..path)
  return c
end

-- start the script
while run do
    --delete files
    delfileson("A/DCIM/101CANON")
    sleep(1000)


    -- set props
    set_prop(16,2) --flash off
    set_prop(63,2) --AF Light off
    set_prop(9,0) --metering eval

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

    print("exp: "..print_Tv())
    if get_tv96()<290
    then
        set_tv96_direct(exptime*32) -- exposure time
        wtime = 5
    else
        wtime =  37
    end
   

    set_prop(236,-32765)
    print("  "..get_prop(12))
    set_prop(12,1)
    print("  "..get_prop(12))
    sleep(5000)
    --set_prop(11,4) -- manual focus??
    --set_aflock(1) -- sperre AF   
    print("before:",get_focus())
    x=65000
    set_focus(x)
    print("after:",get_focus())
    sleep(5000)
    set_iso_mode(3) -- ISO200
    set_backlight(0) --display light off
    --set_prop(24,1) --image size


    -- shoot, set exif data and notify pc
    shoot()
    addExif()

    -- wait
    print("waiting"..wtime.."s")
        sleep(wtime*1000)

    -- wait until image is downloaded
    ready = nil
    while ready == nil do
        print("wait for DL...")
        sleep(1000)
        ready = read_usb_msg()
    end
end

print("Und Tschuess")
shut_down()
Erstellt in 0.012 Sekunden, mit GeSHi 1.0.8.9


Grüße,
Marcus
fehlfarbe
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 18
Registriert: 09.01.2012, 21:57
Wohnort: Dresden
Kamera(s): Canon IXUS 60 (CHDK)
Canon EOS 550D (Magic Lantern)

Re: Manueller Fokus schießt Kamera + USB ab

Beitragvon gehtnix » 15.02.2012, 01:15

Hi,

mit LUA habe ich ja noch nicht gearbeitet.

Geht denn da nicht auch set_focus x?

Im Handbuch steht zumindest kein Hinweis das es nicht geht.

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

Re: Manueller Fokus schießt Kamera + USB ab

Beitragvon fe50 » 15.02.2012, 07:44

fehlfarbe hat geschrieben:Nun versuche ich den Fokus auf unendlich zu stellen,
Sowas durch manipulieren von PropCases zu machen ist grundsätzlich eine schlechte Idee...
Idealerweise solltest Du mit einer Tastenemulation arbeiten, also im Script die Tasten simulieren, universelle Scriptbefehle wie das von gehtnix vorgeschlagene set_focus sollten auch gehen.

Dann solltest Du noch testen, ob die Version generell ein Problem mit manueller Fokusierung hat: einfach im CHDK Menü eine Fokusdistanz (SD override) manuell setzen & schauen, was passiert...

Hinweis: Die IXUS60 ist historisch gesehen ein etwas "problematischer" Port, manche Scriptbefehle könnten durchaus Fehler enthalten....
"The grass was greener, The light was brighter"►  ◄fe50 home►  ◄TRAIL-Magazin►  ◄RTFM !
Benutzeravatar
fe50
CHDK-Legende
CHDK-Legende
 
Beiträge: 1105
Registriert: 25.04.2008, 14:28
Wohnort: B'Württemberg
Kamera(s): Ixus50 101b, Ixus860 100c, SX10 101a

Re: Manueller Fokus schießt Kamera + USB ab

Beitragvon fehlfarbe » 15.02.2012, 10:51

Hi,

set_focus scheint leider nicht zu funktionieren. Das überprüfe ich ja mit den Zeilen:

Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
print("before:",get_focus())
    x=65000
    set_focus(x)
    print("after:",get_focus())
Erstellt in 0.002 Sekunden, mit GeSHi 1.0.8.9


wobei sich da die Zahl nicht ändert. Deswegen wollte ich mit set_prop(12, 1) [ Manual Focus (0=Auto, 1=Manual) ] in den manuellen Fokus Modus umschalten und schauen, ob es daran liegt. Die Einstellung per CHDK Menü zu ändern werde ich mal probieren, wenn ich wieder zu Hause bin :)

Grüße,
Marcus
fehlfarbe
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 18
Registriert: 09.01.2012, 21:57
Wohnort: Dresden
Kamera(s): Canon IXUS 60 (CHDK)
Canon EOS 550D (Magic Lantern)

Re: Manueller Fokus schießt Kamera + USB ab

Beitragvon gehtnix » 15.02.2012, 11:20

Hi,

probiere doch mal Susi2Stack aus. Das läuft auf einer IXUS.
Ist schon klar, der "Fokus" geht hier in die falsche Richtung.
Läuft aber dieses Skript, dann sollte der Befehl set_focus aber grundsätzlich gehen.

Anmerkung: "Manueller Fokus schießt Kamera + USB ab".
Sollte es nicht besser "set_focus" schießt... heißen?

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

Re: Manueller Fokus schießt Kamera + USB ab

Beitragvon msl » 15.02.2012, 13:31

Hallo miteinander,

erst mal muss ich gehtnix Recht geben. Die Themen-Überschrift ist schon ein Fehler. Die Ixus60 hat keinen Modus "manueller Fokus". Deswegen ist es auch zwecklos, zu versuchen, über Propertycase 12 in diesen Modus umzuschalten.

Unter Berücksichtigung der Hinweise von fe50 solltest du zuerst testen, ob es überhaupt möglich ist, eine Fokus-Distanz manuell per CHDK-Funktion einzugeben. Wie das geht, kann man im CHDK-Handbuch auf Seite 71 nachlesen.

Wenn das funktioniert, kannst du dich per Skript an das Thema herantasten. Die Fokusdistanz wird in Propertycase 65 abgelegt. Diese Variable sollte aber nur für Kontrollzwecke verwendet werden. Normalerweise kommt get_focus() zur Anwendung.

Wenn set_focus(<Wert>) funktioniert, ist zu beachten, dass eine Kontrollabfrage mit get_focus() nicht immer den genauen eingegebenen Wert zurückgeben wird. Die Kameraoptik springt immer zum nächstmöglichen Punkt. Daraus können sich Differenzen ergeben.

Gruß msl
■ "Hey you, don't tell me there's no hope at all. Together we stand, divided we fall."CHDK inside FAQCHDK-Neuigkeiten auf Twitter
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4464
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Re: Manueller Fokus schießt Kamera + USB ab

Beitragvon fehlfarbe » 18.02.2012, 20:07

Hi gehtnix, msl,

Susi2Stack scheint wunderbar zu funktionieren.

Den Titel habe ich so gewählt, da nicht set_focus() die Kamera abstürzen lässt, sondern der Wechsel in den manuellen Fokus Mode, den ich halt testen wollte, weil bei meinem Lua-Skript das set_focus() nichts zu bewirken scheint.
Da werde ich das Propcase 12 mal in Ruhe lassen, wenn das bei der IXUS60 eh nicht geht.


Ein kurzes Lua-Testkript hier funktioniert komischerweise auch nicht:
Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
--[[
@title Fokustest
--]]


print("before:",get_focus())
x=20000
set_focus(x)
print("after:",get_focus())
x=65000
set_focus(x)
print("after2:",get_focus())
sleep(5000)
Erstellt in 0.003 Sekunden, mit GeSHi 1.0.8.9


Der Fokuswert bleibt dabei immer gleich?!

Grüße,
Marcus
fehlfarbe
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 18
Registriert: 09.01.2012, 21:57
Wohnort: Dresden
Kamera(s): Canon IXUS 60 (CHDK)
Canon EOS 550D (Magic Lantern)

Re: Manueller Fokus schießt Kamera + USB ab

Beitragvon fehlfarbe » 21.02.2012, 15:18

Hallo Leute,

da set_focus() wohl irgendwie nicht funktionieren will, wollte ich jetzt probieren von der Automatik in den M-Modus zu wechseln und dort auf unendlich zu stellen. Das geht ja auch einfach über das Standard Menü.
Wenn ich allerdings versuche mich mit dem click("button") Befehl da durchzuhangeln, will er den manuellen Modus nicht akzeptieren. Ich kann ihn zwar auswählen und dann SET drücken, aber dabei geht das Menü wieder zu und die Kamera bleibt trotzdem im Automatik Modus, wo ich leider nicht auf unendlich stellen kann?!

Ist das per Lua Script irgendwie möglich von der Automatik in den M-Modus zu wechseln?

Grüße,
Marcus
fehlfarbe
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 18
Registriert: 09.01.2012, 21:57
Wohnort: Dresden
Kamera(s): Canon IXUS 60 (CHDK)
Canon EOS 550D (Magic Lantern)

Re: Manueller Fokus schießt Kamera + USB ab

Beitragvon msl » 21.02.2012, 20:47

Hallo,

Du hast aber schon in der Dokumentation nachgelesen? Sind dir da nicht der Befehle set_capture_mode() und set_capture_mode_canon() aufgefallen?

Es gibt zwei Möglichkeiten, bei deiner Ixus in den M-Modus umzuschalten. Dazu sollte man dann noch wissen, dass unter CHDK der Ixus-M-Modus als P-Modus bezeichnet wird, weil es nicht wirklich ein manueller, eher ein Programm-Modus ist.

Somit ergeben sich folgende Argumente für die Befehle:

Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
-- CHDK code
set_capture_mode(2)

-- Canon code
set_capture_mode_canon(32772)
Erstellt in 0.002 Sekunden, mit GeSHi 1.0.8.9


Komfortabel und Kamera-unabhängig kann man es mit Hilfe der Bibliotheken CHDK-Unterordner LUALIB gestalten:

Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
capmode=require("capmode")
if capmode.valid("P") then capmode.set("P") end
Erstellt in 0.002 Sekunden, mit GeSHi 1.0.8.9


Zu set_focus():

Wenn das Skript Susi2Stack funktioniert, dann funktioniert auch der Skriptbefehl set_focus(). Wenn ich richtig informiert bin, sollte der Befehl möglichst im Ixus-M-Modus verwendet werden. Hast du schon mal getestet, ob du den Fokus setzen kannst, wenn man zuvor set_aflock(1) setzt?

Gruß msl
■ "Hey you, don't tell me there's no hope at all. Together we stand, divided we fall."CHDK inside FAQCHDK-Neuigkeiten auf Twitter
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4464
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Re: Manueller Fokus schießt Kamera + USB ab

Beitragvon fehlfarbe » 23.02.2012, 21:13

Hi msl,

ich bin wirklich ein Vollhorst, ich hab die ganze Zeit nur im Wiki Handbuch nachgesehen und bin jetzt erst auf die richtige PDF gestoßen. Kein Wunder, dass ich keine Seite 71 finden konnte :roll:

Der Wechsel in den P-Modus funktioniert jetzt einwandfrei und auch das Umstellen auf unendlich über die Pfeiltasten scheint zu funktionieren.
Set_focus() geht aber trotz P-Modus und aflock(1) irgendwie nicht. Da der native unendlich Fokus jetzt passt, brauche ich das aber eh nicht mehr.

Danke für die Hilfe! Ich denke ich werde jetzt erst mal das Handbuch durchstöbern :)

Grüße,
Marcus
fehlfarbe
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 18
Registriert: 09.01.2012, 21:57
Wohnort: Dresden
Kamera(s): Canon IXUS 60 (CHDK)
Canon EOS 550D (Magic Lantern)


Zurück zu Probleme

Wer ist online?

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