Forum: Mikrocontroller und Digitale Elektronik Speedlight - Externen Blitz über Infrarot auslösen


von Martin (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ein Freund besitzt eine Canon EOS 7D Kamera. Nun möchte er einen alten 
Blitz als externen Blitz verwenden. Die Kamera verfügt über eine 
Speedlight Funktion, sprich beim fotografieren wird ein Infrarot Signal 
beim blitzen gesendet. Leider ist über das E-TTL 2 Protokoll sehr wenig 
veröffentlicht. Daher habe ich das IR Signal über einen TSOP 1738 
Empfänger mit dem Oszilloskop gemessen (siehe Anhang).

Hinweis: Ich möchte das Signal nicht auf jedes Bit sondern nur auf 
Signal vorhanden oder nicht vorhanden überprüfen, Blitz auslösen oder 
nicht.

Umsetzung
----------
Hardware: Ich möchte einen Atmega8 verwenden.

Software: Variante 1:
- erste fallende Flanke löst einen Interrupt aus
- in der ISR wird der externe Interrupt ausgeschaltet und ein Timer 
gestartet
- nach 15 ms wird der externe Interrupt wieder freigegeben und für 4ms 
auf fallende Flanken kontrolliert , wenn eine Flanke kommt -> Blitz 
auslösen.

Das Problem ist nur, wenn ein Störimpuls kommt ist der Mikrocontroller 
für 15 ms blockiert und kann kein Signal mehr verarbeiten.

          Variante 2:
- mit einem festen Takt das Signal nach der ersten fallenden Flanke 
abtasten. Wenn während der 15ms Pause mehr als 5 fallende Flanken sind 
-> kein Signal

Wie würdet ihr das Signal auswerten wo seht ihr Probleme? Für Tipps wäre 
ich euch sehr dankbar.

von Olli (Gast)


Lesenswert?

Sind die hier dargestellten 4 Pulse auf der rechten Seite  auch wirklich 
nur 4 Pulse oder steckt da eventuell mehr dahinter? Zeig mal ne höhere 
zeitliche Auflösung.

Gruß Olli

von g457 (Gast)


Lesenswert?

Blitzt^WSteuert die 7D wirklich mit IR? Bei den Vorgängern lief das über 
den ganz normalen(tm) Blitz/Reflektor.

Aber unabhängig davon: Ein einfaches Zählen der Impulse wie in [1] 
funktioniert (zumindest mit den Vorgängermodellen) einwandfrei. Einzig 
wenn jemand anders noch da ist er auch rumplitzt dann gibts unerwünschte 
Auslösungen.

HTH

[1] http://www.heise.de/ct/artikel/Auf-den-zweiten-Blitz-289892.html

von Martin (Gast)


Angehängte Dateien:

Lesenswert?

Danke für eure schnellen Antworten.

Ich habe das Signal nocheinmal mit einer höheren Auflösung gemessen 
(siehe Anhang).

Hinweise: "gesamt" zeigt das komplette Signal von einem Blitz bei 
10ms/Div

Die Bilder 1 bis 4 sind als zusammenhängend zu betrachten, allerdings 
fehlt zwischen 2 und 3 ein Bild da darauf kein Flankenwechsel ist, 
sprich zwischen 2 und 3 sind noch 10 ms Pause dazwischen.

Da die erste low Flanke die kürzeste Einheit darstellt (siehe Bild "ein 
bit") denke ich, dass 100us einem Bit entsprechen.

Was mich ein wenig verwundert, ist die Tatsache, dass mehrere Messungen 
zum Teil unterschiedliche Signale zur Folge hatten. Was immer gleich 
blieb war Bild 1 und 2. Danach kam es vor, dass der 3. Block varrierte. 
Daher denke ich die Auswertung sollte sinnvollerweise auf Bild 1 und 2 
beschränkt werden.

@g457: Leider sieht man die Schaltung im C't Artikel nicht. Klingt aber 
nach einem analogen Aufbau. Ich möchte gerne mit dem Atmega8 einwenig 
"spielen". Es müsste sich um ein IR Signal handeln.Siehe Link. 
(http://www.tauchen-blog.de/fotografie/e-ttl-ii-blitzkabelverlaengerung-canon-oc-e3-entfesselt-blitzen/)

Gedanke: Wenn ich einen Timer mit der Hälfte eines Bits (50us) takte, 
dann könnte ich das Signal mit einem hinterlegten Vergleichswert prüfen.
Legt man den Vergleichswert in das EPROM und nutzt einen Zeiger um die 
Werte aufzurufen? Muss gestehen, in der Richtung muss ich mich erst noch 
schlau machen.

Danke für eure Hilfe.

von Martin (Gast)


Lesenswert?

Nachtrag: Bild 1 bis 4 sind mit 1ms/Div aufgelöst.

von g457 (Gast)


Lesenswert?

> Leider sieht man die Schaltung im C't Artikel nicht.

ja, gut versteckt - man muss sich auf den erwähnten 'Projektseiten' 
durchclickern [1] :-)

> Klingt aber nach einem analogen Aufbau.

Digitaler 2-Bit-Zähler mit 2 Flop-Flips mit Reset.

Zu den Bildern: Das könnten die Gruppen sein, die da adressiert werden. 
Früher(tm) sah das etwa so aus [2].

HTH

[1] http://www.heise.de/ct/projekte/Tochterblitz-284165.html
[2] http://130.149.162.240:8080/dforum/micha67/ettl/

von g457 (Gast)


Lesenswert?

> Zu den Bildern: Das könnten die Gruppen sein, die da adressiert werden.
..bzw. die Übermittlung der gewünschten Leistung.
</Ingrid>

von Volker S. (volkerschulz)


Lesenswert?

g457 schrieb:
>> Zu den Bildern: Das könnten die Gruppen sein, die da adressiert werden.
> ..bzw. die Übermittlung der gewünschten Leistung.

...oder sogar noch mehr. SONY uebermittelt meines Wissens nach Blende, 
Verschlusszeit, Brennweite und Blitzmodus.

Volker

von Timmo H. (masterfx)


Lesenswert?

Vielleicht hilfts http://130.149.162.240:8080/dforum/micha67/ettl/

Ups wurde ja schon gepostet.

von Martin (Gast)


Lesenswert?

Volker Schulz schrieb:
> ...oder sogar noch mehr. SONY uebermittelt meines Wissens nach Blende,
> Verschlusszeit, Brennweite und Blitzmodus.

Das ist schon beeindruckend welche Informationsmengen für einen Blitz 
Übertragen werden. Dachte bislang immer ein Blitz blitzt halt und das 
wars :)

Ich möchte die Umsetzung nach wie vor mit einem Atmega8 machen und nur 
das Signal auf vorhanden und nicht auf Verschlusszeit usw. überprüfen.

Allerdings bereitet mir die softwaremäßige Umsetung noch Kopfzerbrechen. 
Ich habe in der Richtung leider noch nicht so viel Erfahrung was der 
einfachste Weg ist.

Für Ansätze wäre ich dankbar.

von Timmo H. (masterfx)


Lesenswert?

Wie sieht deine Schaltung aus? Photodiode an ADC?
Ich würde es vermutlich mit dem Komparator machen und dann die Zeiten 
und Anzahl der fallenden Flanken messen.

von Martin (Gast)


Lesenswert?

Ich dachte er an einen TSOP 1738 (die Messungen habe ich am Ausgang 
gemacht) an einen Atmega8 Eingang mit ext Interrupt, z.B. an PD2.

Welche Vorteile bietet ein Komparator?

von Timmo H. (masterfx)


Lesenswert?

Martin schrieb:
> Ich dachte er an einen TSOP 1738 (die Messungen habe ich am Ausgang
> gemacht) an einen Atmega8 Eingang mit ext Interrupt, z.B. an PD2.
Das wird nicht funzen, da der TSOP 1738 ein mit 38 kHz moduliertes 
IR-Signal erwartet. Du hast aber IMHO kein mit 38 kHz moduliertes 
IR-Signal.

> Welche Vorteile bietet ein Komparator?
Der Komparator ist für analoge Vergleiche gedacht. Wenn du eine 
Schaltung machst die z.B. über einen Schmitt-Trigger ein TTL-Signal aus 
deinem "Blitzsignal" macht dann ist es natürlich einfacher mit einem 
Pin-Change Interrupt zu arbeiten.

von Martin (Gast)


Lesenswert?

Timmo H. schrieb:
> Das wird nicht funzen, da der TSOP 1738 ein mit 38 kHz moduliertes
> IR-Signal erwartet. Du hast aber IMHO kein mit 38 kHz moduliertes
> IR-Signal.

Blöde Frage, aber wenn ich doch keinen Wert auf das eigentliche 
Datensignal lege, sondern nur erkennen will ob ein Sagnal kommt, dann 
kann ich doch den TSOP 1738 nehmen. Die Messungen zeigen ja einen "Blitz 
Ausschlag". Oder liege ich da falsch?

Timmo H. schrieb:
> Der Komparator ist für analoge Vergleiche gedacht. Wenn du eine
> Schaltung machst die z.B. über einen Schmitt-Trigger ein TTL-Signal aus
> deinem "Blitzsignal" macht dann ist es natürlich einfacher mit einem
> Pin-Change Interrupt zu arbeiten.

Okay, einfacher ist es mit TTL Pegel. Darum werd ich bei dem Projekt 
erstmal dem Komparator aus dem Weg gehen :)

