Wednesday, 15 September 2010

DIY Laser projector

So yes! Hello!!! This time I built a laser projector, it was built using a toy laser pointer, a pillbox, a cooler fan and an arduino microcontroller.



Check out this video if you want to see it in motion (note that its a bit dark, but towards the end I turn on the lights)




Here is how it works!


In the picture below you can see the whole setup, the heptagon is a pillbox, its sitting on top of a cooling fan so it spins very quickly. Each side of the pillbox has a mirror that reflects the laser beam onto the screen.



Because the mirrors are moving the reflected laser dot sweeps the screen from left to right, because it does it very quickly your eyes actually see an horizontal solid line, in this case you see 7 lines one on top of the other because the each mirror is at an angle.

So I would get something like this:

-------------------------------------------------
-------------------------------------------------
-------------------------------------------------
-------------------------------------------------
-------------------------------------------------
-------------------------------------------------
-------------------------------------------------

if I turn off the laser at the right time, I could get to display something like this

-- -- -------- -- -- ----- --
-- -- -- -- -- -- -- --
-- -- -- -- -- -- -- --
-------- -------- -- -- -- -- --
-- -- -- -- -- -- -- --
-- -- -- -- -- -- --
-- -- -------- ------- -------- ----- --


Then with a little bit of software magic you can get the text to scroll, wave, and so on.

We are not there yet!

The spinning speed of the fan is very critical, any slowdown will cause the image to wobble, that is why I put this fins on the pillbox, when they spin they pass thought an optical sensor (pretty much like the one elevators have to keep its doors open when people leave or enter the elevator) A micro controller can use this data to compute the fan speed and adjust the laser blinking to the image looks correct.

Tricky part! (warning quite geeky stuff coming up!)

So how does the micro controller know when is the first mirror coming? The fins, because I glued them myself by hand, are not really equally spaced, some are closer that the others, the micro controller notices this and uses this info to tell which one is the first mirror... for example the two fins before the first mirror are a bit closer than the others.

That's all, I hope you enjoyed!


Other Laser projectors:

http://heim.ifi.uio.no/haakoh/avr/

44 comments:

Mau said...

wow! buenĂ­simo tu proyecto, te felicito, desconozco si ahorita hay concursos de Arduino, pero sin duda este serĂ­a un ganador. Saludos

James Kemp said...

Very Cool!

Help me understand, each mirror is at a different angle so that each mirror steps the beam down to the next line. Correct?

So, as the projector is moved away from the screen to lines move apart. Is this a problem at all?

Very nicely done,
Jim

Francisco said...

Yeah!! What is amazing is your project, you public de source code?

Raul said...

@James Kemp, the trick is to unfocus the laser so you get the laser beam to spread a bit, that way the lines don't move apart

@Francisco, yeah I can publish the source code, its quite simple. Publishing the source code would remove part of the fun which is to figure out things oneself :-)

Stephen said...

could the code not be simplified by using equal flag spacing, but making #1 be either wider or cutting a notch in it so it makes a double tap?

asdf said...

It is so cool !!! In the future i want to do one !!!! xDDD

Thanks for idea !!!!

Crispin said...

Sweet!

My next project then.

I played with spinning offset mirrors and lasers years ago. Now - time to throw a "brain" into the mix (Will be Netduino though, my current fad :) )

Chaitanya Chintaluri said...

Awesome! Will Try

Must have been a pain to orient the 6 mirrors...!

wouldn't having 6 lasers in a line instead make it easier?

Raul said...

@Chaitanya Chintaluri adjusting the mirrors was not such a big pain, the pillbox helped me a lot! I thought about having more lasers, my next step will be to add a second laser and see how it goes.. that woudl get me 14 lines of vertical resolution!

Reboot said...

Sweet!!

Lee Alder said...

Oh please give a hit to the source code. For an old RPG prgrammer try to learn the Arduino!

lee DOT alder AT gmail DOT com

Harvie said...

Is it blinking as on video in real? Or it's just slow camera? How much RPM does the fan have?

Harvie said...

BTW i just wonder how does this look when projecting on some more distant surface (eg.: 7-10 meters away). Can you please add some photos of maximal distances (during night is OK) that you are capable to project from? I know it will look bit lo-fi, but i guess the text will be still readable...

Raul said...

@Harvie

As for the blinking, this is the same blinking you get when you point with your camcorder to your tv, to the eye it looks fine

As for how far can it project, the farther the projector is from teh screen the more the energy of the laser gets spread, so at 1.5 meter of distance I get huge letters (.5meters) but I need the room to be perfectly dark, I'll try to get some pics!

