You're lucky. If you're on a 64 bit system, you no longer have to compile it yourself! So, obviously, I'm no going to tell you how, plus there are a ton of tutorials online.
I'm assuming you're running Ubuntu x64 10.10. At least, that's what I'm going to use. I'll do some tutorials in the future on how do do everything in windows too.
First step is to open up synaptic package manager and install libglut. It should be the only result if you search for that in synaptic.
Everything else is pretty straight forward. Download CCV from HERE. Extract the folder inside to wherever you want. I set up a nice file system for everything I'll be using for the touch screen. I started with a folder named Touch in: /home/USER/Documents/
Now just enter the folder, in terminal, you just extracted. Then enter scripts/ubuntu/. Type "sh install_dependencies.sh"
DONE! Now it's time to start the program. You can start it in terminal or just straight from nautilus, your choice. Just double click the file named clickToLaunchApp.sh in Community_Core_Vision, and run it in the terminal.
Now, just play with the settings until you get some amazing looking blobs. After you finish, there is a button on the side to save settings. You can calibrate now, if you only have one screen, otherwise, follow the instructions below.
In a terminal you have to type "sudo gedit /etc/X11/xorg.conf". Change the "Xinerma" value to 1, save, and logout. After you log back in, things will look funny, but don't mess with it, it'll go back to normal after we calibrate. Start CCV using the steps above, and calibrate. Then, just repeat the first step but set "Xinerma" back to 0, save, and logout. Viola! CCV is now calibrated.
Projector Letter Boxing
I'm Starting with a fresh Ubuntu 10.10 install 64 bit. I'll do posts on how to configure everything with windows after the science fair. No matter what size you screen is, or how you adjust the projector, I doubt you'll get the screen to fit perfectly with the proper resolution. That's why I present to you: a tutorial on modelines!
If you open a terminal and type:
gtf width height refreshrate
If that doesn’t work try:
cvt width height
It will return a result. In my case, I used 1024x768 (later I’ll use 1600x1200) because that’s the native resolution for my projector, at 60 hertz.
# 1024x768 @ 60.00 Hz (GTF) hsync: 47.70 kHz; pclk: 64.11 MHz
Modeline "1024x768_60.00" 64.11 1024 1080 1184 1344 768 769 772 795 -HSync +Vsync
You’ll copy everything after Modeline.
Now, in terminal, open xorg.conf as root
Under the “monitor” or “device” section, whichever you want to add a letterbox, paste:
Modeline "1024x768_60.00" 64.11 1024 1080 1184 1344 768 769 772 795 -HSync +Vsync
Or whatever yours was.You can check online to see what all of these values mean, It took me a while. The second number after “1024x768_60.00” is the one I changed to 786. I did this because I wanted a 1:1 ratio 786x786. The two numbers after that shift the horizontal position. Adding 100 to each of these will shift the image 100 pixels to the right (further away from the left). Once you have the values you want, save the xorg.conf, and restart the x-server. Now you should be able to select the 768x768 resolution, and have the letterbox!
Making it look pretty
Using a bed sheet that I cut into 4 pieces, I sewed a cover for my touch screen table. It worked out pretty well:
Not half bad eh?
Mounting Everything to the Frame
Alright. I'm not going to go into huge detail about how I figured out how everything should be mounted. I'll Upload my scratch work I did during school and maybe you can make some sense of it. I just used trigonometry, the specs of the projector, and the specs of my table, to figure out exactly where the projector should be places so it wouldn't block any light, and it would maximize the screen space. Some helpful advice: Find your projector here, and look at all the specs. This website was a big help to me. Remember, you can click on the pictures to make them bigger.
So first I built a mount for the projector by using screws that I got at McGukins and the support beam. It was extremely stable.
I needed the correct angle for the projector, so using trigonometry again, I figured out how much wood needed to be added between the support and the main frame to hold the projector at that angle.
Now, as for the mirror, I didn't use the angle I calculated. Since I already had the correct angle for my projector, I just adjusted the mirror until the entire screen was covered. I then cut a piece of wood that was the correct size, and propped it onto that.
The camera was fairly easy, especially since it came with a mount. I screwed down the mount to a slice of wood, and pointed the camera perfectly to see the whole screen.
Finally I drilled some holes to string the wires for the LEDs through. Since I designed the LEDs for a 5v power supply, I just used an old PSU from an old Dell. Now whenever I plug in the PSU the IR LEDs turn on!
New Compliant Surface
Little do you guys know, I have this whole compliant surface thing down to a science (not like
Tinkerman doesn't already). My old compliant surface was a little too thin, and had a few dust specs that I couldn't keep my eye off of. So, What you need to do first, is find a dust free, flat, area. I chose my garage and put a fan over the top of my work surface to 1) have it dry faster and 2) keep the dust off. Though, I didn't want the fan to kick up any dust, so I put it on it's lowest setting.
So for this time around I wanted to have 5 layers, and since each surface I use gets ruined after every layer, I decided to put each mixture in old beer bottles. I filled each one with the same type of caulk used in my last 'tutorial'. I plan to throw away each beer bottle after each use and each sponge roller.
When putting the caulk in, be sure it doesn't touch the sides of the beer bottle and makes it into the xylol. If it touches the sides, you'll have a hard time getting it off.
Repeat these next few steps as many times as you want, I did it 5 times. First, you pour one beer bottle worth of silicone onto the vellum, evenly.
Then I spent about 15 minutes rolling it around the entire surface, and making sure no dust got on.
After 5 times of doing it, I got a result that looked something like this:
I should mention, I used a special type of paper that I got at Ball Aerospace. Its water proof, so I can wash it down with a rag whenever it gets dirty. It's called 'Erasable Double Matte Vellum'. Its specification number is 'JR440IJME' and it's made by Intelicoat Technologies.
Adding more LEDs
I'm not going to go into huge detail since I already did this. I decided to add more led's just to make the whole thing brighter. This time around I used 475-1468-ND LEDs from DigiKey, found here. I also used P22.0CACT-ND resistors from DigiKey, found here. The specs are roughly the same from last time. I calculated the resistance using Ohm's law. So, to start of, I had to drill a new set of holes for the LED's
After that was finished, I put the LED's in and hot glued them in.
I put heat shrink around every part of the LED that didn't require a resistor.
I put a resistor between every 2 LED's
Long story short, I put heat shrink over every visible portion of wire, then soldered the whole think to two strips of wire. On of them was positive, and one was negative.
I'm very happy with the results.
Building the Frame (the stand portion)
You know, now that I think about it, this was probably one of the easiest parts of the project. I started off cutting 4 posts that would determine the height of my touch screen. I cut each 2x4 into 28" pieces, so the touch screen would end up being about 30" tall. I only need about 24" of room for the projector, but I wanted extra just to be sure. I also cut 8 1x4's for supports (and mounts for the projector). I wanted the stand to be just outside the view of the screen, so each 1x4 was cut into 40" pieces.
Since the touch screen is too big, I need to assemble it in two pieces, then assemble the full thing in my room. To start, I held down each board in place with C clamps, and screwed the supports in place.
I ended up with two pieces that looked like this:
As I said earlier, the final assembly was done in my room. I'm sure it's pretty self explanatory:
Projector
I should have made a post about this a long time ago, Because I got it on my birthday. My friends got me an $800 projector! That's crazy.
To Levi, Matt, Ian, and Thomas: Thanks SOOO much, I owe you guys a ton. If you ever need anything let me know.
Anyway, the project wouldn't be possible without them. They got just the one I wanted. The highest resolution, and the shortest throw, for a reasonable price. The BenQ MP525ST.
Thanks again guys:
IR camera
WOW! It's been a while hasn't it? Sorry friends. I really haven't had motivation to update the blog. So, I'm going to try to crank out a ton of posts today, because the science fair is in 10 days. Guess what I'm doing for it? RIGHT! Anyway....
There isn't really a component in the whole touch screen that I can say is the most important. Though, the brighter your blobs, the better the resolution, and the faster the frame rate will result in a better touch screen.
So I found a camera that fit my needs. It was cheap, had a high resolution, and a fast frame rate. The Logitech Webcam C600 is what will pick up the 'blobs' in my final touch screen. In this post, I explain why the camera is needed, and show how it picks up the IR light. Unfortunately, most commercial cameras come with a built-in IR filter, so your pictures don't look washed out. For my camera I'm going to remove the IR filter, and add a IR high pass filter. This filter will filter out everything except light around 880 nm.
The first step, is taking the camera apart. If you look on the side of the camera, there are two plates that can be removed. The one with the button is the one you want to remove. Simply just put your fingernail inside to pop it off. Then locate the hole, almost just underneath the button, and take the screw out with a screw driver.
After you do that, the camera should just pop into two pieces.
Now you need to take of the lens and remove the IR filter. I had trouble removing mind, and ended up just breaking it off.
And now that thats over with, It's time to put on the new filter! I ordered my filter from omegabob2. You can visit his store here. I ordered the "NIR Filter, 880DF20, 11.5mm dia, X 4.6mm thick". The transmissions specs were some of the best I could find for it's price. $24 isn't half bad.
So I cut out a spot on the camera where the IR filter could fit into and hot glued it into place.
After the camera was all finished, I tested it. The camera seems to work great, the blobs are a little faint, but as long as I'm in a room with only florescent lights (they don't produce IR) I should be fine!
Subscribe to:
Posts (Atom)