Kopter-Kameraauslöser
(fertiggestellt Frühjahr 2012)
Nachdem ich unbedingt die Kamerahalterung für meinen Quadrokopter kaufen und zusammenleimen musste, blieb eine Frage offen: Wie löse ich die daran hängende Kamera ordentlich aus. Meine alte und schon zu einem leichten Schaden gekommene (siehe Bilder Motorreparatur) erste Digitalkamera (ein echtes Eisenschwein) sollte die Fotos schießen. Leider habe ich diese Kamera, bei einem Versuch die Tasten über Drähte rauszuführen und mittels eines Multitasters über einen Servokanal zu schalten, in die ewigen Jagdgründe geschickt (elektronisch, wahrscheinlich sogar elektrisch). Somit blieb das Multitaster-Projekt bis auf weiteres in der Schublade, vielleicht kommt das ja noch einmal (auch hierher).
Der zweite Anlauf war dann mit einer (möglichst günstigen) neuen Kamera, weswegen nicht-invasive Fernauslösemethoden gefragt waren. Nach wenig recherchieren gab es nur noch eine Alternative beim Hersteller: Canon. Warum? Canon-Kameras können temporär von der SD-Karte eine alternativen Firmware (CHDK) booten. Diese kann z.B. TTL-Signale am USB-Anschluss per Script auswerten.
Anforderungen und Randbedinungen
Anforderungen:
- Auslösung verschiedener Funktionen über einen Servokanal
- Auslösung über die Waypoint-Detection am Quadrokopter
Randbedinungen:
- Beide Schaltausgänge behalten ihre Funktionalität (Positionslichter an den Auslegern 2-4 blinken, LEDs an Ausleger 1 bleiben schaltbar)
- WP-Event wird an Ausleger 1 angezeigt (verlischt bei Trigger)
- ein Kanal, ein Mischer, ein Poti und ein Taster in der Funke sind noch frei
Meine Voraussetzungen
- L4-ME mit 4-fach BL-Verteilerplatine
- MK HiSight II SE Nick+Roll
- CHDK-fähige Kompaktkamera (Canon Ixus 220 HS)
Funktionsweise
Auf der Funkfernbedienung gibt es ein Poti, mit dem die Funktion eingestellt wird und einen Taster, mit dem die Funktion ausgelöst wird. Bis zu 6 Funktionen sind sinnvoll einstellbar. Der Taster deaktiviert einen Mischer, der sonst den Wert des Potis in jeder Stellung auf 0 zieht. Dieser "Impuls" wird an den Empfänger am Kopter übertragen. Der Kanal wird nicht in der Flightcontrol ausgewertet, sondern parallel zum Summensignal am Servoausgang des Empfängers abgegriffen. Er wandert von dort in einen Attiny25 und dieser sendet die Befehle an die Kamera. Ein Schaltausgang der Flightcontrol ist ebenfalls an einem Eingang des Attiny25 angeschlossen und sendet den Waypoint-Event.
Hardware
Der Kamerahalter soll demontierbar sein und deswegen sind alle Verbindungen steckbar ausgeführt: (Nick & Roll-Servo, Kamera-Servo-Kanal, WP-Event-Leitung.
Material:
- Atmel Attiny25
- 2 SMD-Widerstände 1,6 kOhm
- 2 Low Power SMD-LED (z.B. gelb und grün)
- 1 Mini-USB-Stecker
- 1 Servostecker
- 2 Pole einer IC-Sockelleiste
- wenig Draht
- Litze
- weiter, durchsichtiger Schrumpfschlauch
Bilddokumentation
Bild 1: Eingeschrumpfter Tiny mit LEDs (kann wie er ist zum programmieren befreit und wieder auf ein Brotbrett gesteckt werden)
Bild 2: Kamerastecker
Bild 3: Steckverbinder Nick & Roll (unten), zum Funkempfänger (bei mir GR-16), WP-Event (grün)
Bild 4: Komplett
Änderungen am Kopter
Im Kopter wurden folgende Änderungen vorgenommen:
- Anschaltung der LEDs auf der 4-fach BL-Verteilerplatine geändert
- Steckverbinder zu den Schaltausgängen modifiziert
Die Bipolartransistoren wurden ausgetauscht und mit MOSFETs ersetzt. Um am Gate keine zu hohe Spannung anzulegen, wurden die Gates über Widerstände an die Schaltausgänge und die 5 Volt vom gleichen Stecker angeschlossen. Somit sind die Schaltausgänge jetzt mit einem definierten Niveau von 5 V oder 0 V (GND). Die 10 kOhm-Widerstände mussten deswegen vom BL-Verteiler runter.
Material
- 2 IRLML 2502 N-Kanal MOSFETs
- 2 20 kOhm Drahtwiderstände
- 1 Servostecker
- 2 einzelne Pole einer IC-Sockelleiste
- Litze
- Schrumpfschlauch
Bild 5: Gesamtschaltplan
Bild 6: Verteilerplatine mit Anschluss der Kopter-LED-Streifen (Ausleger 1 rot und Ausleger 2-4 Positionslichter an je einer 2-poligeb Sockelleiste; blau+nicht markiert) und rechts daneben das neue Kabel. Die Widerstände R1 und R2 müssen unbedingt raus.
Bild 7: Die eingeschrumpften Widerstände; an den grünen Leitungen ist je ein IC-Sockelleisten-Pol angelötet und isoliert, von dem man den Pegel der Schaltausgänge abgreifen kann (nicht im Bild).
Bild 8: Anschluss des eingebauten Kamerahalters (Nick und Roll sowie WP-Event im Vordergrund)
Bild 9: Anschluss des eingebauten Kamerahalters (Servokanal direkt am Fernsteuerungsempfänger [neben der Leitung vom Summensignalausgang zu Flightcontrol])
Software
Bevor der Tiny eingeschrumpft wird, muss er natürlich programmiert werden sowie die Kamera mit CHDK ausgerüstet und das passende Skript eingerichtet werden.
Funktionsweise
Der Attiny25 wertet stabile (mindestens 8 Samples im gleichen Bereich) Werte aus dem Servosignal aus und interpretiert daraus, was getan werden soll. Ebenfalls wird der Schaltausgang, auf dem der WP-Event ausgegeben wird, immer dann abgefragt, wenn ein Befehl an die Kamera ausgegeben werden könnte. Auf dem CHDK-Ausgang gibt er dann eine Impulsfolge aus (3 Impulse, entweder 2 ms oder 7 ms lang). Diese Impulse codieren einen Befehl für die Kamera.
Quelltext
C-Quelltext Attiny25 (gut dokumentiert)
CHDK-BAS-Quelltext Kamera (wegen Laufzeit ohne Kommentare)
CHDK-BAS-Quelltext Kamera (gut dokumentiert, nicht auf die Kamera laden!)
Einstellungen
Bild 10: Im Koptertool muss der WP-Event auf ein POTI gelegt werden ...
Bild 11: ... und der Schaltausgang, an dem der WP-Stecker steckt, wie Ausgang 2 im Screenshot konfiguriert werden.
Bild 12: Die Funke braucht Taster und Poti am besten direkt nebeneinander (Geber 6 und Schalter 1 auf der MX20 o. MX16) ...
Bild 13: ... das Poti wird auf auf Kanal 7 (am GR-16 am Anschluss 7) ausgegeben ...
Bild 14: ... und mit einem freien Mixer ...
Bild 15: ... manipuliert.