Wednesday, February 25, 2009

Change of Direction with IPod Phone/Touch Development

Well, I stopped working on the Touch Table project and have it shoved in the attic to perhaps return to in the future.

I'm currently attempting to learn development on the IPhone in an effort to develop the application my younger brother thinks will make money. (He isn't a programmer.)

Here are some of the resources I used in my attempt to learn:
  • eclipse-iphone-cdt.pdf - I can't find the blog entry that got me to this doc, but google it and you can find it. (I found one that didn't require registration to get to, but maybe it was pulled since I couldn't find it tonight?) I used it in an attempt to setup a development environment on my Windows Vista box in Eclipse. This attempt ultimately failed due to missing the darwin library on my machine. The method described involved the use of cygwin to compile the source that was written in Eclipse.
  • http://afternoonnap.wordpress.com/ - This blog has some good tutorials and sample code that I used to get everything working for compiling the source directly on my IPod Touch. The couple of problems I had were quickly answered by the blogger via gtalk/gmail. The compilation on the IPod Touch itself can be a bit tricky as you have to have the ipod setup just right with the correct packages and then also have to be able to transfer the files over and access the device and compiler through putty.

At this point in time I have successfully compiled two basic applications on the device. For quick reference, here are some of the problems that I have had:
  • Missing UIKitDefines.h. Pulled it from a the iphone toolchain that I had setup for use with Cygwin when I was trying to compile locally.
  • Had to sign the binary that was compiled before it would run: ldid -s binary
  • Had to give the binary execute permissions: chmod 775 binary
  • helloworld.m:6: error: cannot find interface declaration for 'UIViewController', superclass of 'HelloController' - Not yet resolved.

Most of these problems were fixed with the help of the blogger from afternoonnap. In fact if you want to learn this you would be better off just checking out a few of his tutorials.

Sunday, October 26, 2008

Compliant Surface sort of successful...

The compliant surface didn't end up as a nice smooth surface. There is a bit of streaking due to the silicone not leveling itself out very well. I believe this was probably due to me taking too long to smooth it out. However, the camera can now pick up my fingertip touches very well through the rosco projection screen without me having to use much pressure.

One problem I'm seeing is a ghosting effect where the trails of my fingertip movements are staying on the screen. I'm hoping that this is due to the silicone having not finished curing all the way yet. I need to do some research into this effect to see if there is anything I can do about it.

The other problem that I'm afraid I'm going to have is a poor image quality when I hook this up to a projector. The surface is visibly not smooth and reflects light a bit differently in spots. It is very possible that it will look fine, but I think I'll end up with spots that are brighter/darker than others. (Not that big of a deal if the touch screen works well..)

I have plenty of silicone left if I want to give it another shot. Plus there is another method I read about for applying this stuff that allows you to use much cheaper silicone along with a paint roller. Sounds like it is MUCH easier to get right then the method I used, so I might give that a try if the current surface doesn't work out.

Sorry, no pictures. Considering the acrylic and silicone are both clear, the pictures I took really don't show anything that you can't see in the previous pictures.

Now it is time to build the frame. I have come up with a design that will make the height and angle of the table adjustable, so the exact projector placement doesn't have to be known in advance. (I keep forgetting to bring the work projector home to try out and it gets used a good bit, so I don't want to accidentally leave it at home after borrowing it...)

Once the frame is done I'll probably just take it to work to finish rather than bringing the projector home... maybe...

Saturday, October 25, 2008

Sorta Clear 40 - Compliant Surface

Well, I've finally got back to working on the Multi Touch table. Today I attempted to add the compliant surface to my Acrylic. This is supposed to make it so that a much lighter touch is needed to trigger the FTIR affect.

Prior to this I was able to achieve FTIR with fairly light touch when touching the acrylic directly, but required a very hard touch to trigger when I had the Rosco Grey on the acrylic. The compliant surface will sit between the acrylic and the Rosco Grey and hopefully allow the light touch to work thorough the Rosco.

To prepare the acrylic for the compliant surface I cleaned it with rubbing alcohol and then added masking tape to oposite sides of the acrylic on the very edge. I made the edge seven pieces of tape thick which I think ended up being about .5mm thick. The tape edges allow me to run a straight edge down the acrylic to set the thickness of the compliant surface equal all across the table.

The compliant surface I'm using is the Sorta Clear 40, which comes as a thick silicone and a thin hardening agent. I mixed up about a 1/2 pound of the stuff using the specified 1 to 10 ratio of hardening agent to silocone.

