PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wassertropfenfotos mit Canon Eos 500D



Che Guevara
28.07.2010, 23:51
Hi Leute,

habe seit neuestem eine Canon Eos 500D. Das Teil gefällt mir bis auf eine Sache wirklich sehr gut:
Um ein paar Aufnahmen von einem Wassertropfen (zum Zeitpunkt wenn dieser auf eine Oberfläche auftrifft) zu machen, habe ich mir ein 2m langes 2,5mm Klinckensteckerkabel besorgt und mit meinem Atmega32 ein kleines Programm geschrieben (Bascom mit Inline-Assembler), welches die Kamera auslösen soll, wenn ein Gegenstand (z.B. Wassertropfen, etc.) durch meine selbstgebaute analoge Lichtschranke (also Spannungsteiler mit Photowiederstand und ultrahelle LED), welche vom ADC (Free-Run-Mode) eingelesen wird, fällt.
Mit einer MINIMALEN Verzögerung (im µs-Bereich) erkennt der AVR einen Gegenstand, ALLERDINGS löst die Kamera dann erst viel später aus.
Beispiel: Wenn die Lichtschranke auf einer Treppe befestigt ist, welche sich 2m über dem Boden befindet, wo die Kamera platziert ist, löst der AVR sofort bei detektion eines Objekts durch die Lichtschranke die Kamera aus, welche allerdings dann erst ein Bild macht, wenn der Gegenstand auf dem Boden aufkommt. Weiß grad nicht, wie man da jetzt rechnet, allerdings ist das meiner Meinung nach schon sehr lange!?
Schätzungsweise würde ich von 300ms zwischen Detektion (auslösen der Kamera) und "Schuss" sprechen.
Mir kommt es aber so vor, als ob die Kamera schneller schiesen würde, wenn ich sie ohne Fernauslöser (selbstgebaut) auslöse.

Hier mal der Code (momentan noch nicht sehr schön)


$regfile = "m32def.dat"
$crystal = 16000000
$framesize = 80
$hwstack = 80
$swstack = 80

Admux = &B01100000
Adcsra = &B11100110
Sfior = &B00000000

Ddra.0 = 0
Ddrc.0 = 1
Ddrc.7 = 0
Ddrd.6 = 1
Ddrd.7 = 1

Porta.0 = 1
Portc.0 = 1
Portc.7 = 1
Portd.6 = 1
Portd.7 = 1


Dim Werth As Byte
Dim Fokuscnt As Word
Dim Fokusset As Bit


Enable Interrupts



Again:
in r16, adch
inc r16
ldi r17, 243
cp r16, r17
brlo picture
jmp again
Picture:
cli
sbi portc , 0
sbi portd , 6
sbi portd , 7
Waitms 500
cbi portd , 7
cbi portd , 6
cbi portc , 0
sei
jmp again


End

Portc.0 ist nur eine Led zur Kontrolle.
An Portd.6 ist der Fokus, an Portd.7 der Auslöser "angeschlossen".

Der Wert in R17 (243) ist von mir durch Probieren ermittelt worden, also der "Grundwert" des Spannungsteilers aus Photowiederstand und 3,3k Wiederstand. Das sollte hier allerdings keine Rolle spielen, da die Lichtschranke perfekt auslöst, schon bei kleinsten Objekten, allerdings gibts auch keine "Fehlzündungen" :)

Nun zum Fernauslöser:
Das Kabel mit dem 2,5mm Klinkenstecker, welches in der Kamera eingesteckt wird, habe ich auf der anderen Seite abisoliert und dann die beiden Massen (da es ein Stereo-Kabel ist) verbunden. Diese wiederum dann mit der Masse vom AVR verbunden. Dann sind da noch die anderen 2 Kabel (also die Signale). Eines ist zum Fokusieren und eines zum Auslösen.
Wenn der AVR die Kamera auslöst, wird zuerst fokusiert und unmittelbar danach (im Code in der nächsten Zeile ohne Wait-Funktion) wird ausgelöst.
(Im Prinzip fast wie in der Realität).

Nun endlich meine Frage:
Hat jemand diese Kamera oder kann aus sonstigen Gründen mir erklären, ob und wie ich das Foto früher machen kann (also Zeit zwischen abdrücken und schiessen verkürzen)? Evtl. über irgendwelche Einstellungen, z.B.:
- Pre-shot (falls die Kamera das kann, hab ich aber noch nirgend gelesen)
- Fokus-einstellungen
- Spiegeleinstellungen
- ...

Vielen Dank fürs Lesen und für die Antworten
Gruß
Chris

radbruch
29.07.2010, 00:33
Hallo

Ich bin Laie. Hier wird beschrieben, wie der Spiegel schon vor der Aufnahme ausgeschwenkt und auf die Focusierung beim Auslösen verzichtet wird (Seite 7 der Leseprobe):

http://www.databecker.de/media/prod/docs/sample/442698_sample.pdf
(Aus: Das Profihandbuch zur Canon EOS 500D)

Gruß

mic

Andree-HB
29.07.2010, 08:04
Wenn die Kamera erst noch nach der Lichtschrankenunterbrechung focussieren muss, dann hast Du dort Deine Verzögerung ! Zudem löst man auch nicht dann erst die Kamera aus (weitere Verzögerung). Solche Zeiten muss man verhindern, weil sich hier alles im Milisekundenbereich abspielt.

Ich mache meine Aufnahmen so - dunkler Raum (oder Kasten), einmal mit einem Testobjekt focussieren (oder halt manuell) und dann den Autofocus abschalten. Kamera auslösen, belichten im Bulb-Modus....DANN erst auf einem Event warten und damit einen Blitz zünden !

Heraus kommen dann solche Fotos :
http://www.pixelklecks.de/pictures/flashing_06.jpg

TheDarkRose
29.07.2010, 08:10
@TS
du musst ja bedenken du besitzt eine Spiegelreflexkamera. D.h. zuerst zeigt der Spiegel zum Sucher, und erst beim Abdrücken wird der Spiegel zum Chip geschwenkt. Das braucht seine Zeit. Und wähle eine Funktion ohne Autofocus.

Felix G
29.07.2010, 08:39
Die einfachste Lösung hat Andree-HB schon genannt, die meisten arbeiten nach dieser Methode, da es beim Blitz eben so gut wie keine Verzögerungen gibt.


Wenn du deine Methode aber dennoch weiter verfolgen möchtest, solltest du die Kamera zunächst mal auf manuellen Fokus stellen, und herausfinden ob du den Spiegel irgendwie schon vor der Aufnahme hoch klappen kannst. Und dann solltest du die Verzögerung mal exakt messen (z.B. indem du ein Display fotografierst auf dem du die Millisekunden seit Auslösung ausgibst). Wenn diese Verzögerung sehr konstant ist, müsstest du die Lichtschranke ja nur in einer geeigneten Höhe anbringen. Ist sie es nicht, würde ich diesen Ansatz nicht weiter verfolgen.