Minimalistische Fernauslösung einer Nikon

04/12/2013 - 02:09 von Wolfgang Strobl | Report spam
So ab 1995 herum habe ich einiges mit Microcontrollern der Firma
Microchip zusammengebastelt, Metronome für den Musikunterricht meiner
Kinder, "intelligente" Standlichtsteuerungen für die Fahrrràder,
Taschenrechner, die Mastermind spielen konnten, etc., bis die Sachen vor
ca zehn Jahren zugunsten anderer Themen in Schrànken und Kisten
verschwanden, darunter auch einige rudimentàre Versuchsaufbauten für das
Senden und Empfangen von IR-Codes von Fernsteuerungen.

Da das Thema gerade mal wieder aufkam und irgendwer einen Link auf eine
Beschreibung eines Auslösecodes der Einknopf-Fernbedienungen von Nikon
gepostet hatte und ich inzwischen zwei Nikons besitze, dachte ich mir,
das ist simpel, das probierst du mal aus, vielleicht findet sich ja eine
Anwendung dafür.

Aber von wegen "mal schnell ausprobieren". :-)

Ein heftiger Teil des letzten Wochenendes ging dafür drauf, die Teile
zusammenzusuchen - Programmiergeràt, Kabel, Compiler, die ich vor 15
Jahren aus den USA importiert hatte, wiederfinden und darauf
abzuklopfen, ob sie unter Windows 7/64 noch laufen*), usw. Ein ganze
Handvoll von àlteren Prozessoren, die noch mit UV-Löschgeràt und damals
sündteuren befensterten Entwicklungsprozessoren einerseits und sog.
OTP-Prozessoren für einmalige Verwendung zu betütteln waren, waren nicht
mehr programmierbar. Ein Brenner war evtl defekt - keine
Programmierspannung mehr? Ein anderer, ein Billigteil, funktionierte im
Prinzip - aber wo findet man heute noch einen Rechner, der noch ein
Parallel- aka Druckerinterface hat?

Es fanden sich aber ein paar etwas modernere, flashbasierte 12F675, und
es fand sich eine Kombination von Compiler, Brennsoftware und Brenner,
die tatsàchlich funktionsfàhige Resultate lieferte.

Ab da war die eigentliche Aufgabe dann tatsàchlich vorhin in einer
Viertelstunde erledigt. Das Timing habe ich aus
<http://www.bigmike.it/ircontrol/> abgelesen, die 38 kHz durch manuelles
Morsen erzeugt**), die Sendediode über einen Schutzwiderstand an ein
Beinchen des Controllers angeschlossen, schnell ein Programm
zusammengehackt und schließlich nachgelesen, wie man die Fernsteuerung
der D7000 scharfmacht - die Originalfernsteuerung habe ich nàmlcih
nicht. Voilà, schon beim ersten Versuch beginnt die Nikon, im
Sekundentakt zu klackern. So muß das sein. :-) Einzige Mankos: das
Breadboard ist schon so uralt, daß die oxydierten Kontakte die
Geschichte etwas wackelig machen, und der Sendediode làßt sich mit einem
nicht weiter beschalteten PIC-Beinchen nicht all zu viel Leistung
entlocken. Für den praktischen Einsatz würde man hier einen Transistor
nachschalten. Für die Demo reichts aber.

Folgendes ist ein kurzes. wackeliges Handyfilmchen vom ersten Versuch
<https://plus.google.com/11526485784...KL4yf6>
und das hier ein etwas deutlicheres Bild vom Breadboard.
<http://www.mystrobl.de/Plone/bastel...G/view>

Handy, weil das Galaxy Nexus keinen IR-Filter hat und deswegen sichtbar
macht, wenn die Sendediode sendet. Mit bloßem Auge oder einer normalen
Kamera sieht man da nichts.

Das Programm will ich hier nicht breittreten, weil zu OT, nur soviel:
das Auslösen besteht aus dem hier:

knips()
{
b2000();
delay_ms(27);
b400();
delay_us(1580);
b400();
delay_us(3580);
b400();
delay_ms(50);
}

und im Hauptprogramm steht einfach nur

while(1)
{
knips();
delay_ms(2000);
}

m.a.W. löse ungefàhr alle zwei Sekunden einmal aus. Hier könnte man
natürlich mehr tun. Dieser Controller hat zwar nur 64 Bytes RAM und 1 k
Worte Flash-ROM, jedoch belegt diese Mini-Demo davon nur ungefàhr ein
Zehntel. Vor allem sind aber auch noch 128 Bytes EEPROM vorhanden, die
nicht volatil und vom Prozessor beschreibbar sind. Es ließen sich also
z.B. die Daten einer simplen Programmsteuerung dort unterbringen - mach
zwei Fotos, warte fünf Minuten, mache zehn Fotos in
Einsekundenabstànden, und das bitte auf Taste 1.
Ich habe zwar eigentlich keine Verwendung für dergl.. meine aber, daß so
etwas. für einfache Zwecke eine robustere und preiswertere Lösung wàre
als solche, bei der man mit einem grossen Arduino oder sogar Pi darauf
einschlàgt. Ein solcher Controller kostet je nach Bauform in
Einzelstückzahlen rund einen Euro und funktioniert, wenn man ein Auge
zudrückt, oft ohne viel Außenbeschaltung. Selbst eine. ahem,
RS323-Schnittstelle làßt sich mit lediglich zwei Widerstànden
dranbasteln.

Das teuerste sind die Breadboards - das gezeigte kostet etwa 10 EUR bei
Conrad - aber die kann man ja fast beliebig oft wiederverwenden.


*) Tun sie nicht, aber wozu hat man virtuelle Maschinen.
**) Quick&dirty: die delay-Werte grob abschàtzen und statt das pràzise
Instruktionstiming nachzuschlagen einfach mit dem Vielfachinstrument die
resultierende Frequenz gemessen und dann justiert. Man kann das besser
und sauberer machen, ja. Muß man aber nicht. Es soll ja kein Profi-Job
werden. :-)
Wir danken für die Beachtung aller Sicherheitsbestimmungen
 

Lesen sie die antworten

#1 Gregor Szaktilla
04/12/2013 - 02:38 | Warnen spam
Am 04.12.2013 02:09, schrieb Wolfgang Strobl:
... Aber von wegen "mal schnell ausprobieren". :-) ...



Ich habe heute auf die Schnelle einen IR-Auslöser für meine Pentax K-50
zusammengesteckt. Als µC habe ich einen ATmega168 verwendet. Und da ich
derlei µCs hier fast im Dutzend und ein paar IR-Dioden auf Lager habe,
sind solche Basteleien ziemlich schnell erledigt.

So ein Breadboard ist übrigens Gold wert. Was ich in den letzten Monaten
an Schaltungen zusammengesteckt habe, habe ich in einigen Jahrzehnten
zuvor nicht zusammengelötet. Ich habe mir ein paar zusammensteckbare
Breadboard-Module zugelegt und halte immer mindestens eins für
Bastelanfàlle frei.

Gruß

Gregor

Ähnliche fragen