Projects > Post your projects

Laser Scanning Display Project

(1/14) > >>

ElectroNick:
I'd like to start this new thread to share build notes and other materials for a not-yet-finished at the time of this writing project that started as a collaboration with another forum user Georg in another thread. Thank you Georg for the project idea!

The laser scanning display project is inspired by this YouTube video by user npaltmp
I could not find more info about the project other than the author's very nice presentation of its features and I wanted to make some changes, so I started my own from scratch.

The initial project requirements I am trying to adhere to were:

* use 8 mirror faces
* use mirror materials other than glass
* use HDD spindle motor or similar BLDC for the rotating mirrors
* use TTL controlled laser diode driver
* have Arduino act as a USB-connected character display device with potential future integration with LCDProc
I've done several things on this project before starting this message, and the current state of the project is in the picture attached to this post.

I have decided to stick to Georg's suggestion of using pieces of split CDs for the first surface mirrors required in this project. Please note that the trick only worked for me on DVD-R blanks, not CD and not anything factory-made. Additionally, only one brand of DVD-R blanks could separate without tearing up the mirror surface (the aluminum layer that gets burned when the laser records the disk). I used Playo brand  single layer 8x blank DVD-R disks (previously recorded) . Nothing else worked. If you find another brand that splits well for this purpose, please post here. Playo disks split well and also cuts well just by scissors - very convenient. My issue here - it's an older brand, I don't have any more of them left and don't know who still sells them, so any data about alternatives is appreciated.

I have attempted to create the mirror base from sheet metal but that attempt had failed for I could not devise a way to carefully control the angle of each mirror. As a result of that attempt, I've decided to create a 3D part and have it printed by Shapeways. The part that I have created is available for download/order at Shapeways here: laser mirror holder. This link leads to the holders that has surfaces for holding mirrors at 0.25° angular difference. I am also trying a similar holder with surfaces at 1° difference.

I have already received the 1° holder and tried it with some encouraging result although they aren't perfect. I am observing a possible divergence from the required angle because the layer of super glue that holds the mirror pieces to the base could not have been applied evenly. So, be very careful with glue, especially with an even more precisely tuned 0.25° holder.

As for the HDD, I ended up using a scrap 2.5" (laptop) HDD for the motor - it appears to have the right size and torque.

The HDD motor is driven at this point (uncontrollably) by a spin up circuit from here. The circuit is very simple and works a treat but not without its downsides: first of all, it's not auto-starting (i.e. you need to give the rotor a not-so-slight push) and second, when it runs, it flies! I am seeing RPMs in excess of 3,000 for sure at 7.5V power and at higher voltages (9V+) well over 5,000RPM. This is not safe for any part of the device and the problem is exaggerated by the mirror holder not being a symmetrical shape (due to 8 mirror surfaces each at its own angle) is not well balanced and will probably break apart at high RPMs.

I have tried the laser diode output at high RPMs and it appears that the RPMs can be lowered without much problem for the functionality. I would like to keep it down to about 1,200RPM if the timing of the laser diode scanning allows.

This is it so far, haven't moved much further than that. This post was intended as a starter for a thread where I (and hopefully other people) will post notes and question about the Laser scanning display project

Georg:
Perfect new thread!

A remark to the mirror holder.
Probably it would be more weight balanced, if the mirror angle would change around the centerline of the mirror. In your part the mirror angle flip around the baseline of the mirror close to the buttom ring. (But the weight differences are most likely very small.)

There is another advantage: we can point the laser to the flipline of the mirror - at this line all mirrors have the same distance from the center of the HDD. That means the laser has the same distance to all mirrors.

In theory: when the laser sends pulses at the same time to every mirror outside the flipline the reflected point on the wall will not be one under the other - there will be a deviation to the side (because the distance of the reflections point on the mirror to the laser is different!).
I am trying to calculate it. The effect is smaller when the laser is more perpendicular to the mirror, but if we want to show a text line, there is always an angle. Assumption the reflection point is 5mm above the flipline - we have an angle of 0.25° for each of 8 mirrors, the maximum difference is 2°, - so the maximal mirror deviation is 2/360*10*3.14=0.17mm. If the laser points at 30° to the mirror, I can use cosinus 60° and come to 0.34mm deviation, if the projection field is in best case perpendicular. This will increase at the ends of the text line ...
So thats the theory ... in practise we will have much other influences !!
Finally I would say - don't care!! But if we need a new holder for any reason, I would change the holder!

I am still fighting with my HDD motor ....

ElectroNick:

