LabVIEW Development Best Practices Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

External hardware triggering without using NI hardware/drivers and only using NI-IMAQdx drivers.

Solved!
Go to solution

I have three USB 3.O cameras. I wanted to do external hardware triggering and acquire images simultaneously from the three cameras. Is it possible to execute this program without using any NI hardware and by using only NI-IMAQdx drivers in labview?

0 Kudos
Message 1 of 12
(6,815 Views)

Hi Prawin,

There are certainly many cameras that do accept a hardware trigger, and you can configure whether or not it is waiting for the trigger in LabVIEW. Where will the trigger be supplied from? What cameras do you have?

0 Kudos
Message 2 of 12
(6,807 Views)

Hi Gregroy,

 

I am supplying the external triggering using a arduino micro-controller. I am using a FLIR (BFS-U3-04S2M-CS) cameras. I wanted to synchronize three such a cameras and capture images from it simultaneously.  

 

Thanks  

0 Kudos
Message 3 of 12
(6,794 Views)

Are you getting hung up on the hardware side or the LabVIEW side?

 

On the hardware side you need to get a cable like this: https://www.flir.com/products/hirose-hr10-6-pin-circular-connector/?model=ACC-01-3009

Then wire to the opto isolated input and ground. It looks like that would be pins 2 and 5 from the 2nd page in this document: https://flir.app.boxcn.net/s/4nmu4yffg9h7qov46w5ijcude99nks0u/file/418603801042

 

In LabVIEW you can use property nodes on the camera session. First set the active attribute, and then set the value. You can use NI MAX to find out what the attribute names are. You just look through the camera properties. I cannot remember the exact names off the top of my head, but it might be something like "Acquisition::TriggerEnabled" which you can set to "True". Then your camera will only acquire an image after the trigger signal is received.

0 Kudos
Message 4 of 12
(6,778 Views)

HI gregory,

 

Thank you for the details.

I am hung up on the labview side. 

 

Thanks

 

0 Kudos
Message 5 of 12
(6,765 Views)

Search in the examples for IMAQdx and then find "Triggered Grab.vi". 

 

Capture.PNG

0 Kudos
Message 6 of 12
(6,748 Views)

Thanks Gregory.

 

I have another question. Is it possible to run two or more vision acquisitions blocks in a single loop?

Because i have configured one camera in that, but i have more than two cameras and have to start acquiring at the same time. how can i do this. 

 

Thanks

0 Kudos
Message 7 of 12
(6,746 Views)

Sure it is possible. I would use the IMAQdx functions instead of the vision assistant, and it will become much more scalable. You can either use arrays of camera sessions and images, or have each one in a separate loop. Since they are being triggered you don't have to worry whether the code is reading the cameras at the exact same time or not.

0 Kudos
Message 8 of 12
(6,743 Views)

Hi Gregory,

 

Thanks for the suggestions.In my application, I have to connect eight cameras in parallel and should start capturing the images all at a time on a rising clock pulse coming from a micro controller. 

For this application i am making the VI as attached (shown for two cameras).

You have suggested me to use IMAQdx functions and configure the property node for external triggering but i am facing trouble in working with the property nodes and even the Trigger Grab.vi is giving errors and i could not fix them.

 

That is why i moved to vision acquisition. Here its the vi is building itself.

So if i can build this for eight cameras without any error that will serve my purpose.

 

Thanks

0 Kudos
Message 9 of 12
(6,737 Views)
Solution
Accepted by topic author prawin

Ok, 8 cameras sounds like a lot of data. Be careful if your framerate is too high you might have a hard time getting all of the data off the cameras.

0 Kudos
Message 10 of 12
(6,729 Views)