For my final year project, I had to design and code a digital audio mixing program, with an interface as a multi-touch table. Although I had access to some (very good) FTIR (Frustrated Total Internal Reflection) ones in the lab at my university, I thought it’d be cool to try and build one myself over the winter holiday.
Time was limited, as was the budget – so the results shown in the video are a little less than ideal – but it was an interesting project. Several excellent guides already exist out there (Maximum PC has a good article that discusses the theory and practice behind building such a display) so I shalln’t repeat them here step for step, but here are some pointers and the process I used.
Shown in the above video are the results of my project. As you can see, it’s a bit of a hack, but does prove that such a thing can be made relatively easily and cheaply. The entire system consists of a projector, OHP mirror (front silvered – as a regular mirror would not produce good results), many IR LED’s and a simple webcam and IR filter and of course lots of software.
There is no enclosure for the device, (hence why the room is darkened) – the acrylic is supported by two very simple wooden trusses mounted on adjustable work benches.
Electronically the system is relatively simple. The LEDs were mounted in sections of 8 100ma long-wavelength LEDs on veroboard in series with a resistor, all wired in parallel to a reasonably large 12V PSU. The types of LEDs that are used in security cameras are ideal. Also, I purchased a matching IR filter that was large enough to place over the webcam – and this greatly improved the results. The best place to get these from by far is eBay or CCTV suppliers. Electronic components distributers tend to supply the type that are used for data transmission, which are low power and have a shorter wavelength, which cameras are not so good at detecting.
Some articles recommend using a PS2 Eye Toy as the camera. I was able to get hold of one and tried to replace the filter for my own IR filter, with no luck. I found mounting a webcam behind a large piece of IR filtering material much better.
The most important tips I can give anyone are really two steps to achieve one aim: The background image (with no-one touching the surface) of just the LEDs must remain as static as possible!
This is because the vision system works by filtering out this image from every frame of the camera, then applies smoothing and other filters to accurately detect where on the table a user is touching. The two things that caused me the biggest problem with this were:
- The LED’s move when the acrylic is pressed. This is a simple physical problem to try and keep them as still as possible – I found that using cable ducting (‘C’ Section from B & Q) was excellent as it meant holes could be drilled for individual LEDs (and hot glue held them in), and the entire assembly could be easily clipped onto the acrylic.
- The power supply wasn’t ‘smooth’ enough. Usually, an electronic system drawing around 1 Amp at low voltage would be suitably shielded for noise. However, using a power supply that wasn’t particularly well regulated meant constant changes in the voltage and hence current supplied to the LEDs, therefore changing the brightness. In this situation it is ok, but not great. A good way to solve this would be to construct a proper current regulator – instead of relying on Ohms law and that the voltage would always remain constant…
With regards to software, two packages were used. TouchLib from NUI Group provides the vision system and deals with image capturing. SynergyNet from Durham University’s Technology Enhanced Learning Lab provides a framework in which to run and develop mutlti-touch applications.
My next post will focus on what I did with the software, and how to go about making your own project using these frameworks…