Mittwoch, den 20. Februar 2013 um 11:37 Uhr
msl
Einführung
Eines der schönsten CHDK-Features ist die Fähigkeit, Bewegungen zu erkennen, auszuwerten und bei Bedarf auszulösen. Die Bewegungserkennung wird per Skript organsisert. Es gibt vier spezielle Skriptbefehle, die bei geschickter Benutzung viele Möglichkeiten bieten. Besonders beliebte Anwendungen der Bewegungserkennung sind das Einfangen von Gewitterblitzen, Tieren oder einem Feuerwerk.
Die Daten zur Auswertung kommen dabei nicht direkt vom Bildsensor. Das CHDK bedient sich hier dem kleinen Pufferspeicher für das Kameradisplay. Die Reduktion der Auflösung bedeutet aber auch einen Verlust an Details.
Skriptfunktionen
Um die CHDK-Bewegungserkennung zu nutzen, muss ein entsprechendes Skript auf der Kamera verfügbar sein. Zwei einfache Skripte in uBASIC und LUA befinden sich am Ende dieser Seite.
Der uBASIC- und Lua-Hauptbefehl für die Bewegungserkennung md_detect_motion hat 16 Eingabeparameter. Der Einfachheit halber werden diese mit a bis p bezeichnet. Neben diesem Hauptbefehl gibt es noch zwei Analysefunktionen und eine Testfunktion.
Weiterlesen...
Montag, den 28. Januar 2013 um 10:40 Uhr
msl
CHDK, Lua und wissenschaftliche mathematische Funktionen
Dank rudi aus dem deutschen CHDK-Forum ist es nun auch in CHDK-Lua-Skripten möglich, wissenschaftliche mathematische Funktionen zu verwenden, obwohl man in CHDK-Skripten nur Ganzzahlen ( Integer) verarbeiten kann.
Insbesondere die Integration der Winkelfunktionen stellt ein großes Problem dar. Hier wurde der CORDIC-Algorithmus verwendet. Andere Funktionen basieren auf der C-Bibliothek für mathematische Funktionen.
Die neue Lua-Bibliothek hat den Namen imath bekommen.
Alle Berechnungen erfolgen mit um 10^3 erweiterten Werten, welche damit drei Nachkommastellen repräsentieren. Intern arbeitet die Bibliothek mit vier Nachkommastellen. Weiterhin wurde die übliche Winkelangabe im Bogenmaß durch das Gradmaß ersetzt, was die Berechnung um mehr als eine Nachkommastelle verbessert. Der Genauigkeit wirken die üblichen Probleme mit der Umrechnung zwischen Dezimal- und Dualsystem entgegen.
Weiterlesen...
Freitag, den 28. Dezember 2012 um 14:54 Uhr
msl
Wie lässt sich die eingestellte Zeitzone auslesen?
Im Zusammenhang mit Berechnungen rund um den Sonnenstand spielt die Zeitzone eine wichtige Rolle. Da diese auch bei einer ganzen Reihe von Kameras einstellbar ist, stellt sich die Frage, ob man diese Daten auslesen und nutzen kann. Recherchen ergaben, dass diese Daten im Parameterspeicher abgelegt werden. Scheinbar erfolgt dies einheitlich für alle Kameras, die über diese Funktion verfügen, im Parameter 20.
Weiterlesen...
Montag, den 22. Oktober 2012 um 10:25 Uhr
msl
Ein wichtiger neuer Lua-Befehl
Mit Revision 2225 wurde ein sehr wichtiger neuer Lua-Befehl eingeführt, mit dem es nun relativ einfach ist, den Pfad für das zuletzt erstellte Bild festzustellen.
Die bisherigen Methoden, den Pfad für das letzte Bild zu ermitteln, waren recht umständlich. Über den Befehl os.listdir(<Pfad>) hat man den gesamten Inhalt der Verzeichnisstruktur und Dateien in Tabellen eingelesen. Diese Tabellen wurden sortiert, um letztendlich die letzte Datei zu ermitteln.
Insbesondere, wenn sich schon viele Bilddateien auf der SD-Karte befinden hat die beschriebene Methode so manche Kamera in die Knie gezwungen, weil nicht genügend Arbeitsspeicher für die umfangreichen Tabellen verfügbar war. Damit ist nun endlich Schluss.
Mit dem Befehl get_image_dir() erhält man den Pfad des Ordners, in dem sich das zuletzt erstellte Bild befindet. Nun braucht man nur noch per get_exp_count() die Nummer des Letzten JPG-Bildes zu ermitteln. Dann kann man wie folgt den vollständigen Pfad definieren:
Pfad für zuletzt erstellte JPG-Datei
string.format('%s/IMG_%04d.JPG',get_image_dir(),get_exp_count())
Montag, den 02. Juli 2012 um 10:10 Uhr
msl
neuer PTP-Klient mit Live-Bildübertragung für alle
Seit einiger Zeit arbeitet reyalp aus dem internationalen CHDK-Forum an einem plattformübergreifenden PTP-Klienten, der u.a. auch die Live-Bild-Übertragung ermöglicht.

