LabVIEWForum.de - Zeitlicher Ablauf bei Beleuchtungssteuerung und Bildaufnahme

LabVIEWForum.de

Normale Version: Zeitlicher Ablauf bei Beleuchtungssteuerung und Bildaufnahme
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

heute bin ich auf ein Problem gestoßen bei dem meine LabVIEWkentnisse einfach nicht mehr ausreichen.

Mit einer USB Kamera werden Bilder eines Objektes aufgenommen. Dazu soll das Objekt aus drei unterschiedlichen Richtungen mittels LEDs beleuchtet werden. Die LEDs möchte ich über eine NI PCI 6052E Karte ansteuern.
Es soll also die erste LED an sein und das erste Bild aufgenommen werden, danach die zweite LED und das zweite Bild usw. Das Bild wird mithilfe von einfachen Bildverarbeitungsfunktionen aus der Visiontoolbox ausgewertet.
Jetzt stehe ich vor dem Problem wie ich dies synchronisiert bekomme. Die Beispiele des Examplefinders haben mir noch nicht so recht weitergeholfen, da ich bisher wenig Erfahrung mit den DAQ Funktionen habe. Geschwindigkeitsmäßig wären so ca. 20Hz schön.

Hier noch der Link auf die PCI-Karte:
http://sine.ni.com/nips/cds/view/p/lang/de/nid/2601

Vielen Dank schonmal für die Hilfe.

Gruss Jörg
Hallo, Jörg,

verrat doch erst mal, wie du dir das An- und Ausschalten der LED's vorstellst. Hast du dazu schon Hardware aufgebaut?

MfG, Jens
Hallo Jens,

Die LEDs sind über eine Transistorschaltung angeschlossen. Diese sollen über einfache Pulse angesteuert werden. Hierzu bieten sich ja die Digitalausgänge an. Ich habe mit einer Flat Sequence gestern versuchsweise einen einzelnen Digitalausgang high-low geschalten und so schon mal eine LED angesteuert. Dies könnte man ja durch weitere Sequenzen danach auf weitere Digitalausgänge ausdehnen. Unten habe ich mal ein Bild dazu angehängt.
Leider schwankt auf diese Weise ja die Pulsbreite leicht, so das dies sicher nicht die eleganteste Methode ist.

Wenn ich die Counter verwenden will stehe ich vor dem Problem das ich ja nur zwei habe, aber drei LEDs ansteuern will. Da die Geschwindigkeit der Ansteuerung aber nicht so hoch ist müsste es doch noch eine andere schöne Möglichkeit geben.

Vielen Dank für die Hilfe,

Gruss Jörg

[attachment=6626]
Hallo, Jörg,

jetzt kommen wir der Sache ja schon ein bißchen näher.

Digital Out und Transistorsteuerung, hört sich gut an. Dass es prinzipiell funktioniert, auch gut. Sollte ja dann auch keine Problem mehr sein, DO auf High->LED an, DO auf Low->LED aus.

Jetzt blicke ich aber noch nicht so ganz durch bei deinen Wünschen, wie du deine LED's an-/abschalten willst. Geht es da um eine feste Reihenfolge (Ich denke ja). Ist da auch das Timing wichtig, i.e. muss LED1 für "exakt" 0,5s an sein? Wann willst du das "Bildaufnehmen" auslösen?

MfG, Jens
Hallo Jens,

ok, die Problembeschreibung ist meinerseits mal wieder das größte Problem:-).

Also, die LEDs sollen in einer festen Reihenfolge nacheinander angesteuert werden. Es soll immer nur eine LED an sein. Die LED muss nicht exakt eine bestimmte Zeit an sein, es muss nur gewährleistet sein das sie an ist wenn das Bild aufgenommen wird.
Der Ablauf müsste also etwa so aussehen:
1.LED an -> 1.Bild auslösen, einlesen und verarbeiten und wenn sichergestellt ist das das Bild da ist die LED wieder ausschalten. Danach für die zweite LED und das 2.Bild das selbe usw.....
Das Ganze läuft dann in einer Endlosschleife.
Bei der Bildaufnahme hätte ich die Möglichkeit die Kamera im Videomodus laufen zu lassen, dann müsste ich das Ganze mit der Framerate syncronisieren.
Die zweite Möglichkeit wäre jeweils wenn die LED an ist, den Bildspeicher kurz einzufrieren und dieses Einzelbild auszulesen.

Gruss jörg
Hallo, Jörg,

so ähnlich hatte ich mir das gedacht. Dann verstehe ich aber nicht, wieso du da mit Countern auf der DAQ-Karte anfangen willst? Brauchst du doch gar nicht.

Wenn das exakte Timing egal ist, dann verfolge den Ansatz mit Sequenz:
Also:
-x. LED an per DO->LineX auf HIGH.
-Bei Bedarf kurz warten
-Dann Bildle machen
-x. LED aus per DO-LineX auf LOW.
-Bei Bedarf kurz warten

Das ganze dann z.B. in eine For-Schleife, die drei mal für deine 3 LED's durchläuft.

Und dann von mir aus noch in eine While-Schleife, wenn du den ganzen Prozeß x-mal wiederholen willst.

Sehe da kein unüberwindbares Problem.

MfG, Jens
Hallo Jens,

Danke für deine Hilfe, es funktioniert jetzt im Groben. Jetzt muss ich mich noch etwas mit den Kamerafunktionen auseinandersetzen und schauen wo ich bei der Bildeinlesung noch etwas Zeit sparen kann und dann sollte es erstmal passen.

Gruss Jörg
Referenz-URLs