It was spring break last week so I had some spare time to kill.  I wanted to do a project that would be done fairly quickly and still have some time to study for classes resuming.  I do have several other projects going that I could have worked on, but I figured a laser light show would be appropriate for the occasion, being spring break and all.  Actually, I have no idea if spring break party goers are the least bit interested in seeing laser light shows, but I am interested in getting some motors spinning programmatically.  And to seal the deal there is a new cat in the mix over here so I have buckets full of laser pointers.
A cigar box made a really nice case for this project due to the nature of mounting the motors.   Initially I was going to use a Fossil watch tin but it proved too small for everything to fit nicely.  Cigar shops sell empty boxes for a few dollars each. Here is an overview of the theory of operation.  When a mirror is mounted on a motor shaft so that the mirrors' face is less than perpendicular and less than parallel to the motors axis of rotation and a laser is reflected off of this rotating mirror, the reflected laser light will trace a circle on a projection surface and dependent on the speed of the motor being high enough, the laser path traced will appear to be a solid circle on the projection surface (a wall in my case) due to the persistence of vision.  You can think about it like a laser cone being reflected off of the mirror.  If you stopped there, with one motor and mirror, you would have a laser light show that can draw circles.  If instead, you aim this reflected "laser cone" onto another one or more motor/mirror pairs, very interesting shapes begin to appear and change too, depending on the relative speed of all the motors.
I decided on 3 motors/mirrors for my laser light show.  I got the motors with nice metal gears on their shafts from Ratshack.  The gear was helpful in mounting the mirrors which are just hobby mirrors from some craft store.  They are not first surface mirrors as you would have expected in an optics related project, but I did not witness any ghosting as I was anticipating.  I think this is due to the relative brightness of the laser beam in a dark room.
I first mounted (epoxied) the mirrors onto the motor shaft at too large of an angle.  I had carefully setup a jig that would hold a mirror at an angle and centered on the motor shaft to be glued.  With the deviation of motor rotation axis and mirror surface too far from perpendicular the reflected laser cone just shot off the edges of the final mirror.  In the end, I used a sharpie to mark the center of the mirror, squirted some hot glue on the back of the mirror and stuck the motor with gear on the center mark, holding it as near to perpendicular as my eyes could tell until the glue dried.  This worked great and was much simpler than I had tried to make it.
After the project was complete, I projected circles onto a wall, one at a time with each mirror.  I measured the diameter of the circle and the distance to the wall to empirically derive the angle of the mirror face to the motor's axis of rotation to be 87.55 degrees, 87.74 degrees and 86.12 degrees, for the first, second and third mirrors respectively.
Here you can see a laser being reflected through the three mirrors.  And in the next photo how I set up the 3 motors/mirrors to be 45 degrees from each other.  The laser beam "enters" the lower left mirror, reflected to the top left mirror then, on to the final mirror on the right and out, straight down, 90  degrees from where it started. And here it is all set up ready to use.  You can select manual mode where one of three potentiometers is assigned to one of the three motors to control its speed via PWM.  The scale potentiometer scales the PWM output so that you can run the whole system at say 50% or 82% etc of full speed.  In automatic mode a PRN generates the motors PWM values, it too is scaled by the scale pot.  Also, in automatic mode the third motor potentiometer now controls the fade delay, setting how long it takes the motor to get to its new PWM value. Here are a couple of videos.  The first one shows the output while running in automatic mode.  The second video is a slide show of photos of the output.  There are more videos on my YouTube channel of the laser light show if you would like to have a look; these are just two.
A couple things I noticed about my setup are that one of the three motors whines at lower speeds.  I fully expected the whole thing to be a little noisy, and to be fair in person it is not loud at all.  I suspect the one motor has looser windings than the rest allowing them to vibrate more than the others.  The PWM frequency I had to drive the motors at is well within the human audible range.  I had initally tried a higher PWM frequency but could not get the motors to spin.  I think this is an issue with motor inductance.

As you can imagine video and pictures of the laser light show have framerate issues that produce interesting effects but aren't that great to look at on youtube.  In person, the laser is much brighter and it does produce some pretty interesting images.  Some almost appear three dimensional.  It was a fun project, but I doubt I will get that much use out of it.  I certainly wont be sitting there staring at it for hours on end, but on the upside to that, if I look in a mirror I probably won't see my face melting off and flowing into a river that a unicorn is drinking from.  Tune in, turn on, and drop out.

