Introduction: Micro LASER Show With a CD Lens Mechanism

Hello!

This is the cheapest and easiest way to make a two-dimensional laser show projector.

It uses just one pivoting mirror, powered by the focusing mechanism from a CD or other optical drive.

They said it couldn't be done, but Ljudmila's skunkworks GRL research facility delivers anyway! ;) This design was first discovered in 2006 and sucessfuly made by several beginners at the Laser Tags workshop in 2007.

I hope this Instructable, my first, will help to spread it around and let all of you make, test and improve it!

Here shown using an Arduino for control, but you could hook some other signal into it easily, from a music player, a soundcard or some other electronic circuit.

Step 1: Gather Materials and Tools

You will need:

Materials:
  • a broken CD-ROM, DVD or other optical drive (you only need the lens focusing mechanism, so you get lots of other cool parts left over)
  • a LASER pointer of your choice (those small chinese ones will do fine too)
  • the smallest and thinnest mirror you can find. we used small round mirrors meant for making mosaics. (bill buxton recommended trying mylar.) you can also use the very small mirror found inside the optical assembly of a CD drive (under the lens, sitting on an angle)
  • a short piece of stiff wire (cut off leg of LEDs work for this)
  • some soft wire for signals
  • a stable housing - some kind of plastic box. bonus if it's transparent
  • signal source - I recommend an Arduino as it's easy to use and program

Tools:
  • cross head screwdrivers, small and very small
  • soldering iron for electronics
  • wire cutters
  • glue gun (or other glue)
  • sharp pin for making a hole
  • pliers can come in handy

Step 2: Extract Lens Actuator From the Drive

You'll have to unscrew a looot of screws to disassemble the CD drive. If you have no better idea, just remove all screws you can find and try separating the components. In the later stages it might sometimes be necessary to apply brute force, but usually it's possible to separate all of the surprisingly many parts of a drive without damaging them.

The picture shows what you're hunting for. It's the moving lens part of the optical head assembly.

It can look a bit different, depending on your drive. it has a static back and moving top part. Inside the moving part are two coils, one moves the lens up and down, the other one left and right. Permament magnets are fixed to the static back.

If you're lucky, you will just be able to unscrew it. But sometimes you won't be able to separate it from the bigger optical head with the lasers and pickups inside. That's OK too.

See the wires in the last picture? That's what you'll add next!

Step 3: Solder Wires to the Lens Head


Identify the contacts on the cd lens - there are four, a pair for each of the two axes.
they are connected to the flexible wires holding the moving plastic part with the lens and the coils.

Strip the ends of four wires and solder them to the contacts... be patient, these are small points to solder to.

Strip a short length at the other end of the wires and coat them with solder to make them stiff and fit better with the Arduino.

Step 4: Glue the Stick to the Mirror


Put the mirror shiny side down on the desk. Hot-glue the short wire to the back surface of the mirror vertically.

The resulting piece has a T shape if the mirror side on top, as it will be in operation.

Step 5: Mount the Lens Head to the Housing


Mount the lens head upright to a side wall of the box you're using, with a few millimeters clearance to the top ("ceiling") of the housing.

The lens itself, which used to be looking up in the cd drive, should be pointing horizontally from the wall towards the center of the box.

Step 6: Mount the Moving Mirror


Poke a small hole in the housing right above the lens head.

Stick the wire holding the mirror into the hole until it touches the lens head.

Fix the wire to the head. we used a sticky putty-like glue made for putting posters on walls. A small ball 2mm across is enough. It can also be done with a small dab of hot glue or superglue.

Let it settle for a bit, then carefully move the head around a bit with your finger. The mirror should tilt but stay attached to the head.

If you made the hole too big, glue a layer of strong sticky tape over it, and poke the hole in that.

Step 7: Connect the Signal Source

If you haven't yet, get your hands on an Arduino board. Download the Arduino software and run some examples to get comfortable with the process. Then program the Arduino board with the code below.

Stick the wires coming from the lens head into sockets 8,9,10 and 11 on the Arduino.
It is important to put the pair of wires connected to one coil into sockets 8 and 9 and the wires from other pair in sockets 10 and 11.

These are chosen because the pins 9,10 and 11 on the Arduino have PWM capability, used by the analogWrite command in the code.

Apply power and hopefully your mirror will happily wiggle around!

