You may have seen random sporadic posts like “A post for my rss reader to eat”, or “I know it will work this time, stupid rss parser keeps looping”. Well, I have been writing an RSS reader, which runs on the small LCD I got at the Rotary Auction(see this post for details on that). Anyway, recently a friend dumped an old Compaq laptop on me, with a broken screen(including hinges), and a messed up CD Drive. It has Ubuntu on it, so I figured it was good enough and could make an RSS reader. I hooked it up to the small cabinet LCD over S-Video, wrote some software, and now have a cool little RSS reader, that sits there day and night, churning out RSS feeds. Ill post some pics and a video(and the code) when I get back.
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.
Saturday was the Rotary Auction. It was a ton of fun. For those of you that don’t know what it is, the local Rotary Club has a big Auction/Rummage Sale every year. They raise money for the community, last year they made something like $220,000. They have not released the figures for this year. Anyway, people from all over Washington come to buy and donate stuff. They have everything from vintage pinball machines, to every rug you have probably ever seen, to the biggest box of computer mice you will ever see. The best part however, was dumpster diving. They had 11 gigantic cardboard boxes filled with old computer hardware. I got a couple good video cables(VGA, Component), a ton of Parallel and Serial cables, with sockets, and a bunch of IC’s I desocketed from old motherboards. I also harvested a few power supplies. You can never have enough of those when it comes to powering projects.
In total I spent $22, and got a bunch of good stuff:
- 5 Inch LCD Meant to be mounted under a kitchen cabinet
- Internal DVD-RW Drive, PATA
- An external USB CD Writer, which has been converted to an external IDE enclosure
- A Bay Networks BayStack 250 10/100 Network Hub
- An Intel USB Webcam
- A couble USB Mice
- An old dead IBM Thinkpad, just for harvesting the TrackPoint
The best find was a box of old IC’s from Sinclair Corporation. There are probably hundreds of dollars in IC’s and breadboards, and the whole box was only $5. There are a bunch of 7400’s, some 4000’s, a couple Intel 8085’s and 8255’s, and some stuff I had never heard of. The box was shipped April 1982, so the IC’s are even older. There are also a total of 7 breadboards. And, each IC had its datasheet in the bottom, printed out.