====== RGB Laser Projector ====== {{template>:project:infobox| name=RGB Laser Projector| image=laser_projector.jpg?200| founder=[[user:TomSuch]]| interested=[[user:ruza]]\\ [[user:axtheb]]\\ [[user:czestmyr]]\\ [[user:harvie]]| status=done}} ~~META: status = done &relation firstimage = :project:laser_projector.jpg ~~ ===== Idea ===== I've got idea, that we can make VERY simple laser projector using laser pointer, some little mirrors, two simple motors (that are fast enough) and arduino or something similar. I don't want to use servos, because they are too slow (the image of smiley tooked 85 seconds of exposure actually. We need something more realtime...). I can imagine some smart-enough setup of mirrors and two synchronized motors, which will scan the laser beam regulary and evenly across rectangular shape (on the wall) and they will be not driven in any way (just mechanically synchronized). There will be also some two "reset" contacts or sensors that will let microcontroler know when the laser beam reached the first row and first column. microcontroler will use the interval between last two resets to determine how long is one pixel on time axis. This is similar design to composite video, but reset signal will come from projector instead from video signal itself. So the microcontroller will only drive the laser based on it's approximated possition. Goal of this design is that we'll be able to use different motors or change the motor speed (higher speed = better maximal resolution) whithout need for changing the code or calibrating something... Another possibility is to use custom galvanometers (Maybe we can reuse loudspeaker or galvanometers from harddrive) to move the mirrors. It's fast, but it needs some complex driver. Probably it will need DAC, since it's fast enough to be affected by [[..:arduino]]'s PWM. It can be also driven by some external signal source, but it will be hard to synchronize (maybe we can drive it using souncard). I like the idea of encoding everything into output of PC audiocard - X/Y axis to L/R speaker and brightness can be probably encoded (on some high frequency which will not affect the galvanometers - we can also filter higher frequencies out later) somehow too... Then we'll be able to drive it even using portable mp3 player (with hi-quality mp3s and properly selected frequencies). ===== Goals ===== It should be * cheap to build using of-shelf products * easy and fast to build * capable of displaying simple images (smileys,brmlab logo,etc...) and 1 to 3 letters * powerfull enough to project some recognizable "lo-fi art" on wall during night * self calibrating ===== TomSuch variant ===== [[user:TomSuch]] made an RGB laser projector by himself, though aimed mainly at generating 3D effects in fog. Has been demo'd in brmlab many times, also during [[event:opening_party|]] During visit of Felipe Sanches in Dec 2010 from Garoa Hacker Clube in São Paulo many improvements starting to happen and a lots of new ideas were born, mainly because current solution has been driven by [[http://www.chinesedepartmentstore.com.cn/osc/product_info.php/products_id/1915|proprietary hardware and software]]. We are now working on open source variant of that software, expanding posibilities of both, hw and sw. Next step would be probably design our own hardware. We are now able to quickly process SVG, [[http://grafittimarkuplanguage/|GML]] and [[http://laserboy.org/ilda_file_format.html|ILDA]] formats. We have yet another funny things we can do with projector like display analog clock wallsaver, play Pong or Rocket game, publish source of our client sw and let people draw remotely and simultaneously. On of the other ideas is make an webpage using [[http://code.google.com/p/svg-edit/|svg edit]] ([[http://svg-edit.googlecode.com/svn/branches/2.5.1/editor/svg-editor.html|demo]]) where visitor can draw what he/she likes, click Publish and that picture will be published via Laser projector and also to the web gallery. We could also have a webcam to stream results. TomSuch variant was presented on [[http://events.ccc.de/congress/2010/wiki/Brmlab|27c3]]. We are now working on technical improvements of it. ==== TODO ==== 1 -> read the STC89C51 datasheet (it is the 8051 microcontroller used in the laser controller) 2 -> figure out how to perform a binary dump of the firmware 3 -> compare it to the usb sniff of the initialization of the device after a power off 4 -> figure out the firmware loading protocol and fix our implementation of it * investigate * http://www.linux-laser.org/ * http://www.linux-laser.org/bilda/bilda-hw.php?lang=en#hardware * http://www.hugovil.com/fr/emu8051/index.html * http://marcansoft.com/blog/2010/11/openlase-open-realtime-laser-graphics/ * http://jucablues.blogspot.com/2010/12/coordinating-efforts-towards-free.html Analog clock, hardware shots and software design discussion: {{youtube>DFW6pRwONys}} Our first watchable success using open source sw: {{youtube>8y-L1X5feho}} First Pong version, also discusing how to draw numbers {{youtube>QC16TLzHivw}} ===== Harvie's experiments ===== {{youtube>_dz3dOI8rZ0}} ===== Cheap Galvos ===== * http://spt06.chez-alice.fr/00/lasers.htm * http://spt06.chez-alice.fr/00/scan2.htm (very cool idea using single mirror :-) * http://spt06.chez-alice.fr/00/scan1.htm * http://www.instructables.com/id/Arduino-Laser-Show-with-Full-XY-Control/ ===== Inspiration, Future or obsolete ideas ===== Imagine something like this, but much (at least 425x) faster (this is the 1/85FPS projector driven by servos) and maybe with slightly lower resolution (to reach the speed needed for desired [[http://en.wikipedia.org/wiki/Persistence_of_vision|POV]] effect): [[http://www.flickr.com/photos/kap4001/3093974218/|{{..:laser_projection.jpg}}]] * http://elm-chan.org/works/vlp/report_e.html * http://codinglab.blogspot.com/2010/09/diy-laser-projector.html * http://hackaday.com/2010/09/15/laser-marquee-projector/ * http://heim.ifi.uio.no/haakoh/avr/ * http://www.gme.cz/cz/f-laser-635-5mw-p758-008.html (economical laser module with optics - 3V, 5mW = 5x brighter than cheap red laser pointer) * http://zbozi.cz/items?q=zrcadlov%C3%A1+koule&order=cheap (cheap small [[http://fm-store.eu/50100110-zrcadlova-koule-5cm-blister.html|disco ball]] can supply lots of small mirrors) * http://laser-shop.cz/34-5mw-cerveny-laserovy-modul.html (seems durable and reusable) {{http://www.gme.cz/_dokumentace/dokumenty/758/758-008/pct.758-008.1.jpg}} {{http://fm-store.eu/50100110-3348-large/zrcadlova-koule-5cm-blister.jpg}} {{http://hackadaycom.files.wordpress.com/2010/09/laser-message-scroller.jpg?w=400&h=300}} {{youtube>03hpykIyNmA}} {{http://heim.ifi.uio.no/haakoh/avr/projector-thumb-2.jpg}} {{http://heim.ifi.uio.no/haakoh/avr/projector-thumb-3.jpg}}