Friday, April 28, 2006

Test 1: musings

I won't call the test a failure, I learned far too much for it to be a failure. Following extensive testing I've concluded that my equipment has severe limits. It seems that even at the same power levels and with the cones removed, the speaker movement different between high frequencies and lower frequencies is huge. Movement at high information output rates was infinitesimal. Lowering the movement speeds helped but there are other problems too.

There's a lot of shake in the setup I'm using (one pictured in the posts below) and I think I need to really bolt things to a solid frame to get rid of the vibrations. At the moment it's so bad I'm getting vertical distortion on the horizontal mirror. That'll be the first order of business when I have an afternoon free next. Another problem is that my mirrors have far too much scatter in them. I'll have to look at some in shops and see if I can find something that'll suit my needs. A pinpoint laser spot is what is needed.

My transducers work well, but they don't move much compared to the speakers (almost microscopic in fact). This is perfectly fine with me because they should have almost 0 distortion, so I just need mirrors and other equipment good enough to make that small movement count. To make it count, I've been wondering about an edge projection strategy. The laser projector is attached to the edge of the surface at a slight angle, and the angle means all the movements are magnified greatly. An extension of this idea would be specially shaped, stepped mirrors made at just the right angles such that shining a slightly moved laser beam onto them will cause pixels to be reflected into the appriopriate places. This idea needs some work, but it might allow a far superior projector with far less power....

Monday, April 24, 2006

Hello World at 24.6hz

I've written the first mockup version of the picture to sound conversion software in python. Since my lasers still haven't come (GRRR!) I've written a simulated wall to project my sound driven beam onto. I'm surprised how crisp the image looks (speakers may blur it or make it worse... don't know yet, but I think I can compensate for that regardless) at reasonable refresh rates and resolutions. I've projected "hello, world" at 256*30 with a 3 pixel horizontal granularity, getting 24.6hz refresh rate. Here is the original image:



and here is the final image:



I've written a library that takes an image as input and spits out a sound file as output. The software graphs laser position vs time, by associating a scan speed (and hence positions) with each pixel's brightness. When all the pixels have been converted to positions, the software converts the graph from a position reference to a time reference. This is done at a customisable granularity, so clarity and contrast in the image can be swapped for scan speed to keep refresh rates up. This should have some interesting effects when applied to full-screen conversions, and allows for other optimizations like dynamic detail changing to achieve best accuracy at a given framerate.

I can't wait for my lasers to arrive so I can test this out practically, but given the small movement of speakers I think I'm going to arrange a lense system to magnify its effect. The system should still have infinite focus though, even with lenses in it. Among my other ideas for these software controlled scanners are software/intelligent keystoning and deformation mapping to allow good projections on bumpy surfaces.

Sunday, April 16, 2006

The setup

I've bought a pair of cheap speakers and pulled the cones out of them. One of the cones was accidentally destroyed (seen in the background in the process, so I've replaced it with a spare. THe mirrors are attached to the edges and centers of the cones, one horizontal (seen) and one vertical. This allows horizontal and vertical scanning control via stereo sound.

Image hosting by Photobucket

In this picture, my speakers are already aligned and there's a paper screen. Unfortunately my laser pointer ran out of juice as I got this working, so further testing will have to wait for a week. I'm also concerned that I didn't put as much weight on my mirrors as I should have - the beam reflection spreads a bit too much. Just a warning from testing with my laptop: the speakers WILL NEED AMPLIFICATION. Not sure of details on that yet, because my pointer isn't working to test it, but the mirrors definitely aren't moving enough. When I can work on this next, I'll try cutting out the speaker cones and see if I can squeeze a little better movement out of it without amplification.

Mirrors on the cheap

Conventional mirrors aren't very useful for laser projects - the glass barrier ends up distorting and reflecting too much light. Besides, they cost money. Instead, we'll use an old CD-R:

Image hosting by Photobucket

First, cut squares of plastic out of the CD, and use blu-tack to pull the label off them. This gives us a nice transparent piece of plastic. Be careful not to get dirt on them, and polish off any fingerprints with a tissue. Next, coat one side of your piece of plastic with superglue and stick it to the label side of the CD you just cut up. Apply lots of heavy weight and leave it for a few hours. It took me all afternoon:

Image hosting by Photobucket

Trace around the edges of the dried piece of plastic with a relatively sharp knife. This is to cut through the label and make it easier to peel off the CD. Next, bend the CD so that one side of your piece of plastic will pop off the surface. Peel your newly made mirror off, polish, and test. They look heaps cooler than normal cd surfaces:

Image hosting by Photobucket

These mirrors work brilliantly, I reckon they must reflect at least 90% of the light. Now that we've got good mirrors, we can start with the cool stuff.

Saturday, April 15, 2006

An overview

There are disappointingly few low tech, low cost laser scanning systems out there these days. All that is going to change with this project. I aim to create a small, portable, sub-$50 laser projector that can display useful resolutions. It doesn't have to be colour, it does have to have different brightness levels. Ideally, I would develop this to the point where I can take a laptop with a broken screen and turn it into a roaming projection system. Realistically, I give myself a 5-10% chance of success. That's enough for me.

Topping my list of ideas in terms of practicality and suitability is VGA pixel stream driveo piezo mirrors or acousto-optic deflectors. These can diffract light, letting me control the reflection angle of light via oscillation frequency - if I can get good enough equipment this is a real possibility. To this end, I've ordered a bunch of piezoelectric sound wave transducers - the should be here sometime next week.

Coming a close second, and something I'll definitely have to play with if only to find out whether it works, is sound driven displaying. If I assume my computer sound can output a maximum of 22khz, then it must have a sample rate of at least 44,000 samples/second (two samples to describe one wave). So in theory, I could use that to differentiate a maximum of 44,000 pixels per second -- using stereo channels to control horizontal and vertical. This limits use because we need at least 30 refreshes a second, so we could display something in the order of 50*30 pixels before we had to resort to nasty tricks to compress the information. Of course, this approach scales up, so we could use USB sound outputs to drive a whole bunch of these and get decent resolutions. The trick is working out how to use the waveforms to draw the pixels efficiently.