von Volker S. (volkerschulz)


Lesenswert?

Martin schrieb:
> Volker Schulz schrieb:
>> ...oder sogar noch mehr. SONY uebermittelt meines Wissens nach Blende,
>> Verschlusszeit, Brennweite und Blitzmodus.
>
> Das ist schon beeindruckend welche Informationsmengen für einen Blitz
> Übertragen werden. Dachte bislang immer ein Blitz blitzt halt und das
> wars :)

Schon seit den 60er Jahren gibt es Blitzgeraete, die die Blitzdauer 
automatisch (nach [manuell] eingestellter Blende und 
Filmempfindlichkeit) begrenzen... Quelle: 
http://de.wikipedia.org/wiki/Computerblitz

Heute gibt es ja noch so Spaesschen wie Zoom-Reflektoren.

Wenn Du aber gar keinen Wert auf die ganze Datenuebertragung legst, 
warum benutzt Du dann nicht einfach den schwachen internen Blitz um den 
anderen auszuloesen?

Volker

von Thomas (kosmos)


Lesenswert?


von Martin (Gast)


Lesenswert?

Entschuldigung für die lange Abstinenz.

Danke für die lesenswerten Links.

Ich habe die Schaltung mal auf dem Steckbrett zusammengesteckt. Sie 
besteht aus dem TSOP 1738 als Empfänger und ist am Atmega8 an PORT PD2 
(INT0) angeschlossen. Der externe Blitz wird über einen Optokoppler 
CNY17-4 am Atmega8 PORT PB0 angesteuert. Da der Strom nicht ausreichend 
für die Optokopplerdiode war hab ich noch einen Transistor BC547 als 
Treiber an PB0 vorgeschalten.

