Bei
meinen Versuchen mit dem BASCOM und den ATmega88 kam ich schnell an den
Punkt
wo es um die Programmierung der Timer ging. Als praktische Anwendung
schwebte
mir eine Intervallschaltung meiner Digitalkamera vor. Damit kann man
Zeitreihenaufnahmen machen, die dann z.B. in Photoshop-Elements mit der
Funktion Erstellen/Daumenkino in einen kleinen Zeitrafferfilm
umgewandelt
werden können. Zunächst dachte ich an eine
Auslösung an der Kamera durch einen
kleinen Elektromagneten. Dann stöberte ich ein wenig im
Internet und fand
folgende Seiten, die einen Fernauslöser für NIKON
DSLR Kameras beschreiben:
http://www.sbprojects.com/projects/nikon/index.htm
http://www.bigmike.it/ircontrol/
Das
war natürlich viel
besser, weil hier kein mechanisches Basteln erforderlich war. Auch die
verwendeten Mikrocontroller passten.
Es handelte sich um 8-bit Atmel AVRs.
Der einzige
Haken bestand darin,
dass das Programm in Assembler geschrieben
war.
|
Die Intervallschaltuhr
mit IR-Fernsteurung für NIKON DSLRs |
Und
das mit gutem Grund: Die Frequenzen und Impulse, für
die
Infrarot-Fernsteuerung, lagen in zeitlichen
Größenordnungen die in BASIC nicht
mehr machbar sind. Was nun? Meine Assembler Kenntnisse reichten leider
nicht aus, die schöne Menüsteuerung über das
LCD-Display und die Anzeigen in
Stunden, Minuten und Sekunden, bzw. die erforderlichen Umwandlung von
Sekunden
in Minuten, Stunden und Minuten mal eben so in Assembler
umzusetzen. Auch
mein Versuch die Assemblerroutinen für die Fernsteuerung, in
das |
Das BAIC-Progrann (Zur
Ansicht bitte anklicken) |
Basicprogramm
einzubinden scheiterten, auf
Grund mangelnder Kenntnisse
kläglich. Ich
entschloss
mich einen anderen Weg zu gehen, der im Rahmen meiner
Möglichkeiten lag. Ich
setzte einfach zwei Mikrocontroller ein. Einen, in dem das
Assemblerprogramm
für die Fernsteuerung der Kamera implementierte war
(IC1) und einen der das
BASIC-Programm mit der Zeitsteuerung
|
DasAssembler-Progrann
(Zur Ansicht bitte anklicken) |
und
der Bedienerführung
enthielt
(IC2). Die
Ansteuerung des Fernsteuerchips erfolgte dann durch den
basicprogrammierten
Chip. Die Änderungen, die ich in dem Assemblerteil
durchgeführt habe, sind
durch rote Schrift gekennzeichnet. Es handelt sich dabei um die
Auslösung, die
im Originalprogramm durch schlichtes Einschalten der Stromversorgung
realisiert
wurde und die Aktivierung des Sleep-
|
Bedienung:
Nach
Betätigung der Reset-Taste oder dem Anlegen der
Betriebsspannung befindet man
sich im Hauptmenue. Es stehen die Optionen ‚Timer
starten’, ‚Intervall setzen’
und ‚Dauer setzen’ zur Verfügung. Mit der
Taste ‚Next’ wechselt man zur
nächsten Option. Mit der Taste ‚OK’
wählt man die gerade angezeigte Option aus.
Mit den Optionen ‚Intervall setzen’ und Dauer
setzen’ stellt man die
gewünschten Zeiten ein, mit der Option ‚Timer
starten’ startet man (wer hat’s gewusst?)
den Timer. Das Einstellen der Zeiten geschieht immer dergestalt, dass
man
zuerst die Stunden mit der Taste ‚next’ einstellt.
Jeder Tastendruck von ‚next’
erhöht den Wert. Sobald der gewünschte Wert angezeigt
wird, bestätigt man ihn
mit der Taste ‚OK’. Genau so verfährt man
auch mit den Minuten und Sekunden. Nach
dem die Sekunden eingestellt und bestätigt sind, geht das
Programm zurück ins
Hauptmenue. Wurde
‚Timer starten’ gewählt, wird die
gewählte
|
Was dem bloßen
Auge verborgen bleibt: Ein IR-Burst |
Dauer
in der zweiten Zeile des Displays angezeigt.
Die verstrichene Zeit wird in der ersten Zeile
sekündlich aktualisiert. Jeweils im
gewählten Intervall wird über die IR-Diode ein Signal
an die Kamera geschickt,
welches veranlasst, dass die Kamera eine Aufnahme macht. Ist die
gewählte Dauer
verstrichen, schaltet sich der Timer automatisch ab, d.h. er geht in
den
Sleep-Mode. Um ihn wieder zu aktivieren, ist die
‚Reset’ – Taste erneut zu
drücken. |
Eine
Zeireihenaufnahme
|