For first test you don't need to fix the Arduino to the housing. You should have made the wires long enough for it to sit comfortably beside the box.

If you've used the Arduino, you can add a 9V battery like shown here to make your device portable. You can safely power it from your computer's USB power if you don't have a battery.

The Arduino source code follows:

/* LASER TAGS - CD LENS MICRO LASERSHOW (Copyleft) 2006 by linefeed @ Ljudmila.org GRL */ int t=0;int inc=4;int pause=1000;int x,y,x0,y0,x1,y1;int pt,phase,loopcnt;int nshapes=6;int shape=0;int shapes[20]={0,4,7,9,11,20, 24};int ptsx[50]={-250,250,250,-250,  -250,250,0,    -250,250,    -250,250,    -230, -230 ,-15, -11, 220, -17, -17, -15, 150,   -250,250,-250,250  };int ptsy[50]={-250,-250,250,250,  -250,-250,250, -250,250,    250,-250,    -220, 200,  200, -200, -200, -210, -210, -35, -40,    -250,-250,250,250  };//pins //  8,9 - vertical // 10,11-horizontal void setup(void) {  // initialize inputs/outputs  pinMode(8,OUTPUT);  pinMode(9,OUTPUT);  pinMode(10,OUTPUT);  pinMode(11,OUTPUT);    digitalWrite(8,LOW);  digitalWrite(10,LOW);  }void setPos(int x, int y) {   if (x>=0) {     digitalWrite(10,LOW);     analogWrite(11,x);   } else {     digitalWrite(11,LOW);     analogWrite(10,-x);   }   if (y>=0) {     digitalWrite(8,LOW);     analogWrite(9,y);   } else {     digitalWrite(8,HIGH);     analogWrite(9,255+y);   }}void loop(void) {  //next shape     if (loopcnt>100) {    shape=(shape+1)%nshapes;    loopcnt=0;  }    //tick phase  phase+=inc;    //next point  if (phase>=100) {     phase=0;     pt=pt++;      //loop points in shape    if (pt>shapes[shape+1]) {      pt=shapes[shape];      t=pt*100;      loopcnt++;    }        x0=x1;    y0=y1;        x1=ptsx[pt];     y1=ptsy[pt];   }      //current coordinate  x=((x0*(100-phase))+(x1*phase))/100;  y=((y0*(100-phase))+(y1*phase))/100;      setPos(x,y);  delayMicroseconds(pause);   }

Step 8: Shine Some LASER Light on the Mirror

WARNING: LASERS ARE NOT TOYS!
Make sure you do not point them at yourself or your friends. With reflections the path of the laser can be somewhat unpredictable. Always be careful, you can seriously damage your eyes even with low power lasers!

Keeping this in mind, take the laser pointer in your hand and shine it on the mirror, so it bounces off it and hits the wall. The spot will dance around as the mirror wiggles and you will see a persistence-of-vision image if it cycles fast enough.

Happy times - I hope - your projector works!

To finish up, mount the pointer permanently on an angle looking down, pointing at the mirror. Here you will need some ingenuity. The details of this will depend on what you're using for the housing and what else you got at hand. In the pictures you can see the part used in the original cardboard housing that Bjorn of Origatronica fame helped me make.

The button is most easily kept pressed with some kind of a clip. Probably you can use a clothes-peg.

Lasers work best, but If you don't have one, you can try to use the sun as a light source. Or a strong spotlight shining from reasonably far away.

Step 9: Go Out and Tag Something! (and Report Your Results)

If you followed this instructable to the end: Congratulations! You just made a device with great potential for light graffiti.

Now find a nice big wall in town that just calls for esthetic improvement trough animated laser tags!

Take a camera with you and record the fleeting images with a long exposure timlight graffiti expressions.

I hope i have described everything clear enough! Do let me know of your success or troubles while making and using these.

The Arduino code will give you a head-start. The patterns are written as series of coordinates to let you add new ones. Many improvements are still possible in the code. I suspect the quality of the picture and complexity of possible shapes can be much improved with somewhat smarter code driving the actuator.

You can experiment with other signal sources, stereo music players will probably be interesting.

Another idea for improvement you could try is to control the laser power with the Arduino too. This way you could program discontinuous patterns by turning the laser on and off at the right moments in the cycle.

The Instructables Book Contest

Participated in the
The Instructables Book Contest