Flex Builder

October 1, 2008

Ok, so I’ve been flip-flopping between c++ and AS3. I went away from AS3 originally simply because Flash Develop would not run stably on my computer, and Visual C++ Express would. Anyways, I found that Adobe Flex Builder 3 is free for students, and you just need to verify that you are a student or teacher, and you can get it for free. Very nice. It runs nicely on my computer.

Finally going to start learning AS3…now that I have a stable IDE. Don’t know why Flash Develop wouldn’t run – have heard all good things from people about it.

Hello world app coming soon! 🙂

MT Update

September 14, 2008

As I said previously, I’ve been playing around with lighting for my MTmini…angled light=bad shadows, too much light=washed out, not enough light=no blobs…I found that using lights that are angled upwards and reflect off the ceiling tend to work the best-fairly bright lights, but angled completely away from the device. Shining light directly down upon it doesn’t work too badly either, but like angled lights, your entire finger (as opposed to just your fingertips), are shadowed more than if indirect lights were used. SmokeDemo works like a charm for me now, nice accurate smokes.

Of course, with a larger scale setup, lights would need to be inside the actual device, for Rear DI and FTIR.

I found some nice LCD schematics here: bit-tech.net | How CRT and LCD monitors work and here: 8512143_LCD_Disassembly_Gde.pdf (application/pdf Object) . Coupled with some guidance I found on several blogs, I think I have enough info on disassembling my LCD monitor, which I should be able to start taking apart shortly. I will most probably be using an old Sony LCD monitor, specifically the SDM-S81 (18″). It is partially working…its having some issues…it blinks off and on every minute or two, but for now, that’s not a problem.

Programming

August 27, 2008

All right…now that I have hardware that works (to some degree, anyways), I am focusing on the software side of things. The language that I first settled on learning and using to program multi touch applications was ActionScript 3.0, and I started reading up on it and reading tutorials. This wasn’t working out too well for me for a variety of reasons, namely that I couldn’t get Flash Develop (I refuse to spend $500 for Flash CS3, or any software, for that matter) to run successfully on my computer.

So, I started looking into C++, and I found several IDEs which worked on my computer and were nice to use. I grabbed a copy of C++ for Dummies (Stephen Davis, 5th edition), and started reading. It is a well written book, but not without its errors, some of which are acknowledged on the author’s website errata page. I have programmed in BASIC before, so some of reading I did in the early chapters was familiar to me and easy to understand. I am chugging along in the book-haven’t reached graphical object oriented programming yet, but I am getting there.

The two IDEs which I liked best were Dev-C++ (Bloodshed, recommended by Davis in C++ for Dummies) and Microsoft Visual C++ Express 2008. Both have their upsides and downsides-Dev C++ seems to be a more lightweight, easy to use environment, but Visual C++ is more polished. Anyways, I am working with both of them, but primarily Dev-C++. While the last release of this software was in 2005, this doesn’t seem to be a problem for me.

Some screenshots of the two:

MTmini Setup Pics

August 13, 2008

Ok…I took some pictures of my MTmini setup….so here they are!

I’m using a basic Logitech QuickCam webcam, piece of 12″ x 9″ glass from Home Depot, regular printer paper as diffuser paper, and….a cardboard box. I noticed after testing my setup that the box was too small for the webcam to see all the glass, so I used the regular webcam software and an erasable pen to denote the area that it can actually see.

Still working to get it calibrated nicely….with good blobs and touch recognition. I’m playing around with different lighting angles and brightness.

More later….

MTmini

August 12, 2008

Hello all!

Recently, I decided to begin working on a multi touch project, inspired by many, particulary Jeff Han, Bridger Maxwell, and other NUIGroup members. Essentially, there are two approaches to multi touch: FTIR (frustrated total internal reflection), and DI (diffused illumination). These techniques are explained well in the NUIGroup Wiki, here. Before embarking on a rather large scale, expensive project, I wanted a smaller scale, basic, proof-of-concept type example to create. I found this in Seth Sandler‘s MTmini. The MTmini is essentially a very basic form of front DI, composed of no more than a webcam, cardboard box, glass/acrylic, and a few sheets of paper.

How it works: the webcam goes in the cardboard box, the glass on top. The webcam is plugged into your computer, and when you press down on the glass, your fingers create shadows. The webcam picks these up, relays it to software that can comprehend these blobs on the glass (for example, TouchLib), and then TouchLib sends the data to an application which uses the touch event.

It seemed simple enough, and after a quick trip to Home Depot, I had everything I needed, and literally, in 5 minutes, I was done with the hardware. Now, for the software-TouchLib. From the NUIGroup website, I downloaded the latest version of TouchLib (2.0). From this point on, I had a bit of trouble with various components. I ran config.bat, as the instructions said to, which was fine, but with the MTmini, with no display, it was rather difficult to calibrate. Anyways, I was ready to try to run some applications, but I found that it wasn’t all that simple. Running TouchLib successfully requires among other things, .Net 2.0 framework (which in turn requires Windows XP SP2, which requires Windows Update 3.0, which requires Windows Genuine Advantage Tool….). After I was done with these downloads, I ran into some more trouble as I found that in order to run Flash-based apps, which the demos are, I needed FLOSC, and JRE 1.6. Several other multi touch users helped me out at nuigroup’s irc channel (irc.freenode.net #nuigroup) to help me get to a working MTmini setup, so much thanks to them. Nuiman explains the need for FLOSC/OSC very well:

1) The TUIO (OSC) data is SENT from Touchlib’s “osc.exe”.

2) The FLOSC gateway CONVERTS the OSC (UDP) data into XML (TCP)

3) The Flash client uses an XMLSocket to RECEIVE and parse the XML data then renders the cursors within your application.”

This is necessary because Flash cannot understand UDP data.

Anyways, I downloaded a whole bunch of things (more details later), and I was able to run Flash apps-basically, I should’ve downloaded this package, and I wouldn’t have had the problems I was having, because cerupcat, the user who designed MTmini, had a special package for those using it, as it needed certain filters. Two .bat files downloaded with that package (similar to the TouchLib files I downloaded earlier), took the place of the FLOSC and OSC applications that I previously needed to run to have Flash apps recognize touch events.

So….now, my MTmini is in pretty good shape, and I am trying to fine tune the calibration of it, as the touches are not very accurate right now, and I am also trying to find ways to improve the hardware-better lighting, better webcam, etc. Software, of course, is a big part of it, and I am starting to learn to program in C++ in order to program applications for my multi touch device. Eventually, I plan to move past MTmini, and design and build a larger-scale, more stable, preferably FTIR multi touch table. But for now, I plan to work more with the software, and do what I can with MTmini.

Pictures of my MTmini setup coming soon!