My experience with small QR code readers like this on ESP32 boards is that without a viewfinder, they lose a lot of utility. The feedback loop that a viewfinder gives with positioning and knowing when the QR code is detected is invaluable.
In places where QR payment is commonplace, readers without viewfinders often get round this issue with a pyramidal frame in front of the camera marking out its FOV, the rectangular opening indicating where the QR code should be aligned. From experience, the code often reads before you even finish approaching the reader.
All of the cheap camera based two-dimensional barcode modules that I see on AliExpress tend to ship with a white LED as well as a red LED. The white LED is for general flood illumination and the red LED has some sort of pattern and lens array that keeps it centered in the cameras field of view and appears sharp and focused when the barcode is at the optimal distance.
Camera detects motion, turns white LED and red LED on. Paper or screen with the QR code is now illuminated and humans can move up and down until the red Target appears in the center and in focus. Approximately a quarter of a second after that happens, you hear the beep noise indicating a successful read and decode
typically on these cameras the lens is mounted and focused by a screw thread. there is not usually an 'infinity stop' because the mount is very simple, so i would expect the lens may be mechanically positioned outside the useful focus range. a 110 degree FoV is a very wide lens, so the useful screw range may be quite mechanically narrow, but when positioned properly it will have a very deep in-focus field, capturing near objects and far objects clearly.
the datasheet doesn't say much about focus, but it looks like the rim of the lens is knurled for grip, so try rotating the lens. 'screw out' will bring focus nearer, 'screw in' will push focus farther. i would suggest indexing your start position with a paint pen for easy return, and then index the correct position if you find it.
if all else fails, you could place a small aperture in front of the lens. this will reduce light transmission but also improve the focus field, like squinting your eyes.
Somewhat incidentally, is there an actual description of how a low-tech QR code reader would work? I’ve looked for this a few years ago and all solutions I could find were of two flavours: (1) use ZXing (“Zebra Crossing”, a now-unmaintained library[1] for every 1D and 2D barcode under the sun); (2) use OpenCV. Nowhere could I find any discussion of how one would actually deal with the image-processing part by hand. And yet QR codes are 1994 tech, so they should hardly require fancy computer-vision stuff to process.
I've had a recurring idea in my head of a sensor you could mount in your car, and then be able to read QR codes from the side of the road, and get an index of all the businesses you'd be driving by for later lookup. Not sure how feasible or useful it'd actually be...
19 comments
[ 2.5 ms ] story [ 44.3 ms ] threadhttps://en.wikipedia.org/wiki/CueCat
Camera detects motion, turns white LED and red LED on. Paper or screen with the QR code is now illuminated and humans can move up and down until the red Target appears in the center and in focus. Approximately a quarter of a second after that happens, you hear the beep noise indicating a successful read and decode
typically on these cameras the lens is mounted and focused by a screw thread. there is not usually an 'infinity stop' because the mount is very simple, so i would expect the lens may be mechanically positioned outside the useful focus range. a 110 degree FoV is a very wide lens, so the useful screw range may be quite mechanically narrow, but when positioned properly it will have a very deep in-focus field, capturing near objects and far objects clearly.
the datasheet doesn't say much about focus, but it looks like the rim of the lens is knurled for grip, so try rotating the lens. 'screw out' will bring focus nearer, 'screw in' will push focus farther. i would suggest indexing your start position with a paint pen for easy return, and then index the correct position if you find it.
if all else fails, you could place a small aperture in front of the lens. this will reduce light transmission but also improve the focus field, like squinting your eyes.
[1] https://github.com/zxing/zxing