Fiery Ferret Blog

iPhone, Multi-touch, and More!

Thursday, March 20, 2008

Modding an Infrared Camera

To sense the infrared light coming from my FTIR frame I would need a camera that could only see infrared. As it turns out, the sensor in most web cameras (a CMOS sensor) is sensitive to infrared light. However, most camera manufacturers place a filter within the camera to block the infrared light, so that images being made are closer to what the human eye sees. After all, when have you seen a remote control let off a bright beam of light every time you changed the channel, or drank clear Coca-Cola? To make an infrared camera, I simply had to replace the infrared block filter, with a filter that blocks everything except infrared light. A cheap way to do this is to use an exposed photonegative.

I purchased the cheapest camera I could find at Radio Shack. A $30 Logitech Quickcam Chat. Then I removed anything that looked remotely removable, and unscrewed everything else. here is the inside of the camera:

The infrared sensor was found by unscrewing the lens. It is a small piece of glass that has a red-ish tint to it in the light. It cracked a bit coming out, but that is okay, as it is no longer needed.

The inside of the camera sensor:My best try at taking a picture of the IR filter:

Once the IR filter was removed, I put in the exposed photo negatives. The more you put in, the blurrier your image is going to be. However, they aren't perfect filters and will still let some visible light through, especially if it is bright. I found that three little layers worked fine.

Here are the filters I put in. You can also see the IR filter to the left:

Now I put the camera back together and tested it out. It wasn't compatible with OS X natively, but with the help of the driver from http://webcam-osx.sourceforge.net/ it worked just fine. If you are using OS X, make sure your camera runs on OS X before you take it apart, as any disassembly tends to void most warranties. It is really fun to play with the camera.You can use a remote control as a flashlight.Any really hot things, like my space heater become light sources.Coca-cola even looks like water with IR (that is a candle behind the cup of Coke, by the way).

*Note, these IR pictures actually weren't taken with this camera. I got a different camera later on and took these pictures with it.

Planning My Multitouch Setup

As it turns out, not all multi-touch surfaces are created equally. There were many decisions that had to be made before getting started. Here is what I decided on.

Touch Sensing For homebrew multi-touch systems, there are basically two different ways to detect your touches. I will briefly go over each. The first is direct illumination, or DI. Basically, DI uses an infrared source to illuminate the touch surface and an infrared camera to see what is on the touch surface. This approach allows you to see anything on the touch surface, whether it be fingers, a paintbrush, or fiducials.

The other method uses Frustrated Total Internal Reflection, or FTIR. The theory is that when infrared light is shined inside the edge of a material such as glass or acrylic, it will be reflect internally to the other end of the material, never escaping. However, when a finger touches this material, it "frustrates" the internal reflection, and causes the infrared light to escape through the surface of the material. An infrared camera then tracks this on the opposite side of the material. Unfortunately, this method does not allow much else than fingers from being tracked.The method I chose was FTIR. To me, it looked more stable than DI, not needing as much calibration and not being as susceptible to outside interference.

Display One of the coolest parts of multi-touch is the illusion it creates of manipulating virtual objects as if they were on the table in front of you. This requires the touch surface, and the display to be on top of each other. Much easier said than done. One method is to use a projector to shine the image on your touch surface. Projectors aren't cheap though, and I didn't have any spares lying around.

I decided to go with a more affordable method, using an LCD monitor. I know what you are thinking. "But you have to track the infrared blobs through the display, and LCD monitors are very much opaque." That is exactly what I thought. As it turns out, the actual LCD matrix in an LCD monitor is clear. It is just a piece of glass(?) that can color itself. Then, behind this is a backlight which allows you to see the image. By ripping apart an LCD monitor (gulp) you can take out the LCD matrix and mount it on your multi-touch table. You just have to figure out your own way to backlight it.

Multi-touch Surface The final major design consideration is how you are going to display your multi-touch surface. Because I will only be using a 19" display, a wall display wouldn't be very impressive. Also, this being a science fair project it can't be overly large or I won't be able to fit it. My goal is to enclose it all in a box, about 2" on each side.

So that is my planned multi-touch table. I will post more progress, and some photos soon.