INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Auslesen eines Kamera Sensors



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

07.10.2013, 12:28
Beitrag #1

eixi Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Oct 2013

2012
2011
EN

85521
Deutschland
Auslesen eines Kamera Sensors
Hallo liebe LVF-Mitgleider,

ich habe die letzten 8 Wochen das LVF (und auch den Rest des www) durchkämmt und versucht mir genug über DAQmx beizubringen um mein Problem das eigtl. simpel ist zu lösen. Leider hat es nicht gereicht Sad vlt hat ja hier jmd. die rettende Idee Smile

Ich möchte den Bildsensor einer Kamera auslesen, der Sensor hat 24x24 Pixel und unterscheidet nur Intensitätswerte, die er als Analogspannungspegel zu je einem 6er Block ausgibt und den ich dann mit dem NI USB-6341 Interface einlesen möchte.

Um dem Chip zu sagen ich möchte jetzt den ersten 6er Block der ersten Zeile auslesen, muss ich zuerst den Frametrigger (FTRIG) und den Horizontaltrigger (HTRIG) für einen Clock cycle auf high setzen.
Die genaue Timing Tabelle hab ich mal in ein Bild gemalt (     )und hoffe das es so einigermaßen verständlich ist. Also da der Chip die Pixelwerte nur immer in 6er Blöcken ausspuckt braucht man dementsprechend 4 Blöcke á 6 für eine Zeile von 24 Pixeln und das dann eben mal 24 bei 24 Zeilen.

Die Masterclock (ca. 500 Hz, variabel) , nach der sich hier alles zu richten hat erzeugt ebenfalls LabVIEW mithilfe eines Counters, den ich auf einem Pin ausgebe und so in den Chip einspeise. (VI angehängt)
12.0 .vi  MCLK generation.vi (Größe: 23,5 KB / Downloads: 191)


Bisher hatte ich versucht das Timing über Timed Loops zu realisieren (kläglicher Versuch im Anhang)
12.0 .vi  DAQ Readout.vi (Größe: 82,6 KB / Downloads: 191)
, hat allerdings nicht funktioniert und zudem habe ich auf der NI Page gelesen, das man Timed Loops bei USB Hardware vermeiden sollte, aufgrund der hohen Latenz von USB (10-100ms).

Nun zu meiner Frage:

Wie kann ich dieses Timing in LabView realisieren? Huh

Zusammenfassung meiner Konfiguration:
- NI X-Series USB-6341
- LabVIEW 2012
- jede Menge Verwirrung bzgl. Timed Loops/Trigger/Event structures Bahn

Vielen Vielen Dank schon im Vorraus an alle die sich jetz wegen mir den Kopf zerbrechen Blush

Gruß

Eixi
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.10.2013, 17:32
Beitrag #2

macmarvin Offline
CLA
***


Beiträge: 445
Registriert seit: Sep 2006

2014
2004
EN

81373
Deutschland
RE: Auslesen eines Kamera Sensors
Hallo Eixi,

die HW generierte Clock ist ein guter Anfang. Ich würde versuchen die Analogwerte über _einen_ AI Task zu holen in dem
1. alle Kanäle drin sind.
2. der auf der fallenden Flanke der Clock getaktet eingelesen wird
(3. insgesamt möglichst alles per DAQmx auf der Hardware machen zu lassen)
Inwiefern deine HW das kann, da bin ich mir gerade nicht sicher... das muss ich selbst erst simulieren.

Das mal als erste Ideen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.10.2013, 19:14
Beitrag #3

macmarvin Offline
CLA
***


Beiträge: 445
Registriert seit: Sep 2006

2014
2004
EN

81373
Deutschland
RE: Auslesen eines Kamera Sensors
Hab mal etwas zusammen geschmissen. Da sind sicher noch Fehler drin, sollte aber grob nachvollziehen lassen was ich meinte.

11.0 .vi  sensor read based on Correlated Dig Write With Counter.vi (Größe: 67,75 KB / Downloads: 170)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.10.2013, 06:16
Beitrag #4

eixi Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Oct 2013

2012
2011
EN

85521
Deutschland
RE: Auslesen eines Kamera Sensors
Hallo macmarvin,

Danke das du dir so viel Arbeit gemacht hast, ich versuch mich jetz mal in dein .vi einzulesen.
Deine Beschreibung in Worten erschien mir logisch allerdings muss ich das jetz auch noch in Code umsetzen Smile

Kurze Frage vorab: War es Absicht, dass das "Get Terminal Name with Device Prefix.vi" nicht dabei war?

Gruß

Eixi
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.10.2013, 06:54
Beitrag #5

macmarvin Offline
CLA
***


Beiträge: 445
Registriert seit: Sep 2006

2014
2004
EN

81373
Deutschland
RE: Auslesen eines Kamera Sensors
(08.10.2013 06:16 )eixi schrieb:  Kurze Frage vorab: War es Absicht, dass das "Get Terminal Name with Device Prefix.vi" nicht dabei war?

Das war Teil des NI Bespiels... deshalb hatte ich das billigend in Kauf genommen. Fehlt es dir denn? Kann schonmal vorkommen, das sich Beispiele ändern.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.10.2013, 07:29
Beitrag #6

