2025-02-27 3:02 AM
We are trying to assemble a laboratory plant from https://github.com/gergelytakacs/AutomationShield/wiki/FloatShield
The ball position sensor (VL53L0X) is positioned at the top of the transparent policarbonate tube.
We checked the reported ball positions by moving the ball in increments of 5 mm and noting the measured value. The results look almost linear without any obvious issues.
Since the example controller was still not working as it should, we checked the measured ball position with an external reference video system during the actual operation. The graph below shows the ball position from the bottom of the tube.
There appears to be large discrepancies in the middle of the tube.
There are internal reflections of the ball on the sides of the tube - could this cause issues in reported ball position? Is it possible to measure only the first reflection with these sensors? This would practically invalidate all other reflections since those paths are longer.
Solved! Go to Solution.
2025-02-27 11:26 AM
I've got some ideas that can help...
1) switch to the VL53L4CD. The sensor has a 18-degree Field of View instead of the VL53L0's 27-degree Field of View. (Code is easier, smaller, and you get more photons pointing where they should. And it's the same shape, and electrically equivalent. No board changes at all.)
2) If you have any control over what your ball looks like, I'd suggest making it white. And a matte finish would be best.
3) you did not mention anything about your coverglass. Is it of good optical quality? You could have a crosstalk issue.
Read the article:
https://community.st.com/t5/mems-and-sensors/time-of-flight-cover-glass/ta-p/49259
It does a good job pointing you to other useful information.
I did a similar test with water in a column. Even though the distances were off a bit due to the acrylic structures, I found I could create a correction polynomial. I took 11 points from my zero location to my 100% location. Entering that data into Excel, I did a polynomial fit. I then used this to correct my data.
But note that balls are interesting shapes. Very little of the light that hits them reflects back as the bit of the ball that is perpendicular to the sensor is small. The vast majority of the light just bounces away.
Would you consider changing that ball to a cylinder shape? Having a flat top would increase the reflective surface, making your problem trivial.
In fact, I see this sort of problem so often, that I call it the 'piston problem'.
- john
2025-02-27 11:26 AM
I've got some ideas that can help...
1) switch to the VL53L4CD. The sensor has a 18-degree Field of View instead of the VL53L0's 27-degree Field of View. (Code is easier, smaller, and you get more photons pointing where they should. And it's the same shape, and electrically equivalent. No board changes at all.)
2) If you have any control over what your ball looks like, I'd suggest making it white. And a matte finish would be best.
3) you did not mention anything about your coverglass. Is it of good optical quality? You could have a crosstalk issue.
Read the article:
https://community.st.com/t5/mems-and-sensors/time-of-flight-cover-glass/ta-p/49259
It does a good job pointing you to other useful information.
I did a similar test with water in a column. Even though the distances were off a bit due to the acrylic structures, I found I could create a correction polynomial. I took 11 points from my zero location to my 100% location. Entering that data into Excel, I did a polynomial fit. I then used this to correct my data.
But note that balls are interesting shapes. Very little of the light that hits them reflects back as the bit of the ball that is perpendicular to the sensor is small. The vast majority of the light just bounces away.
Would you consider changing that ball to a cylinder shape? Having a flat top would increase the reflective surface, making your problem trivial.
In fact, I see this sort of problem so often, that I call it the 'piston problem'.
- john