Im Programm wird einfach bei einer fallenden Flanke INT0 ausgelöst und 
PB0 kurz auf high geschalten. Funktioniert, aber der Atmega8 arbeitet im 
Moment eigentlich nur als Inverter zwischen der fallenden Flanke vom 
Empfänger und einer steigenden Flanke am Blitz ;)

Da der Blitz bei jeder Störung z.B. von der Leuchtstofflampe ausgelöst 
wird, bin ich wieder bei meinem ursprünglichen Problem gelandet - die 
Auswertung des IR Signals. Wie gesagt, es kommt nur darauf an das Signal 
als solches zu erkennen.

Ich könnte doch bei der ersten fallenden Flanke den Interrupt für 14ms 
ausschalten (siehe Bild 1 und 2) und ab da die Impulse für 4ms zählen. 
Sind die gezählten Impulse größer 3 -> Signal OK.

Ist das eine praktikable Lösung? Das Problem, Signale auszuwerten hat 
man doch eigentlich überall. Wie wird es da softwaremäßig gemacht?

Danke für eure Hilfe. Gruß Martin

von Martin (Gast)


Lesenswert?

Hat noch jemand eine Idee?

von Volker S. (volkerschulz)


Lesenswert?

Sind die Scope-Shots alle mit dem TSOP gemacht? Interessant waeren dann 
eventuell noch ein paar Versuche mit einer IR-Empfangsdiode um das 
tatsaechliche Signal zu sehen, bevor Du mit der Programmierung 
loslegst...

Volker

von Martin (Gast)


Lesenswert?

Volker Schulz schrieb:
> Sind die Scope-Shots alle mit dem TSOP gemacht?

Ja, alle mit dem TSOP.

Volker Schulz schrieb:
> Interessant waeren dann
> eventuell noch ein paar Versuche mit einer IR-Empfangsdiode um das
> tatsaechliche Signal zu sehen, bevor Du mit der Programmierung
> loslegst...

Ist das wirklich nötig? Zum Auswerten wird das Signal bestimmt nichts 
helfen. Würde lieber gleich mit der Programmierung loslegen. Nur der 
Ansatz ist noch fraglich.

von Volker S. (volkerschulz)


Lesenswert?

Martin schrieb:
> [...]
> Ist das wirklich nötig? Zum Auswerten wird das Signal bestimmt nichts
> helfen.

Zwingen koennen wir Dich natuerlich nicht, aber das tatsaechliche 
Signal zu kennen duerfte helfen, die bestmoegliche Auswerte-Logik zu 
bestimmen und Fallstricke vor der eigentlichen Programmierarbeit zu 
erkennen. Evtl. braucht es zur zuverlaessigen Erkennung ja auch etwas 
anderes als einen 36kHz TSOP.

> Würde lieber gleich mit der Programmierung loslegen. Nur der
> Ansatz ist noch fraglich.

Dann hilft im Zweifel nur das "Rumprobieren" mit verschiedenen 
Ansaetzen. Und viele, viele Tests um das beste Verhaeltnis 
falsch-positiver und falsch-negativer Ausloesung zu finden.

Hast Du Dir als ersten Ansatz mal die Auswerte-Logiken von 
Fernbedienungs-IR-Codes angeschaut?

Volker

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.