A micrometer crack sensor using an Arduino and a camera

I'm designing a micrometer crack sensor using an Arduino and a camera. The camera is attached to one side of the crack, and a target with a very fine crosshair is attached to the other side. By taking several successive photographs of the target and identifying the different positions of the center of the crosshair (X, Y positions), we can determine the pixels that have shifted relative to each other on both sides of the crack.
I need a camera and a routine that identifies the center of the crosshair (X, Y) from a photo taken with the camera.
Can you help me, please?

Why would the centre of the crosshair be different in successive photos? I feel there is more for you to explain about your idea.

My advice at the moment is not to buy a "standard" Arduino like Uno/Nano. You will need something with much more RAM memory.

We are currently monitoring the movement of cracks in large national monuments in Calalunya using potentiometric sensors and Arduino Pro Mini at 8MHz and 3.3V to limit consumption and have more autonomy.
The idea is to fix a camera on one side of the crack, and a target with a cross on the other side of the crack.
A photo is taken of the target with the cross, and the X, Y point of the cross is searched for. If in successive photos the central point of the cross moves, it indicates that the crack is opening or closing.
With the potentiometric sensor we are obtaining accuracies of a few micrometers. We want to investigate if the same can be achieved with a cheaper camera.

The image can be in color or black and white. To find the X, Y lines, you just have to add up the rows and columns of the image of the photo. The row and column that have the highest value (or lowest depending on how the photo was taken), will indicate the row and column of the cross.
The problem we have is that cameras usually give the image in JPEG format, and not in the original RAW format, pixel by pixel.

I suppose the easiest thing would be to find a camera with software that would provide the coordinates of the brightest (or darkest) point (or points) in the image, and that could be connected to an Arduino.

I am attaching a photo of the latest instrument we have installed at the Royal Monastery of Poblet. It has 4 sensors to monitor up to 4 cracks.

"Log in to see pricing", so I assume spendy. :expressionless:

A camera will have a resolution, no matter how fine your cross hair is it seems a challenge to get more than one pixel accuracy. What do you see as the optical part of this?

I saw a demo in a museum of using lasers (real lasers)!to create self-interference, press against what felt like an unmovable unbending part made a lore frequency tone as, I think, wavelengths were consumed and in-consumed as the two,parts did, in fact move towards and away from one the other. IDK if such a thing could be leveraged into a truer fine distance measurement, or how the cost would compare to what seems to work for you now.

a7

You can do that with image analysis (autocorrelation) alone, which is trivial using a laptop, but not an Arduino.

If you can keep it powered continuously then a 1600dpi optical mouse will do the job.

1 Like

With Novotechnik's TX2 potentiometric sensors we achieve resolutions of less than 1 micrometer, and accuracies of less than 10 micrometers.
To start the tests we would be satisfied with accuracies of the order of 50 microns.
A simple camera (OV2640) has a resolution of 1600 x 1200 pixels. If this camera can be focused on a 1.6 x 1.2cm target, for example, the resolution obtained would be 10 microns in X and Y.
The digital processing of the image is very simple, since it simply involves adding the values ​​of the pixels of each row and each column. The row and column that provide the highest value are those that contain the lines of the cross.
We cannot use the laser since it does not have the necessary accuracy, is very expensive and, above all, consumes too much energy.

That is nonsense, as resolution of an atomic diameter (0.1 nm) can be achieved by interference techniques. But lasers are indeed expensive.

I would expect so, with good macro lens. For my curiosity, I took a photo of a ruler and hair with my super cheap phone cam and it gave 200px / mm. Hair was 5px (25um).

How do you compensate thermal expansion of the brackets (and the wall itself)?

1 Like

The problem is not only thermal, it is tidal movement, just like the ocean has. Land also moves with tidal movements and is measurable.


The Novotechnik TX2-0025 sensor we use, and the cable costs us 300€.
If we can achieve an accuracy of 50 microns with a camera that costs 20€ and the same Arduino, we are satisfied...
I haven't said it before, but with the same equipment we take samples of Temperature, Humidity, Inclinations, etc, Date and Time. We take a sample every 15 minutes, and a 18650 battery lasts more than 5 years

The movement due to the expansion of the supports is much smaller than the expansion movement of the large stones that form the walls of the monasteries. We have observed daily variations of the cracks of more than 2mm between day and night.
However, what we are interested in measuring is not the daily movement of the cracks, but the annual trend, which can show the danger of a collapse of the building.
In one of the monasteries we are monitoring, the upper part of the columns of the central nave (8m apart) has been separating 2.5mm every year.

This image corresponds to data taken over 2.5 years on one of the church columns (100000 samples). The upper curve on the right corresponds to the separation between the columns of aisle 4 of the church.

I have an app that does that.

What exactly do you need?

The question is:
Is there a camera of 1600x1200 or more, that can be connected to an Arduino and that provides all the pixels of an image, so that a basic signal processing can be done (adding all the values ​​of each row and all the values ​​of each column), to find the crossing point of the cross?
Is there a camera of the resolution mentioned above that provides from a photo, directly, the crossing point of two perpendicular lines?
Thanks

If the goal is simply to measure movement over time then you don't need to capture the whole area that is 16 x 12mm and therfore you don't need a high resolution camera. The use of cross hairs also sound like a legacy thing from the days when measurements were done by someone adjusting xy screws on a manually operated instrument.

Instead focus on an area that say 1 x 1 mm and take a photo every few seconds using a low resolution camera. As long as the target has some sort of irregular pattern on it you can compare the current image with the previous image to see if the pattern has moved in any particular direction. This is how an optical mouse works.