I ended up with quite a bit extra material being mixed and just let it spill over the edge while flattening it all out.

I ended up having issues with it not looking perfectly smooth after I finished, probably due to the fact that the straight edge I was using was made out of wood instead of metal and was just barely long enough to reach between the raised edges. I have the acrylic covered now to keep dust and cat hair from settling on it while it cures. Hopefully it will settle into a smooth flat surface over the next few hours.

I'll put up some before and after shots of the acrylic when it is finished curing. (Claims to cure in 60 minutes, but I'll probably wait until later tonight or tomorrow, just to make sure.)

If this works as advertised then I'll just have the frame left to build, which I sketched out a few days ago. So I just need to buy some more wood and a bit of hardware for the table and I should be done with the physical aspect of it. It looks like the open source software that will run this has seen quite a few improvements since I started, so hopefully the software aspect of the table will be pretty simple.

Saturday, August 23, 2008

Follow-up to LED lights going bad.

I almost forgot to mention the LED light problem I was having. I decided that they were probably going bad because I was overpowering them. (Yeah, according to their specs I wasn't, but maybe the specs were wrong.)

So I've removed the 1ohm resistors I was using and have gone with some 22ohm resistors instead. This means I'm probably under powering them significantly and not getting nearly as much light as I could be, but it should hopefully be enough.

Unfortunately, I'm down to one spare LED light now. (Well, two if you count the one that works but had the connecting wire broken off at the base.) So if any more LEDs go bad then I guess I will either need to try to get in touch with the original buyer so I can keep using the same LEDs, or order the suggested quality LEDs that the NUI Group usually recommends. (I'm hoping for no more problems!)

Wiring finished

So I've been lazy and haven't done much to the table in a while. I did finish all of the wiring and have all of the LEDs turning on at once though. I managed to do a bit of testing and see that I am getting good blobs of IR showing up with the camera.

I cut down part of a floppy disk to add as the filter on the camera and it seems to work okay. I had an issue that when I had the filter on I wasn't seeing the blobs brightly enough. This was most likely due to the fact that I had the Rosco Grey projection material underneath the acrylic. I had read that the Rosco Grey acts like a bit of an IR filter but was hoping that it would still work fine. Guess not. I've moved the Rosco Grey to the top of the acrylic but haven't re-tested the performance yet.

If all this works then I will need to calibrate the detection software, put legs on the table, mount the camera, and mount the projector. (Discovering the right table top height and angle for use with the projector will be the tricky part, assuming the projector at work that I will be using will even work for this..)

The top is still pretty ugly and needs something to cover the guts of it. With the Rosco Grey on top I will need to do something to make sure it stays tightly stretched over the acrylic as well, so hopefully I can kill two birds with one stone.

With the Rosco Grey on top I think I will also look into creating a compliant surface material out of some liquid latex. (Makes the IR blobs show up better without requiring as much force to be applied to the table, makes blobs show up better when dragging your finger, and some other benefits.

So there is still alot to do.

Sunday, July 20, 2008

Finally some photos



There it is. Ignore the fact that some of the wood appears to have gaps. It will be covered with something to pretty it up. All that wood except for the 4 spacers are glued together.

First picture is a closeup of LEDs. They were supposed to be in reverse order, but apparently I don't know how to use the upload feature of this blog. Anyways, that is enough to give you a basic idea.

After I get the LED issue worked out I'll get the projector to evaluate how tall the stand is going to be and at what angle the top will be at.

Kicked it into high gear

I kicked it into high gear today and got alot done so far.

I measured all the wood for the frame, made all the cuts, and have it all set out in the correct positioning. I'm going to slowly glue it together piece by piece, with the first piece setting right now. I also have pictures!

I took the time to attempt to smooth the edges a bit more... I guess it helped. I used 400 grit and 600 grit sandpaper, wetting the 600 at the end. I then found some of my wife's silver polish and took that to the edge to see if I could clear it up a bit. Not sure if that helped. I did manage to get the faces all dirty and had to spend way too much time cleaning it without leaving a ton of streaks. (What is the best way to clean acrylic? Can you use something like windex on it?)

While typing this I was waiting for my camera software to pick up the camera I plugged into the USB port. Doh. I don't have the software on this computer. It's on my wife's computer and I don't feel like turning it on right now.

So pictures a bit later today. I promise.