# Detect Infrared beam projected onto X-Y plane. Save and display coordinates. CMOS sensor?

I'm working on a project in which an IR laser is pointed perpendicular to the surface of an X-Y plane (Think like the old game "Duck Hunt"). I don't know where the IR beam will land on the plane but would like to detect the location, distance from plane(based on area of beam in comparison to beam aperture or its intensity compared to its initial intensity) and save it for display in an app.

From my research I think an array (or multiple arrays) of receiving ir/photovoltaic sensors would work but I want to avoid that method (if plausible) because I'm trying to use the minimal amount of components and I want to keep the programming "relatively" simple (if possible). [I've got mechanical engineering background not electrical. Apologies, friends]

I did more research and I think a CMOS sensor (commonly found in almost all digital cameras these days) could potentially be used (or perhaps a kinect?)

This is where my question comes in: IF I were to pursue the cmos sensor method, how could I best go about finding the location? IF the cmos method would be overly complicated (there has to be a better way) to display this information. I'm open to any microcontroller suggestions as well. Any help or guidance in the direction to research would be appreciated.

Thanks for your help

**Edits: Want it to detect on a physical plane can be opaque or clear. The surface area I'd like to detect is about the size of a sheet of paper (8.5"x11")

Let's assume we dont have control of the ir laser and that it can hit anywhere on the plane. The only thing we can alter is the plate and the sensor.

• How big does your sensor have to be? A CMOS sensor is typically small. Certainly no where near the size of the screen in "Duck Hunt." – JRE Apr 4 at 20:00
• Just FYI, that's not how Duck Hunt worked. The gun didn't project a beam, it had a photosensor. When you pressed the trigger the screen went black except for a bright square where the duck was. If the sensor detected light then your aim was true. – Elliot Alderson Apr 4 at 20:10
• @JRE I would like the sensing area to be about the size of a sheet of paper. (8.5"x11") – MecheProSparkyNoob Apr 4 at 20:11
• Is this plane on the physical plane (sorry, couldn't resist), or do you just have a plane defined in space, that you are free to leave alone or populate with sensors? When you say IR, what wavelength or band? I hope that you mean near IR (not much longer than $1\mu\mathrm{m}$, but "IR" can mean light with wavelengths much longer than can be imaged by a standard silicon light sensor. – TimWescott Apr 4 at 20:11
• @ElliotAlderson I guess it would be more accurate to say that i want to avoid having to buy/make a series of receivers that I would then have to individually address with clever programming. I'm also trying to keep the cost of this project as low as realistically plausible – MecheProSparkyNoob Apr 4 at 20:22

## 1 Answer

I think the simplest and cheapest way to get beam width and the coordinates where the beam hits the target is to use a camera.

Get a webcam. Take it apart, and remove the IR filter. Reassemble it.

You now have a webcam that can see light and IR.

Aim it at your target, with the camera at a fixed distance from the target.

When your laser is in operation, you should see a bright spot on your image.

Since the target is a fixed size and the camera distance is fixed, you can figure out calibration numbers such that you can calculate positions in millimeters from the image pixels.

This gets you position information (where is the bright spot?) as well as beam area (count the pixels in the bright spot.)

I think if your target is flat, and you roughen the surface slightly (matte instead of shiny surface) then you would get a slightly wider beam image.

In any case, the beam area and intensity can be used to estimate the distance from the laser to the target.

You'll need to disable autoexposure and shutter speed on the camera if you want to use the brightness to estimate distance. Those two automatic settings will vary the brightness, and you'd be hard pressed to compensate for that.

Set the shutter speed and exposure to values that work well in your environment, then calibrate the brightness and beam area against known distances from laser to target. Then, always use those shutter and exposure settings.

There are commercially available IR cameras, and surveillance cameras that can see IR and visible light. If the resolution or quality of a (high resolution) webcam isn't good enough, you could move up to better equipment. But, I think the webcam will do to at least prove the concept before you invest a lot of money.

You may find OpenCV useful in handling your camera images.

• This is a good idea. I guess my only question is with this setup would it be possible to have a microcontroller(or something like that) programmed to do the math for me and then printf the distance from target? – MecheProSparkyNoob Apr 5 at 12:58
• Not a microcontroller. They don't have what it takes process an image in real time. Something like a Raspberry Pi could do it - it has everything you need, though "real time" is disputable. It has a full Linux operating system, so system operations could cause unpredictable skips. – JRE Apr 5 at 13:34
• With the sensor behind the plate, you will have to be sure the plate is at least semitransparent to IR. – JRE Apr 5 at 13:36