Code and circuit.  On the circuit side of things there really isnt much to talk about.  I included a description of the hardware in the comments in the program that has a bit more detail, but basically the ATMega328 reads a pot and outputs a PWM signal that triggers the gate of an IRF510 mosfet for each motor.  The motors needed 3vDC so I whipped up a quick power supply with an LM317 and a heatsink.  thats about it really.
And here is the code.

A reader asked if I would make a schematic available.  I didn't have one so I just drew this one up from the text description in the program, of the circuit, that I wrote when I did the project..  This schematic was drawn after I built the circuit.  I did not use this schematic while I was building this project, but I believe it to be correct.
[null, {"document_url": "http://petemills.blogspot.com/2011/03/cigar-box-laser-light-show.html", "unformatted_src": "https://lh5.googleusercontent.com/-fX1rUGbMHVQ/TXqVxAam8uI/AAAAAAAAAfU/BrGjd-iC6FE/s320/012.jpg", "src": "https://lh5.googleusercontent.com/-fX1rUGbMHVQ/TXqVxAam8uI/AAAAAAAAAfU/BrGjd-iC6FE/s320/012.jpg", "rendered_width": 320, "rendered_height": 191}, null, {"document_url": "http://petemills.blogspot.com/2011/03/cigar-box-laser-light-show.html", "unformatted_src": "https://lh5.googleusercontent.com/-_U5CRzyIZBs/TXqdFTrFZYI/AAAAAAAAAfY/XpJHto6Ipws/s320/008.jpg", "src": "https://lh5.googleusercontent.com/-_U5CRzyIZBs/TXqdFTrFZYI/AAAAAAAAAfY/XpJHto6Ipws/s320/008.jpg", "rendered_width": 320, "rendered_height": 191}, {"document_url": "http://petemills.blogspot.com/2011/03/cigar-box-laser-light-show.html", "unformatted_src": "https://lh6.googleusercontent.com/-sJovUmIfKa0/TXqeSCI_63I/AAAAAAAAAfc/5uxiwaM_vvo/s320/026.jpg", "src": "https://lh6.googleusercontent.com/-sJovUmIfKa0/TXqeSCI_63I/AAAAAAAAAfc/5uxiwaM_vvo/s320/026.jpg", "rendered_width": 320, "rendered_height": 191}, null, {"document_url": "http://petemills.blogspot.com/2011/03/cigar-box-laser-light-show.html", "unformatted_src": "https://lh5.googleusercontent.com/-6UP7AQA-7nw/TXqgLLoeIqI/AAAAAAAAAfg/lRF-vfWz_EM/s320/006.jpg", "src": "https://lh5.googleusercontent.com/-6UP7AQA-7nw/TXqgLLoeIqI/AAAAAAAAAfg/lRF-vfWz_EM/s320/006.jpg", "rendered_width": 320, "rendered_height": 191}, null, {"document_url": "http://petemills.blogspot.com/2011/03/cigar-box-laser-light-show.html", "unformatted_src": "https://lh4.googleusercontent.com/-4J241tzERmc/TYfNhyUhGpI/AAAAAAAAAj8/XAezwZGMQw0/s320/Laser+Light+Show+Schematic.jpg", "src": "https://lh4.googleusercontent.com/-4J241tzERmc/TYfNhyUhGpI/AAAAAAAAAj8/XAezwZGMQw0/s320/Laser+Light+Show+Schematic.jpg", "formatted_filename": "Laser Light Show Schematic", "rendered_width": 320, "rendered_height": 194}, null, {"document_url": "http://petemills.blogspot.com/2011/03/cigar-box-laser-light-show.html", "unformatted_src": "http://2.bp.blogspot.com/-p97s3yUOy5Q/Tlo4Nky1TII/AAAAAAAAByg/6JOV_WXFfSA/s320/IMAG1664.jpg", "src": "http://2.bp.blogspot.com/-p97s3yUOy5Q/Tlo4Nky1TII/AAAAAAAAByg/6JOV_WXFfSA/s320/IMAG1664.jpg", "formatted_filename": "IMAG", "alt_text": "Image"}, null, null, {"document_url": "http://petemills.blogspot.com/2011/03/cigar-box-laser-light-show.html", "unformatted_src": "http://2.bp.blogspot.com/-cAtq0jAsbdM/VWPek5jyv-I/AAAAAAABiPs/2-UrhS0ieHM/s640/20150525_195643.jpg", "src": "http://2.bp.blogspot.com/-cAtq0jAsbdM/VWPek5jyv-I/AAAAAAABiPs/2-UrhS0ieHM/s640/20150525_195643.jpg", "alt_text": "Image"}, null]