Hallo,
im kameraabhängigen CHDK-Quellcode-Teil werden für jede Kamera minimale und maximale Objektdistanzwerte hinterlegt. Standard ist:
min.: 0
max.: 65535
Da sich herausgestellt hat, dass es von Kamera zu Kamera auch andere Grenzwerte geben kann, können diese Werte je nach Kamera angepasst werden. Die abweichenden Werte lassen sich per Skript ermitteln. Bei der S110 sind folgende Werte eingetragen:
min.: 74
max.: 131579 (Bei neueren Kamera sind im Gegensatz zu den Veteranen der CHDK-Geschichte auch Werte jenseits von 65535 möglich.)
D. h., irgendjemand hat bei S110 diese Distanzen erfolgreich setzen können.
Ich würde jetzt als erstes überprüfen, ob man die Distanz auf unendlich setzen kann.
- Code: Alles auswählen
if set_mf(1) == 0 then set_aflock(1) end -- set MF mode (fall back to AFL)
set_focus(-1) -- set focus at infinity
sleep(1000) -- wait a little bit
print(get_focus()) -- check subject distance
set_focus(-1) ist die sichere Methode, um auf unendlich zu setzen. Das ganze könnte man aber auch ohne Skript erreichen, indem man das CHDK-Menü bemüht.
Kamera in den MF-Modus versetzen, CHDK-Menü aufrufen und unter "erweiterte Foto-Funktionen" => "ersetze Fokus" die SET-Taste so lange drückt, bis inf. erscheint. Nach Verlassen des Menüs sollte dann die Statusanzeige "SD inf" ausgeben.
Wenn sich unter diesen Bedingungen Fotos erstellen lassen, die in den Exif-Daten auch eine entsprechende Distanz ausweisen, sollte die Kamera prinzipiell technisch i.O. sein. Kontrolliere auch die native MF-Funktion der Kamera. Kannst du damit Bilder mit unterschiedlicher Distanz erzeugen? Wenn ja, ist die Kamera i.O.
Ansonsten musst du evt. den Kundendienst bemühen.
Die hyperfokale Distanz ist eine rein mathematische Größe, die sich aus Brennweite, Blendenwert und dem Wert für den Zerstreuungskreis errechnet. Befindet sich das errechnete Ergebnis innerhalb der oben genannten min./max. Werte, kann man den Wert auch per set_focus() anwenden.
Zu beachten ist, dass man jeden Wert per set_focus() eingeben kann. Das System wird dann den nächstmöglichen Punkt anwählen, der technisch realisierbar ist, z.B. set_focus(6000) könnte dann bei get_focus() 5890 o.ä. ergeben.
Ãœbrigens werden bei DOFmaster mit der Einstellung S110 ELPH falsche Werte ermittelt.
Gruß msl