CHDK inside

  • Schrift vergrößern
  • Standard-Schriftgröße
  • Schriftgröße verkleinern


Hier geht es rund um das Thema digitale Kampaktkameras  der PowerShot- und Ixus-Serie der Firma Canon® und CHDK als alternativer Firmware-Aufsatz für diese Kameras.

Diese Seiten sollen als Ergänzung zu bestehenden CHDK-Projekten betrachtet werden. CHDK ist sehr umfangreich. Da besteht die Gefahr, dass das eine odere andere Detail an Information verloren geht. Manche Dinge lassen sich in einem Forum auch nicht so gut darstellen.

Und wer sich jetzt fragt, wo bekomme ich denn nun dieses CHDK her? Der sollte sich unbedingt im deutschen CHDK-Forum im Downloadbereich umschauen.

Viel Spaß beim Stöbern.

msl

 


 

Bewegungserkennung

Drucken PDF

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...
 

wissenschaftliche Funktionen

Drucken PDF

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...
 

Zeitzonen auslesen

Drucken PDF

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...
 

Neuer Lua-Befehl get_image_dir()

Drucken PDF

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())

 

 

 

chdkptp für alle

Drucken PDF

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.

screen_ptp_live_sx220

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...
 

CHDK ist tot, es lebe das neue CHDK

Drucken PDF

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...
 

Das Shooting im Skript

Drucken PDF

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 1
1
shoot()
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...
 

CHDK und Revisionen

Drucken PDF

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.

 

Lua-Funktionen zum Zeichnen

Drucken PDF

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...
 

Av_Plus - ein Skript zur Verbesserung des Av-Modus

Drucken PDF

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...
 


Seite 1 von 4

Anmeldung

Wer ist online?

Wir haben 2 Gäste online