Die Entwicklungsarbeiten sind mittlerweile so weit fortgeschritten, dass dieses Angebot für die meisten CHDK-unterstützten Kameras zur Verfügung steht. Das Klientprogramm ist als grafische Benutzeroberfläche und als Kommandozeileninterpreter für Windows und Linux erhältlich.
Aktuell gibt es auch einen Linux-Kommandozeileninterpreter für Raspberry PI.
Welche Voraussetzung sind notwendig, um diese Technik zu nutzen?
Weiterlesen...
Mittwoch, den 21. März 2012 um 13:21 Uhr
msl
Das modulare CHDK
Seit einer Zeit besteht die Möglichkeit, zwei unterschiedliche Versionen von CHDK zu benutzen. Wir sprechen dabei von der einfachen und von der modularen CHDK-Version. Vergleicht man beide Versionen, wird man auf den ersten Blick kaum Unterschiede erkennen.
Die einfache CHDK-Version bleibt vorläufig die Version, die in erster Linie benutzt werden kann, wenn auf Stabilität Wert gelegt wird. In dieser Version werden keine Neuerungen mehr eingeführt. Updates dienen ausschließlich der Stabilität der Funktionen.
Die neue modulare CHDK-Version ist auch gleichzeitig die Entwicklerversion von CHDK. Alle Experimentierfreudigen sind bei dieser Version gut aufgehoben. Hier steht dann auch CHDK für Kameras zur Verfügung, deren Portierung sich in einem sehr frühen Stadium befindet.
Was ist nun aber das Neue bei der modularen CHDK-Version?
Weiterlesen...
Montag, den 09. Januar 2012 um 12:40 Uhr
msl
Alles rund um das Shooting im Skript
Das Shooting im Skript ist sicherlich die wichtigste Skriptanwendung. Dabei sind einige Dinge zu beachten.
Es gibt mehrere Methoden, per Skript eine Auslösung zu erzeugen.
| Methode 2 |
1
|
click("shoot_full")
|
| Methode 3 |
1
2
3
4
5
6
|
press "shoot_half"
sleep 1000
press "shoot_full"
release "shoot_full"
release "shoot_half"
sleep 1000
|
| Methode 4 |
1
2
3
4
5
6
7
|
press("shoot_half")
repeat
until get_shooting() == true
press("shoot_full")
release("shoot_full")
release("shoot_half")
repeat
|
| Methode 5 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
press("shoot_half")
repeat
until get_shooting() == true
for i=1 , 10 do
click("shoot_full_only") -- Befehl nur in CHDK-DE verfügbar
sleep(2000)
end
release("shoot_half")
repeat
until get_shooting() ~= true
|
Weiterlesen...
Sonntag, den 08. Januar 2012 um 13:03 Uhr
msl
Welche Bedeutung haben die Revisionsnummern unter CHDK?
CHDK wird ständig weiterentwickelt. Laufend kommen neue Kameras und Funktionen hinzu. Da die Entwickler nur mit ihren eigenen Kameras testen können, ist man darauf angewiesen, dass der normale Anwender auch gleichzeitig Tester ist.
CHDK besitzt ein automatisches System zur Generierung der Binärdateien. Wir sprechen auch vom Autobuild. Bei jeder Änderung, die in den offiziellen Quellcode eingefügt wird, wird auch automatisch eine neue CHDK-Version für den Anwender erstellt.
Da bei diesen Änderungen auch sehr häufig Fehler korrigiert werden, sollte der Anwender möglichst immer die neueste Version verwenden. Das sichert einen störungsfreien betrieb von CHDK.
Im Downloadbereich ist immer die aktuelle Version zu finden. Zu erkennen sind unterschiedliche CHDK-Versionen in erster Linie an ihrer Revisionsnummer. Diese Nummer ist wichtigster Indikator zur Aktualität der verwendeten Version.
Sonntag, den 08. Januar 2012 um 11:26 Uhr
msl
Lua-Funktionen zum Zeichnen
Seit einiger Zeit besteht die Möglichkeit, mit speziellen Lua-Befehlen außerhalb der Skriptkonsole zu zeichnen und Texte darzustellen. Damit ergeben sich völlig neue Skript-Funktionen.
Es stehen die üblichen Funktionen wie Punkt, Linie, Rechteck, Ellipse und Text zur Verfügung. Diese Elemente lassen sich mit unterschiedlichen Farben darstellen. Mit etwas Geschick kann man Informationen übersichtlicher und platzsparender als mit der Skript-Konsole darstellen.
Allerdings sollte bei der Anwendung auch beachtet werden, dass die Zeichen-Funktionen so organisiert werden müssen, dass sie nicht von anderen grafischen Elementen auf dem überschrieben werden. Man muss also dafür sorgen, dass die Skript-Zeichen-Funktionen immer erst dann zur Anwendung kommen, wenn alle anderen Darstellungen vollständig abgeschlossen sind.
Weiterlesen...
Freitag, den 06. Januar 2012 um 12:08 Uhr
msl
Av_Plus - ein Skript zur Verbesserung des Av-Modus
Es passiert öfters, dass man bei kritischen Lichtverhältnissen nicht die Ergebnisse erzielt, die gewollt sind. Die Kamera signalisiert, dass die fototechnischen Werte nicht in Ordnung sind. Mit aller Macht und Gewalt versucht die Kamera, die Belichtungszeit auf eine Sekunde zu begrenzen. Wir wollen aber länger belichten!
Hier schafft das folgende Skript Abhilfe - Av_Plus!
Download
Das Skript beruht auf vielen mathematischen Berechnungen. Und da gibt es unter CHDK die Einschränkung, dass wir nur mit Ganzzahlen und nicht wie hier eigentlich erforderlich mit Dezimalzahlen die Berechnungen ausführen müssen. Das betrifft vor allem die Berechnung der hyperfokalen Distanz. Dadurch kommt es teilweise zu leichten Abweichungen.
Außerdem muss immer wieder durch Messung abgeglichen werden, weil erforderliche Werte nicht automatisch aktualisiert werden.
Das alles braucht auch Zeit. Da wir aber ein Skript haben wollen, was u.a. als Hauptaufgabe die Überwindung der Ein-Sekunden-Grenze beinhalten soll, ist Geschwindigkeit nicht das wichtigste Kriterium (meine Meinung).
Das Skript ist nur mit Kameras benutzbar, die über manuellen Fokus und Irisblende verfügen!
Weiterlesen...
|
|