Harvie said...

>so at 1.5 meter of distance I get huge letters (.5meters)

you can reduce the angle of mirrors

> but I need the room to be perfectly dark

you can buy some cheap green laser pointer toy with slightly higher power

> I'll try to get some pics!

THX :-)

skimmas said...

thank you for sharing this. I'll keep an eye for more pics

Tim said...

Ohh man!
I had been wanting to do this for ages!
And you beat me to it ;)
Nice work!
The mirrors at different angles is a fantastic idea!

Raul said...

Thanks!! The idea of tilting the mirrors in not mine though :-)

Crispin said...

with regards to monitoring the fan, could you not have used the hall sensor in the fan? Assuming it's a 3-wire fan.

Tim said...

No probs :)
I think I have very similar code to yours in my POV at the moment... it doesn't have any multiplexing... just clock, data, and latch (uses shift registers).

Over the next few days I am going to try and update the image data somehow wirelessly... either via rf or via ir... so that I can change the picture without having to reflash my avr - and hopefully without having to stop the POV rotating.

Just got to get my head around how to pump out data from my computer to the avr, and get the avr to store the data in an eeprom!

cheers from australia :D

Shawn Sims said...

nicely done...im working on something similar, but with a bit more powerful laser for writing text on buildings/clouds. Also im implementing some processing code so you can type and it will show in real time...would you mind sharing your code and i will happily shoot mine to you when its done. r.shawn.sims [at] gmail [dot] com ...thanks

Sam Aryasa said...

awesome project !

um ive a few question. did you cut the sides of the pillbox ? and how do you unfocus the laser ?

Sam Aryasa said...

ah nvm,
your picture explains my question

aravind said...

can u post circuit design for this??

Mike said...

Great Work guy ! I was looking for such kind impressive project and got it. Will definitely try it. Seriously, this would be amazing project for me.
business card scanners

Tana said...

great project. could you please send me the code and schematic to try it by my self...

sruthi said...

can u please mail the source code??? we are trying to implement this in our college...if u can please help us then reply soon....v tried hard to gt an idea bt didnt gt.

viveik said...

hey please send me full project report of DIY Laser projector.

i eager to make this please send on

vivek98260@gmail.com ....

MARVIN MARTIAN said...

COOL project!! :-). I've never done any programming in my life. I'm sure it's fun and I like to learn on my own so I agree with you on why you didn't share your code. But could you at least let me know what arduino model you used? Thanks!

MARVIN MARTIAN said...

What arduino model did you use? Could you let me know? Cool project!!

Daniel said...
This comment has been removed by the author.
Daniel said...

Could you send me the source code? I'd like to build this and would like at least a head start.
dmd@3e.org

Raul said...

My source code,
http://code.google.com/p/aguaviva-libs/source/browse/arduino/sketches/laserpojector/laserpojector.pde

please drop me a line if you do something fun with it :)

averagejoe said...

wow, very cool and cleanly done! I will try building asap :)

how do you feel this method compares to others such as the spectrabeat, and/or tinyprojector?

would really love your thoughts/input.

Regards, -David
andeanmusic@gmail.com

paul Scjkfaf said...

This is cool, can you help me make this?

How would you code this?

paul Scjkfaf said...

This is cool, can you help me make this?

How would you code this?

YoSoyYo said...

Love this project!!
I'm doing it on my own!

Thanks for the idea!

ikaz ibanna said...

hi raul great job my freind
i appreciate what you have done

i am working with something commercial , and if you like we can work togather on something

this is my email
ikazever at gmail : com

contact me for more details
i will wait for you email
and thanks for advance

Jeremy Stanger said...

I love this!! I'm going to have a go - the temptation is just too much to resist!

Even if I can't get it working I reckon I can get the parts for less than £15. Nothing ventured, nothing gained!

Raul said...

Excelent! Go for it and let me know how it goes! :)

Ali Faeghi nezhad said...

hi dear

I need your help. please send me project Schematic (Laser video projector http://heim.ifi.uio.no/haakoh/avr/) such as proteus file, image of schematic, pcb file or any something for me at hanybol@gmail.com

the project very wonderful for University project







thank you

Matteo Landolfo said...

Very nice project! I am going to realize it for the school. Some hints in order to build it? I am using mirrors at difference angles, but I can not be able to realize the base to put mirrors up...

Matteo Landolfo said...

Very nice project! I am going to realize it for the school. Some hints in order to build it? I am using mirrors at difference angles, but I can not be able to realize the base to put mirrors up...

Ola Nasralla said...

Mr.Raul
can you tell me which type of micro controller and fan that you used in your project :)