Liebe Freunde der Mikroskopie,
ich nehme immer wieder wahr, dass manche Organismen durch die kontinuierliche Lichtexposition bei langen Intervallaufnahmen (mehrere Tage) gestört werden und sich nicht ,,natürlich" verhalten.
Daher möchte ich gerne ein System aufbauen, bei dem eine LED als Mikroskopbeleuchtung mit der USB Kamera DFK72 (CMOS, The Imaging Source) synchronisiert betrieben werden kann.
Es gibt folgende Anforderungen:
1) Die Kamera sollte im Intervallbetrieb unendlich lange von einem PC betrieben werden können (z.B. jede Minute ein Foto).
2) Die LED sollte während der Bildaufzeichnung des zu speichernden Bildes aktiv sein, nicht jedoch dazwischen.
Da durch die mitgelieferte Software IC Capture Bilder permanent in der gewünschten Belichtungszeit als Live-Bild übertragen/angezeigt werden, wäre es vllt. besser, die LED über einen separaten Timer zu steuern. Dieser Timer könnte die LED anschalten und (vllt. mit einer Verzögerung von einigen Millisekunden) die Bildspeicherung auslösen. In IC Capture werden Bilder auch durch die Betätigung der Leertaste abgespeichert.
Welche Möglichkeiten gibt es, ein System mit den geforderten Anforderungen zu entwickeln?
Ist es realistisch als "Nicht-Pragrammierer" ein Programm zu entwickeln, welches die Auslösung der LED für eine gewünsche Zeit sowie die Auslösung der Kamera (z.B. durch einen simulierten Leertastendruck) vornimmt? Meine Recherche hat mir gezeigt, dass das Thema USB-Geräte-Steuerungen im Selbstbau nicht ganz trivial ist.
Da ich gerade meine Doktorarbeit vollende, bin ich auch für einfache Lösungsansätze zu haben... ;)
Ich bin gespannt auf die aufkommenden Ideen.
Beste Grüße,
Sebastian
Lieber Sebastian,
vielleicht solltest Du Dich mal an unsere DIY-Experten Johannes Kropiunig wenden, der gerade ein Projekt entwickelt hat, das zumindest "ähnlich" ist (im weitesten Sinne auch eine synchrone Steuerung von Beleuchtung und Kamera). Vielleicht könnte er Dir bei der Realisierung einer solchen Schaltung helfen?
http://www.mikroskopie-forum.de/index.php?topic=19095.15
Herzliche Grüße
Peter
Hallo Sebastian,
Ein Kollege von mir nutzt für eine sehr ähnliche Anwendung "AutoIt". Das ist eine Anwendung, mit der (vereinfacht gesagt) Mausklicks auf einem Windows-PC automatisch ausgeführt werden können (selbstverständlich kann das ganz auch noch viel mehr), für deine Anwendung sollten die einfachen Funktionen aber ausreichen. Ich habe das Program selber nie benutzt, weiß aber von ihm dass er es ohne großen Programmieraufwand eingesetzt hat - vielleicht wäre das ja auch was für dich?
Beste Grüße
Thomas
Hallo Sebastian,
sofern Du mit dem Lötkolben mehr anfangen kannst, als mit einer Programmierumgebung hätte ich folgende Idee:
Man nehme einen sogenannten Intervallschalter. In der Art, wie er beim großen C unter der Bestell-Nr. 191299 - 62 für 14,95€ als Bausatz angeboten wird. Dazu nehme man ein Relais, das zwei voneinander getrennte Schaltkontakte hat und sonst zu der Schaltung passt - mit diesem Bauteil für etwa 2 Euro ersetzt man das Relais mit einem Schaltkontakt der Originalschaltung unter zuhilfenahme einer Kabelverbindung (es passt ja nicht auf die Platine.).
Das man damit nun die LED schalten kann ergibt sich ja von selbst, nur wie kriegt man jetzt den Computer dazu dann zu fotografieren? Mein Trick wäre: Man nehme eine Billigsttastatur und nehme sie auseinander. Am Ende wird es so verschaltet, dass die Space Taste durch die anderen beiden Relaiskontakte "gedrückt" wird.
LEDs haben beim Einschalten keine Verzögerung, der Computer und die Kamera aber wahrscheinlich schon, deswegen wird es vermutlich auf Anhieb klappen. Wenn nicht kann man einen sehr sehr kleinen Kondensator (z.B. 1nF?) in den Schaltweg der Space-Taste einbauen - der würde verzögern. Wenn der Computer zwischenzeitlich gar nicht benutzt wird, kann man auch eine noch billigere Maus dafür opfern - da muss man nur anstatt des Mikroschalters die Relaiskontakte verschalten - den optischen Sensor am besten abknipsen (oder sanfter: auslöten) und vor Start des Timers den Mauszeiger mit einer anderen Maus auf den Auslösebutton bewegen, dann diese Arbeitsmaus am besten aus dem USB-Port ziehen, damit sich nichts verstellt durch Vibration u.Ä.
Zeitaufwand dürfte sich im Bereich von wenigen Stunden bewegen - sofern man mit dem Lötkolben umgehen kann und Grundprinzipien der E-Technik bekannt sind.
Herzliche Grüße,
WM.
Hallo zusammen,
vielen Dank für die Antworten. Peter, danke für den Tipp zu dem Projekt von Johannes Kropiunig. Das ist wirklich sehr interessant.
Herr Mott, die Idee gefällt mir gut, da der Lötkolben mir tatsächlich etwas näher steht als eine Programmierumgebung. Jedoch stellt sich mir noch folgende Frage:
Nehmen wir an, ich möchte alle 60 sek. ein Foto mit einer Belichtungszeit von etwa 10 sek. machen. Das Relais schaltet nun und schließt die Kontakte von LED-Stromkreis und Maus/Tastatur für 10 sek. Die LED wird für den Zeitraum sicher leuchten. Ich bin mir aber unsicher, ob der Kontaktschluss oder das darauffolgende Unterbrechen des Kontaktes (also nach den 10 sek.) zu der gewünschten Aktion des Programms führt. Kurzum: reagiert der PC beim drücken, oder beim Loslassen der Taste/Maustaste. Wenn er erst beim Loslassen reagiert, verpassen sich LED und Kamera.
Gibt es dazu erfahrungen? Ich meine beobachtet zu haben, dass viele Buttons erst nach Beendigung des Tastendrucks reagieren.
Ich bin gespannt, auf eine Antwort und nach wie vor offen für weitere Lösungsvorschläge.
Vielen Dank und beste Grüße,
Sebastian
Zitat von: Sebastian Hess in Februar 28, 2014, 08:31:20 VORMITTAG
Gibt es dazu erfahrungen? Ich meine beobachtet zu haben, dass viele Buttons erst nach Beendigung des Tastendrucks reagieren.
Hallo Sebastian,
beim Drücken einer Taste tritt ein KeyDown-Ereignis auf - beim Loslassen dann das KeyUp-Ereignis.
Das Speichern eines Bildes wird auch bei IC Capture durch das KeyDown-Ereignis ausgelöst - also beim Drücken. Allerdings gibt es hierbei einen Haken. Wenn die entsprechende Taste etwas länger gerückt wird, dann wird das Ereignis kontinuierlich ausgelöst und es werden mehrere Bilder gespeichert - also nicht wie man vermuten würde nur eines. Du kannst das vergleichen mit dem Drücken einer Taste in einer Textverarbeitung. Wenn du hier z.B. die Taste "A" lange genug drückst, dann schreibt die Textverarbeitung nicht "a", sondern "aaaaaaaaaa..." - genauso läuft das dann auch bei der Aufnahme von Bildern. Dieses Verhalten kann man abfangen, wenn man Zugang zum Quellcode der entsprechenden Anwendung hat - nach dem Motto: KeyDown nur bearbeiten, wenn zwischen zwei KeyDowns ein KeyUp war.
viele Grüße
Christian
Hallo Sebastian,
ich steuere Capture mit AutoHotKeys in Windows. Das ist eine ziemlich einfache, sehr intuitive Programmierumgebung, die Du für Deine Zwecke vermutlich verwenden kannst. Hier ist, als Beispiel, ein Skript für rauschunterdrückende Aufnahmen:
;; Aufnahmen mit Rauschunterdrückung in IC Capture 2.2
#Space:: ; Kurztaste Kommando-Space
Send {ALTDOWN}gn6{ALTUP} ; Rauschunterdrückung 16 Bilder
Sleep, 2000 ; Warte 3 Sek.
Send {CTRLDOWN}i{CTRLUP} ; Zur Bildfolge hinzufügen
Send {ALTDOWN}gnd{ALTUP} ; Rauschunterdrückung deaktivieren
; MsgBox 16 Bilder gemittelt.
AutoHotKeys ist ein kostenloser Klassiker.
Viel Erfolg!
-- felix
Halo Herr Hess,
Zitat von: Sebastian Hess in Februar 28, 2014, 08:31:20 VORMITTAG
Herr Mott, die Idee gefällt mir gut, da der Lötkolben mir tatsächlich etwas näher steht als eine Programmierumgebung. Jedoch stellt sich mir noch folgende Frage:
Nehmen wir an, ich möchte alle 60 sek. ein Foto mit einer Belichtungszeit von etwa 10 sek. machen. Das Relais schaltet nun und schließt die Kontakte von LED-Stromkreis und Maus/Tastatur für 10 sek. Die LED wird für den Zeitraum sicher leuchten. Ich bin mir aber unsicher, ob der Kontaktschluss oder das darauffolgende Unterbrechen des Kontaktes (also nach den 10 sek.) zu der gewünschten Aktion des Programms führt. Kurzum: reagiert der PC beim drücken, oder beim Loslassen der Taste/Maustaste. Wenn er erst beim Loslassen reagiert, verpassen sich LED und Kamera.
Gibt es dazu erfahrungen? Ich meine beobachtet zu haben, dass viele Buttons erst nach Beendigung des Tastendrucks reagieren.
tatsächlich verhält es sich bei der Tastatur so, wie von Christian beschrieben, bei der Maus allerdings meist wie von Ihnen vermutet. Das und die lange Belichtungszeit wurden meinerseits nicht bedacht.
Wenn eine Tastatur verwendet wird besteht u.U. die Möglichkeit im Betriebssystem die Zeit bis zur Wiederholung des Tastendrucks einzustellen - bei Windows sofern ich mich erinnere durch einen Schieberegler bei dem ich aber nicht weiss, wie weit dieser geht.
Andernfalls könnte man z.B. durch zwei Bausteine der Digitaltechnik und einen weiteren Kondensator + Vorwiderstand aus dem 10 s Dauerhigh einen kurzen Impuls generieren. Hinter die Schaltkontakte des Relais für die Computerseite ein UND Baustein bei dem ein Eingang direkt und der zweite über eine vorgeschaltete Negation und Zeitverzögerung mittels altbewährter Kondensatorschaltung verschaltet wird. E1 ist dann in dem Moment high, wenn ein Foto geschossen werden soll, E2 war durch die Negation in dem Moment schon high -> Bedingung für UND erfüllt. vorgeschalteter Kondensator lädt sich auf, zur Negation kommt ein high und wird durch die Negation zum low -> Bedingung für UND nicht mehr erfüllt. Irgendwann ist E1 dann wieder auf low und damit die Bedingung für das UND wieder nicht erfüllt. Heraus kommt also ein in der Länge durch Kapazität und Vorwiderstand bestimmter (und berechenbarer) Impuls.
Herzliche Grüsse,
WM.
Hallo Sebastian,
die Aufgabe war leicht. ;D
Mit dem Arduino den du schon aus meinen Beitrag kennst und meiner Leidenschaft Mäuse zu schlachten bin ich den anderen etwas im Vorteil und kann statt "philosophieren" schon eine fertige Lösung anbieten.
9 Minuten aus einem Heuaufguss:
(https://www.mikroskopie-forum.de/pictures004/146123_17380261.jpg) (http://s1116.photobucket.com/user/Googol1972/media/9Minuten_zps20fde1c2.jpg.html)
Zeiss Achromat 40x Ph2
Hier die 2te Minute etwas größer:
(https://www.mikroskopie-forum.de/pictures004/146123_39089911.jpg) (http://s1116.photobucket.com/user/Googol1972/media/0318_zps4094457c.jpg.html)
Der Aufbau, womit die Bilder entstanden sind, sieht so aus:
(https://www.mikroskopie-forum.de/pictures004/146123_37040565.jpg) (http://s1116.photobucket.com/user/Googol1972/media/UumlbersichtZeitraffer_zps7c810e17.jpg.html)
An den freien Anschluss des Motor&Powershields wurde lediglich zusätzlich ein kleines Relais angeschlossen, welches die linke Maustaste einer 2ten Maus am PC betätigt.
Hier der Sketch (Programme für den Arduino heißen so, warum auch immer) dazu, nach dem // sind die Erklärungen zu den Befehlen:
Zitatint led = 9; //Pin 9 = LED
int lmouse= 3; //Pin 3= linke Maustaste
void setup() {
// Macht die Pins zu Ausgängen
pinMode(led, OUTPUT);
pinMode(lmouse, OUTPUT);
}
// Start einer unendliche Schleife
void loop() {
// Kamera auslösen
digitalWrite(lmouse, HIGH); //Drückt dir linke Maustaste
delay(100); //Wartet 1/10 Sekunde
digitalWrite(lmouse, LOW); //Läst die Maustaste wieder los
delay (500); //Wartet eine 1/2 Sekunde bis der Verschluss der Kamera offen ist
// LED Blitz
digitalWrite(led, HIGH); // Schaltet die LED ein
delayMicroseconds(2000); // Wartet 0,002 Sekunden
digitalWrite(led, LOW); // Schaltet die LED aus
// Macht die Minute voll, bevor es wieder von vorne los geht
delay(59398);
delayMicroseconds(0);
}
Die Zeiten für die Pause müsstest du dir nach deinen Wünschen und Notwendigkeiten anpassen.
Diese Lösung schlägt zwar mit rund 60€ etwas teuer zu Buche, aber dafür bist du ungeheuer flexibel.
Ich hoffe dir damit ein klein wenig bei deiner Doktorarbeit geholfen zu haben und wünsche dir dazu viel Glück. Falls noch Fragen offen sind , frag ruhig, ich werde sie dir gerne beantworten.
Viele Grüße,
Johannes
Hallo,
Ich hoffe, Ihr verzeiht mir die scherzhafte Lösung des Tasten-Problems: ;) :D
http://www.youtube.com/watch?v=IBRnHfvYw9I
Liebe Grüße Jorrit.