--- Quote from: Georg on April 14, 2013, 02:07:07 PM ---Probably it would be more weight balanced, if the mirror angle would change around the centerline of the mirror. In your part the mirror angle flip around the baseline of the mirror close to the bottom ring. (But the weight differences are most likely very small.)

--- End quote ---
Good point. Perhaps this is not a final design of the holder, we'll see. I am also hoping that the 0.25° holder will be much better balanced than 1° simply because the difference is so small. In fact, looking at the computer rendering of the 3D part, it's quite clear just by looking at it that it should be much more balanced.

I've ordered myself the 0.25° holder last night. It takes Shapeways about two weeks to get one sent here in US. You may be able to get it quicker given that Shapeways is a Dutch company. Not sure where they ship from but if it's the Netherlands, it sounds like you may be able to get it in days instead of weeks. In the meantime, there's much else to do so the lack of proper mirror holder is not even a limiting factor for me right now.

ElectroNick:
Well, here are some notes for the work done today:

Spent some time hooking the photointerruptor sensor device up to an Arduino to measure the actual RPMs that the spin-up circuit provides.  Photointerruptor is basically a device with an IR LED that shines onto a phototransistor through a slot which can be, well, interrupted by placing something in between the IR LED and the phototransistor. If something blocks the line of sight between the diode and the transistor, its output is high. If the window is clear, the output is zero. In our case there's a slot  on the skirt of the mirror holder that opens the line of sight once per revolution.

I wrote a simple Arduino sketch that processes an interrupt every time the output of the sensor goes from HIGH to LOW which happens to be when the slot on the skirt comes in between the IR LED and the phototransistor. I include the text of the sketch below.

So, it turns out the spin-up does crazy RPMs. I clocked it at 4895 RPM using only 6V power supply. In fact, it hovers around 4000 RPM even at as low as +5V motor supply voltage. The spin-up circuit allows for PWM control, so that's my next step.

Also, had a nasty setback in the process of picking the right materials for the mirror holder. it turns out that the DVD mirrors warp, and pretty badly at that, only two days after I glued them onto the holder. The warping is pretty bad and my laser pointer on the wall is no longer a dot but a random shape. That's going to seriously mess up the output of the display.

I think I used way too much super glue to attach the mirrors to the sides of the holder and the glue had actually dissolved the material from which the holder was printed (ABS I think). This came after one mirror flew right off my previous holder and, hoping to avoid this experience again, I glued it too well this time. The mirrors are now absolutely, monumentally, affixed to the holder but, ironically, useless because of the warping.

Be extra careful gluing the mirrors. Avoid using too much glue and avoid glue that dissolves the material of the holder! I think I'm going to try to use epoxy next time. I know it won't dissolve the plastic but I'm not sure if I can apply a layer thin enough for it not to mess up the minute angular difference between the faces (I only have 0.25° to play with)   


--- Code: ---/*
Laser Scanning Display Project
See http://elabz.com/ for more project details and instructions
 */


byte slotPin = 2;
byte pwmPin = 9;
byte ledPin = 13;
byte laserOnPin = 7;
int serialDelay = 2000; // print out RPM valule every 2 sec
unsigned long serialPeriodNow;
unsigned long rotationTime;
unsigned long lastInterrupt;
unsigned int rpm; // caclulated RPM value

void setup() {
  attachInterrupt(0, calcRPM, FALLING);
  Serial.begin(9600);
  //pinMode(slotPin, INPUT);
  pinMode(pwmPin, OUTPUT);
  pinMode(ledPin, OUTPUT);
  pinMode(laserOnPin, OUTPUT);

}

void loop() {
digitalWrite(pwmPin, HIGH); // enable the motor


if((millis() - serialPeriodNow) > serialDelay)
{
 rpm = 60000000/rotationTime; //rotationTime = duration of 1 rotation in microseconds.
 Serial.print("RPM: ");
 Serial.println(rpm);
 serialPeriodNow=millis();
}

}
void calcRPM(){
  rotationTime = micros()-lastInterrupt;
  lastInterrupt = micros();
}

--- End code ---

Georg:
I am still struggling with the HDD-motor issue. I got now another defect HDD (Samsung HD103SI). There is a power button on the controller. When I press it, the motor starts, runs for some seconds with full speed and then stops, probably in sleep-mode.
Do you have an idea, how to avoid the sleepmode and how to influence speed?
I read somewhere the recommendation to influence directly the original controller. But I have no glue where I can interfere the controller ....

Holder: I want to make it in aluminium and polish the areas. Or chrome it. But for the dimensions of the holderring, I first must solve the the motor issue...

Navigation

[0] Message Index

[#] Next page

Go to full version