I have a project I am working on where I need to check the pressure on a gauge using a camera. I am familiar with a little openCV programming using a laptop webcam. However, for this application, I need to use a camera and a micro-controller. The camera needs to take a picture of the pressure gauge and check if it is between certain values. If it is so, the micro-controller sends a true or a false to a PLC. The first thought I had was to use an Arduino because the software is easily available as well as easy to use. However, an Arduino may not have the image processing capability is what I read online. Can someone please suggest a micro-controller suitable for this application. Also, is it possible to send signals to a PLC from the micro-controller?
However, an Arduino may not have the image processing capability is what I read online.
Correct. An 8-bit Arduino cannot store a big enough image and process it.
Can someone please suggest a micro-controller suitable for this application.
One of the 32-bit offerings from Arduino or any of the many third-party board makers (Teensy, chipKIT, STM32, etc) may be up to the job.
Your main concern will be memory (RAM). The more memory you have the bigger the image you can store and process.
The actual processing will probably be simple enough if the colours of the different things are obvious enough - for instance if the pointer is red and the background (in the target area) is black, then if there is red within the target area the pointer is there.
Also, is it possible to send signals to a PLC from the micro-controller?
Probably. That all depends on how the PLC communicates.
If you want to use and Arduino (even if faster chip with more RAM would be better), there is an option: the small camera module Ov7670 is available in two versions. One just take pictures get them and send them immediatly which is a big challenge in terme of time and will certainly not give you enought time to analyse but the "FIFO" version of the Ov7670 has a buffer in which the module store the image. So you can ask it to "take a photo" and then you have time to get the data.
Of course, it's impossible to retrieve the full picture and you'll have to check it pixel per pixel or maybe line per line.