This laser message scroller is built with inexpensive parts. The heart of [Raul’s] system is a spinning pill-box with eight mirrors on it. Each redirects the laser to a different vertical portion of the projection surface. There are eight small arms on the apparatus that each break the beam of an optical sensors as it spins, facilitating the precise synchronization needed to generate the projected image correctly. In the video after the break we can make out what looks like an Arduino controlling the system. This makes sense as it’s easy to connect the laser pointer and sensor, and the USB connection allows for the streaming of messages to the system.
Want to see a more complicated setup? Check out the POV laser projector from a few years back.[youtube=http://www.youtube.com/watch?v=03hpykIyNmA]
fuuu.. that’s a brilliantly easy way to get the y-axis.
yeah thats just too easy to think of!
i always thought of using a mirror from a laser printer for x-axis and some kind of actuator for the y-axis. but this is waaay easier. nice!
one thing to notice: the laser diode does not like to be turned on and off quickly! would be better to build a real driver instead of just triggering the original one. but hey, they’re dirt cheap =P
Great idea to use a pill box (I wonder where I could find a pill box like that here). 7 scan lines are not really satisfactory though, I’d begin feeling satisfaction at between 16 and 64 scanlines ;) I think in reality alignment of mirrors is going to be a real problem for that many scanlines however, regardless if it’s a simple mirror drum or Mihaly-Traub scanning setup. Probably it would even depend on ambient temperature.
Mowcius reminds himself again that he must submit projects when he sees them (like some time ago…)
It was a nice project though.
Hmm you could always make more than one and stack them to get more than 7 scanlines. Id balance that aperture and gear up a HDD motor for faster refresh.
Throw on two lasers at the same set of mirrors, aiming one slightly above/below the other.
Bam, double the resolution while maintaining the scan rate and brightness. Diodes are cheap. Hell do 4.
I thought this seemed familiar.
http://hackaday.com/2007/01/04/avr-laser-projector/
Aha. Excelent setup!
I hope he has those mirrors stuck nicely. I already had a flying mirror one time and it was *NOT* pretty.
Safety aside, I think it is still simpler to control two tiny mirrors using a magnetic field. With strong magnets and magnetic field, the mirror inertia shouldn’t be a problem. Of course with this setup, one can get a pretty decent resolution very easily.
Just like John Logie Baird style tv!
@Ryan: using 4 lasers is the easy way out :) I think I’ve seen a project somewhere with one laser pointer per scanline.
@stealthmonkey
i wouldnt think it would matter if you turned it on or off, i was under the assumption it was like an led in nature. do you have any sources?
@andres It depends on the laser diode. “Chinese” diodes just light up with whatever crap you throw at it, they are not very efficient. With more powerful lasers, you need the correct forward voltage to light it up and then supply a stabilized (usually lower) one to keep it lit. Not doing so, will reduce diode’s life and efficiency.
I did the very same project last weekend during a convention . i was planning to do a writeup and post it, but this setup has much better resolution than mine, though no details.
my goal was to use the built-in hall-effect sensor inside CPU fans to make the project even simpler… but it seems that this is almost impossible, because of delay accuracy –
if your average cpu fan spins at ~3500rpm, this means 17ms per rotation. now divide that by the number of pixels, 128 per line X 8 lines, you get 16us per pixel. now consider that these delays have errors, which add up… i used the new micros() command for measuring RPM and delaymicroseconds() for the pixel delay itself, but found a more accurate WaitMicroseconds() on the forums, which can get down to 500ns resolutions if you tweak it slightly. it disables one of your PWMs for the timer. Raul solved this elegantly by adding more “fins” – each fin triggers the interrupt routine once more. so the CPU has more times to correct itself according to the real world. with my setup, i was able to get about 213 pixels per full mirror rotation, which translates to 26*8 resolution :(
actually, since the arduino has 2 interrupts available, it’s possible to use one for “full rotation” and one for “new mirror” and do away with software sorcery… thanks for the inspiration!
@andres
even chinese diodes need some sort of driver, and that’s what they come with when put together as a laser pointer. (okay, i’ve seen a really crappy one without one, but thats just not how to do it even if you’re a chinese engineer). the drivers in cheaper laser pointers (7$ green) do actually work, but theyre not really nice and whats most important for our application here is that the have no ability to ttl control the laser diode (“blanking”). so what you’d want to do is biuld some sort of laser diode driver that acts as a constant current source and has the possibility to dim the pumping laser diode down to a level where it’s not enough power to pump the crystal in a “diode pumped solid state”, or “DPSS” laser.
@tomas: the time is ripe to ditch Arduino libraries and learn the real hardware?
Sparkfun sells a TTL laser diode module, I’ve never used it, but I can’t complain about any of the stuff I’ve bought from them…
@svofski: I totally agree. it is actually #758 on my list of things I really need to do :)
@tomas: best luck to you with all those things ;)
You are a genius! This super simple way to get a laser point grid is breathtakingly elegant in it’s simplicity. Way to go!
Nice. However the related blog is more of a block diagram,, than a full schematic. Raul seems to be somewhat adverse to publishing the source code. That makes it difficult for those who can handle figuring out the electrical, electronic, mechanical portions, to duplicated the project. Coding is not something many do on a regular enough basis to justify, investing the time to learn how.
7 morrors 7 lines. he uses 1 mirror for controlling each one line. seems like.
calculate the rpm of morror disc. and divide each frame to 7 (or 8 if you use empty sensing block) . then divide ech frame to frames you will use on line.
it cann be used as serial projector by adding some message listener to arduino that translates pixels to this.