eixi Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Oct 2013

2012
2011
EN

85521
Deutschland
RE: Auslesen eines Kamera Sensors
Habs gefunden danke, hat sich vlt nur der Pfad geändert, aber im Endeffekt war es im DAQmx Ordner bei den examples dabei, jetzt ist das .vi lauffähig. Smile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.10.2013, 12:28
Beitrag #7

eixi Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Oct 2013

2012
2011
EN

85521
Deutschland
RE: Auslesen eines Kamera Sensors
Ich bin jetzt zuerst dein Beispiel und dann auch das zugrundeliegende Beispiel von NI (Correlated Dig Write With Counter Questions.vi) durchgegangen und schon mal vorsichtig begeistert Smile es liegt schon sehr nahe an dem was ich brauche.
Allerdings versteh ich manches noch nicht wozu es gut ist, ich hab das mal alles in ein bildchen gemalt ich hoffe so ist es am einfachsten zu verstehen wo ich noch hänge.    


- Der Counter der am Anfang generiert wird, stellt hier die Masterclock dar oder?
- ich bekomme Error 200279 wenn ich versuche die Rate auf dem Frontpanel größer als 2000 zu setzen, ist das normal ?    
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.10.2013, 14:25
Beitrag #8

macmarvin Offline
CLA
***


Beiträge: 445
Registriert seit: Sep 2006

2014
2004
EN

81373
Deutschland
RE: Auslesen eines Kamera Sensors
Servus,

ich geh's mal von links nach rechts durch...

- Name vergeben mit NI_ChannelName ist nur damit es hübsch im Graphen ankommt und nicht wirklich wichtig. In der Hilfe sind diese Attributnamen dokumentiert.
- Der Counter ist MCLK, richtig.
- Die Outputchannels hast du auch richtig zugeordnet
- Die Analogwerte würde ich mit der Falling Edge aufzeichnen. Da hat die Schaltung etwas mehr Zeit die Daten stabil zu haben. Bei näherem Hinsehen sollten wohl auch die Triggerleitungen auf falling rausgeschrieben werden.
- Den Starttrigger des AI-Tasks würde ich inzwischen fast eher auf die Rising Edge von FTRIG legen.
- Die 24 Samples beim AI-Read sind wohl falsch! (...das schiebe ich mal auf meine Erkältung) Wink
Da sollte wirklich eher eine 4 stehen, die 24 am modulo sollte aber passen. Das reshape array macht aus dem 4x6 2D-Array ein 24 1D-Array (Zeile).
- Bei der Fehlermeldung könnte es reichen, beim Setzen der Sample Clock des AI-Tasks am Eingang "samples per channel" den Buffer größer zu wählen (z.b. 20k-30k)

Mglw. wäre es auch sinnvoll, gleich 96 Samples x 6Chns zu lesen und das dann direkt in die 24x24 Form zu bringen.

Viel Spass noch :-D
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.10.2013, 14:34
Beitrag #9

eixi Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Oct 2013

2012
2011
EN

85521
Deutschland
RE: Auslesen eines Kamera Sensors
Servus,

Danke für die ausführliche Antowrt =) mit Erkältung könnte ich derzeit auch dienen, aber wird schon wieder ^^ dir gute Besserung!

Ich hab schon riesige Fortschritte gemacht dank deiner Hilfe Smile aber ich muss dich noch n bisschen in Anspruch nehmen fürcht ich:

- der Starttrigger des AI-Tasks liegt doch schon auf Rising Edge oder hab ich mich verschaut?
- Das vergrößern des Buffers auf sogar 100k hat den Error 200279 noch nicht verschwinden lassen, gefühlt dauert es jetzt nur einfach länger bis er ihn mir wirft
- ich finde deine Idee sehr gut, erst mal ein Frame komplett einzulesen und dann das Bild rauszuschreiben, das macht mir auch nachher das Abspeichern der Bilder einfacher, allerdings habe ich da noch das ein oder andere Problem zu lösen (zb. das einlesen in 6er Blöcken ist zwar richtig aber ein bisschen vereinfacht, eigtl liest er immer Pixel 0,4,8,12,16,20 und dann 1,5,9,13,17,21 usw. aus)
12.0 .vi  Fill Pixel Array.vi (Größe: 20 KB / Downloads: 170)
, ich versuch jetz erst mal mich da langsam ranzutasten, würd mich aber nochmal melden, bevor der nervenzusammenbruch droht Wink

Gruß

Eixi
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Trigger eines Kamera-Signal wilson85 3 4.784 09.07.2013 20:27
Letzter Beitrag: Holy
  Probleme beim gleichzeitigen Ein- und Auslesen eines Sinussignals mit myDAQ SuperMaWio 4 6.159 09.03.2011 00:03
Letzter Beitrag: kpalime
  Eigenschaften eines Tasks auslesen ? uzelle 3 4.335 16.02.2011 15:57
Letzter Beitrag: GerdW
  Zeitgenaues Auslesen eines Counters kirby 3 3.720 31.05.2008 19:19
Letzter Beitrag: Lucki
  Zwei Antworten eines Sensors gleichzeitig Darstellen STG 4 3.896 12.07.2007 11:41
Letzter Beitrag: STG

Gehe zu: