CHDK inside

  • Schrift vergrößern
  • Standard-Schriftgröße
  • Schriftgröße verkleinern
Start CHDK inside Lua Fotos per Skript auf den Rechner übertragen


Fotos per Skript auf den Rechner übertragen

Drucken PDF

Ist es möglich, per Skript Fotos von der Kamera auf den Rechner zu übertragen?

Ja, das ist mit einigen Voraussetzungen möglich. Wir benötigen auf dem PC ein Programm, dass automatisch bei Herstellung der USB-Verbindung die aktuellen Fotos von der Speicherkarte der Kamera herunterladen kann. Diese Aufgabe erledigt z.B. das der Kamera beiliegende Programm Zoombrowser von Canon mit seinen Komponenten. Wer dieses Programm nicht mag, kann auch die kostenfreie Version von CAM2PC verwenden. Mit diesem Programm kann man ebenfalls den automatischen Upload organisieren.

Für die CHDK-fähige Kamera benötigen wir ein Skript, dass im Autostart-Modus gestartet wird. Dieser Modus wird im CHDK-Untermenü "Skript-Einstellungen" aktiviert. Außerdem sollte die Kamera per USB mit dem Rechner verbunden sein.

Da ein CHDK-Skript in einem eigenen Task läuft, funktioniert es unabhängig vom Kamera-Modus. D.h., ein Skript funktioniert auch während der Bildübertragung im PTP-Modus. Diesen Umstand nutzen wir aus. Wir realisieren im Skript eine Modus-Umschaltung per Aufruf der entsprechenden Kamerafunktion zum Trennen und Herstellen der USB-Verbindung. Diese Verbindung wird sozusagen virtuell ein- und ausgeschaltet.

Das nachfolgende Skript hat die Aufgabe, ein Foto zu erstellen, die USB-Verbindung zu aktivieren, per einstellbare Wartezeit die Bildübertragung zu gewährleisten, die USB-Verbindung wieder zu trennen und die Kamera auszuschalten. Um die Einzelschritte verfolgen zu können, wurde nach jedem Zwischenschritt eine einstellbare Wartezeit eingefügt.

Das Skript wird im Wiedergabe-Modus gestartet und schaltet in den Aufnahme-Modus um. Bitte darauf achten, dass das Objetiv nicht blockiert wird.

USB-Upload per Skript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
--[[
******************************
(c) msl 14/08/2010
run script in autostart mode
******************************
@title USB upload
@param a Upload time
@default a 60000
@param b Delay
@default b 2000
]]
 
-- autostart disconnect USB
post_levent_to_ui("DisconnectUSBCable")
 
print("switch record mode")
sleep(b)
set_record(1)
sleep(b)
print("shoot")
sleep(b)
shoot()
sleep(b)
 
print("switch play mode")
sleep(b)
set_record(0)
sleep(b)
console_redraw()
print("connect USB cable")
sleep(b)
 
-- connect USB
post_levent_to_ui("ConnectUSBCable")
-- delay for picture transfer
sleep(a)
-- disconnect USB
post_levent_to_ui("DisconnectUSBCable")
sleep(b)
 
console_redraw()
print("disconnect USB cable")
print("shutdown cam")
sleep(b)
shut_down()
sleep(3000)

Das nächste Skript arbeitet als Intervall-Skript. Einstellbar sind die Bearbeitszeit für den Bild-Upload, die Intervallzeit, die Anzeigeverzögerung im Skript sowie die Anzahl der Bilder. Nach Erreichen der eigestellten Bildanzahl schaltet die Kamera ab. Die kleinste Intervallzeit beträgt 30 Sekunden.

Intervall-Skript mit USB-Upload
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
--[[
******************************
(c) msl 18/08/2010
******************************
@title Interval USB
@param a upload time [s]
@default a 10
@param b script delay
@default b 1000
@param c interval time [s]
@default c 30
@param d pictures
@default d 5
]]
 
uploadTime = a * 1000
if uploadTime < 10000 then uploadTime = 10000 end
delayTime = b
intervalTime = c
if intervalTime < 30 then intervalTime = 30 end
pictures = d
if pictures < 1 then intervalTime = 1 end
count = 0
time1 = 0
workingTime = uploadTime + (delayTime * 6 / 1000)
if intervalTime <= workingTime then intervalTime = workingTime + 5 end
 
post_levent_to_ui("DisconnectUSBCable")
 
repeat
 
time1= os.time() + intervalTime
print("switch record mode")
set_record(1)
sleep(delayTime)
print("shoot")
shoot()
sleep(delayTime)
print("switch play mode")
set_record(0)
sleep(delayTime)
console_redraw()
print("connect USB cable")
sleep(delayTime)
 
post_levent_to_ui("ConnectUSBCable")
sleep(uploadTime)
post_levent_to_ui("DisconnectUSBCable")
 
sleep(delayTime)
console_redraw()
print("disconnect USB cable")
sleep(delayTime)
count = count + 1
print(count.."/"..pictures)
repeat
sleep(10)
until os.difftime(os.time(),time1) == 0
 
until count == pictures
 
 
print("shutdown cam")
sleep(b)
shut_down()
sleep(3000)
 

Anmeldung

Wer ist online?

Wir haben 40 Gäste online