Archive for the ‘Multi-Touch’ Category
I hacked up a little power supply using an LM317, trimpot, 220 Ohm resistor and a breadboard. It regulates a steady 3.2 volts from a 5 volt input. I hooked the lasers up, and I get nothing. I know my power supply works, because it will drive a small DC motor. This leads me to believe there is some quirk with the laser. I will be calling Aixiz tomorrow or Tuesday to see whats up.
Here is a discussion on NUIgroup forums, apparently other people have had this same issue.
I have been coding a new multi-touch mouse driver for GNU/Linux, in Python of course. I got the basic tapping down, but I wanted to go further. I though it would be cool to be able to put all five fingers down and have it trigger the Compiz scale plugin, or similar. I looked around for a non hackish way of doing it, and was appalled by the [lack] of documentation, and even support, for interfacing Python to Compiz Fusion.
So, what would any DIY Python/GNU/Linux freak do? Write his own binding of course! I wrote pyCompiz just for this purpose. Its really simple, you can call any compiz plugin in one line or less:D To trigger the scale plugin: compiz.call(‘scale’, ‘initiate_key’). I have it hosted on a Google Code page, for anyone interested. I don’t plan on updating it very often, only for bug fixes. There really aren’t any features that could be added, its such a simple thing. Anyway, here is the link. Its under the GPLv2 License, so anyone can use it. Happy Hacking!
I just received my lasers I talked about in an earlier post. I have not messed around with them at all yet, but I will try them out tomorrow. Ill post some first results, and hopefully I can have the tracker working and lasers mounted by Monday.
Being the DIY freak that I am I could not get it past myself to buy a power supply for the lasers from Aixiz, so once I get mine working ill post schematics if anyone wants to duplicate it. Its a really simple LM317 circuit.
Here are the parts I got from Aixiz:
I got four of each, but I will definitely try it with 3, 2 and 1, and post some vids so people can see how many we really need.
I figured out what was wrong with my Multi-Touch Box. Due to the large dimensions of it, I only had about half the illumination I needed. That rather bothers me, because I don’t really want to spend another two days just soldering LEDs. So I found a better solution;)
There is another Multi-Touch Method that I have not talked about before. It is called LLP(Laser Light Plane). Basically, you put one infrared laser in each corner of the screen, pointing straign up. You then put a line lens above each laser. Line lenses take a dot and scatter it into a solid line. This is then projected over the entire suface. The goal is to get this plane as close to the actual surface as possible(on the top). Then, when you touch it the light is scattered downward, and picked up by a camera.
I ordered four Infrared 10mW 780nm Lasers and four 120 Degree Line Lenses from Aixiz.com, for a total of $38. I should be receiving them by Friday. Ill post my success(or failure) then, with some videos if it worked.
Yeah, I’m still working on it. The LEDs turn on, but still no blobs. I think my IR filter is too blocking. I will be trying the exposed film method tomorrow, probably.
With respect to software, nuiman of Nui Group has asked me to take over the Python fork of Lux. For those of you that don’t know what either of those are, NUI is a community of people building these screens, and Lux is a Multi-Touch framework. For more information about Lux, read here. Here is a preview the flash version of Lux running. This is the one that Nuiman wrote, not me. The flash version should be done sometime late July. I do not know when the Python version will be done. If you can help(or if you are just plain interested, everyone is welcome, not only programmers) stop by at #python-lux on IRC.freenode.net. If you want to contribute, see me there, or PM me on the NUI Group Forums.
Yep, the LEDs are alive again. I haven’t mounted them this time, this was just a test for correct wiring(A “smoke test” as some people call them, but thats a bit pecemistic for me). I hooked up the ATX Power Supply, and they all turned on except one that I blew up(don’t ask). In the picture with the 87 filter you can barely see the LED cluster in the upper left. Its there, it is just aimed away from the camera. Note, this is NOT my Blob Tracking camera, this is my nice Canon(Does not have the internal IR filter removed).
Due to my past problems, I have redesigned how I am going to mount the clusters. Instead of using a breadboard and plugging them all into that, I will have two rails around the edge of the box. One is +12, the other Ground. All of the LED clusters will be soldered on to these, so they can all be in parallel. Each Cluster will then be mounted on the sides of the table, not the bottom. Scroll down for some pics.
Well, I finished wiring up the LEDs(Actually, I finished quite a while ago and have not gotten around to posting). When I turn them on the camera can see there reflection in the acrylic[see pic below]. The problem with this, is touchlib thinks that they are blobs where I am touching, and triggers a touch event there. I had two choices to fix it, I could get anti-glare glass, or reposition the LEDs to the sides so the camera can’t see them. I am trying LED repositioning for now, and if that does not work Ill get some anti-glare glass.
In this picture the camera is looking straight up from the bottom of the table, and all the LEDs are around it(about an inch lower). All the camera is seeing is their reflection.
[I finished hooking up all the LEDs, but 7. I accidentally hooked those up in paralell, and don’t really want to fix them unless its necessary. There are 11 clusters in parallel, with each cluster having 7 LEDs in series. Each cluster has a 30 ohm resistor in front to make sure each LED only gets 50mA. Here are some pictures. First pic is with normal lens, second is with a Kodak 87 Visible Light Filter(Only lets IR through).
Sorry I have not posted in a while, I have been really wrapped up in this project. I finished building the table. Its 35x27x31 inches, I had to make it taller for the projector to fit without some crazy mirrors. There isn’t really that much to say about it, I made a picture frame type frame for the top, but I didn’t really know what I was doing, so it didn’t turn out perfect. The frame is dadoed on the inside, so the acrylic fits right in. The acrylic still has its protective covering on it, which I will be removing later, as well as putting the Rosco Grey on top. I got a rocker switch from RadioShack and made it flush with the outside, its for powering the LEDs. Anyway, not that much else to say about it, so here are some pics.