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/

49 comments:

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

    ReplyDelete
  2. 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

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

    ReplyDelete
  4. @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 :-)

    ReplyDelete
  5. 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?

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

    Thanks for idea !!!!

    ReplyDelete
  7. 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 :) )

    ReplyDelete
  8. 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?

    ReplyDelete
  9. @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!

    ReplyDelete
  10. 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

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

    ReplyDelete
  12. 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...

    ReplyDelete
  13. @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!

    ReplyDelete
  14. >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 :-)

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

    ReplyDelete
  16. 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!

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

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

    ReplyDelete
  19. 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

    ReplyDelete
  20. 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

    ReplyDelete
  21. awesome project !

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

    ReplyDelete
  22. ah nvm,
    your picture explains my question

    ReplyDelete
  23. can u post circuit design for this??

    ReplyDelete
  24. 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

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

    ReplyDelete
  26. 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.

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

    i eager to make this please send on

    vivek98260@gmail.com ....

    ReplyDelete
  28. 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!

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

    ReplyDelete
  30. This comment has been removed by the author.

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

    ReplyDelete
  32. 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 :)

    ReplyDelete
  33. 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

    ReplyDelete
  34. This is cool, can you help me make this?

    How would you code this?

    ReplyDelete
  35. This is cool, can you help me make this?

    How would you code this?

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

    Thanks for the idea!

    ReplyDelete
  37. 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

    ReplyDelete
  38. 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!

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

    ReplyDelete
  40. 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

    ReplyDelete
  41. 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...

    ReplyDelete
  42. 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...

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



    ReplyDelete
    Replies
    1. I used an arduino and a regular fan I took from a broken computer, nothing special

      Delete
  44. Hello Raul, how are you doing? I am a brazilian student and i'm trying to do a project just like yours but I have a doubt. In wich port the cooler fan is plugged in? And can you send me a picture of the electric system of the arduino connected to the other parts?
    I will be very grateful with your attention. Thank you,
    Jordi G. Gimenez - gimbernaujordi@gmail.com

    ReplyDelete
    Replies
    1. The fan is just connected directly to the power supply, 5V in my case.

      Delete
  45. Raul, what is the function of the second laser in the program? I understand that the first one is the laser that is reflected in the mirrors. How about the second one ?

    ReplyDelete
    Replies
    1. Second laser? There is no second laser, there is only one :)

      Delete