Laser projector: How is this done?

Thread Starter

spinnaker

Joined Oct 29, 2009
7,830
Seems like a really cool project

upload_2018-10-24_19-13-0.png



upload_2018-10-24_19-15-8.png

The webpage has a link to what might be malware so I did not want to post it. The web page does not give a whole lot of details anyway.

The thing that spins is a pill box with mirrors mounted to it. I see he has a home sensor. I was trying to figure out how he got the different rows and columns. You could vary the angle of each mirror. Tilt forward a bit more on each one would get you your row but how would you get the column without moving the laser? It appears to be stationary.
 

cmartinez

Joined Jan 17, 2007
8,765
The laser is surely being turned on an off in sync with the mirror drum rotation, plus, there has to be another drum or mirror placed opposite (that is not shown, or we can't see) to move the reflected beam up and down, generating a complete two-dimensional image.
 

Thread Starter

spinnaker

Joined Oct 29, 2009
7,830
The laser is surely being turned on an off in sync with the mirror drum rotation, plus, there has to be another drum or mirror placed opposite (that is not shown, or we can't see) to move the reflected beam up and down, generating a complete two-dimensional image.

He says this .

Code:
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
-- -- -------- -- -- ----- --
-- -- -- -- -- -- -- --
-- -- -- -- -- -- -- --
-------- -------- -- -- -- -- --
-- -- -- -- -- -- -- --
-- -- -- -- -- -- --
-- -- -------- ------- -------- ----- --
Well the darn spacing did not turn out the way I wanted but you get the idea.

I am not seeing another drum in the phot. You pretty much get an overview there. I wonder if there is a stepper motor on the laser? But could it move fast enough?
 

JohnInTX

Joined Jun 26, 2012
4,787
I'm with spinnaker. There are 7 mirrors and 7 scan lines. A small difference in the mirror tilt would generate the raster.

EDIT: spin nailed it while I was typing..
 

Thread Starter

spinnaker

Joined Oct 29, 2009
7,830
I'm with spinnaker. There are 7 mirrors and 7 scan lines. A small difference in the mirror tilt would generate the raster.

EDIT: spin nailed it while I was typing..

But just the tilt would give row and column?

When you say tilt, you mean the top tilted a bit more on each mirror toward the laser?
 

Thread Starter

spinnaker

Joined Oct 29, 2009
7,830
If each mirror was tilted both vertically and horizontally just a bit. And you hit the right part of each mirror at the right time, wouldn't that give you both X and Y axis?
 

JohnInTX

Joined Jun 26, 2012
4,787
But just the tilt would give row and column?

When you say tilt, you mean the top tilted a bit more on each mirror toward the laser?
Last one first. Yes, I would think that tilting the top edge of each mirror progressively a bit more towards the laser would make each line it reflected a bit lower than the previous one. When mirror #1 came back around (indicated by the index signal) the laser would paint the top line again.

The columns are done strictly by timing from the left edge of each raster line. Where that left edge would be (timing wise) is determined by measuring the index pulse rate. Measuring the time between index pulses gives you the frame rate i.e. time for all 7 lines (one revolution of the mirrors). The firmware would divide this value by 7 to determine when each new line began i.e. a new mirror was in view. From that starting value, each scan-tine time is further divided by the desired 'dot rate'. For the 8 characters shown and a 5x7 font with one dot spacing the dot rate would be (line rate)/ (5+1 dots)*(8chars) or (line rate)/48. The line rate is the index period/7.

It's not that far off how the old CRT refresh circuits worked. One revolution of the mirror generates what would be the vertical retrace pulse and the horizontal retrace is determined by dividing the vertical retrace period.

As far as the speed, the pictures don't show how much flicker is there. The camera is integrating several frames.

Interesting!
 

Thread Starter

spinnaker

Joined Oct 29, 2009
7,830
Last one first. Yes, I would think that tilting the top edge of each mirror progressively a bit more towards the laser would make each line it reflected a bit lower than the previous one. When mirror #1 came back around (indicated by the index signal) the laser would paint the top line again.

The columns are done strictly by timing from the left edge of each raster line. Where that left edge would be (timing wise) is determined by measuring the index pulse rate. Measuring the time between index pulses gives you the frame rate i.e. time for all 7 lines (one revolution of the mirrors). The firmware would divide this value by 7 to determine when each new line began i.e. a new mirror was in view. From that starting value, each scan-tine time is further divided by the desired 'dot rate'. For the 8 characters shown and a 5x7 font with one dot spacing the dot rate would be (line rate)/ (5+1 dots)*(8chars) or (line rate)/48. The line rate is the index period/7.

It's not that far off how the old CRT refresh circuits worked. One revolution of the mirror generates what would be the vertical retrace pulse and the horizontal retrace is determined by dividing the vertical retrace period.

As far as the speed, the pictures don't show how much flicker is there. The camera is integrating several frames.

Interesting!

Ah I think I get it now. So it is simply where it hits on the mirror is where the column is? Would that not make the total width of what you are writing the width of the mirror? Or does it have something to do with the distance it is projected that makes it appear more spaced out?

I mean he wrote the word Hello!!. Seems like that would take up a lot of space on the mirror. Or is it very close on the mirror and once projected on the screen it appears larger.

Oh and I think I know how he got the wider and taller pixels. Just leave the laser on a bit longer? Wow that would be like of though to figure that all out.
 

JohnInTX

Joined Jun 26, 2012
4,787
Yep, That’s how I guess it works. The planning of the laser cross the mirror and switching it on and off makes the columns.
The number of columns depends on the width of the mirror, the spot size and how fast you can flash the laser.
All of that must fit on the mirror from left to right but the actual size of the image is determined by the distance of the screen from the mirror. The farther, the bigger (and dimmer).

2ed paragraph: yes.
3re paragraph: the longer the laser is on, the wider the pixels (and fewer). The height of the pixels is the width of the laser spot. The line spacing is determined by the relative angle of each mirror to its predecessor.

As a fun thought, note that the index position is non-critical as long as it’s stable. It could occur when the laser is pointed at the middle of the 4th mirror (180 degrees from 0,0) for example, and all you would have to do to locate the spot at the top left corner of the raster (0,0) is delay 1/2 the measured rotational period.

Sorry for terse reply, typing on tablet.
Hope that helps!
 

DNA Robotics

Joined Jun 13, 2014
670
A laser printer has a multi-sided spinning mirror that directs the laser beam. I considered using 9 of those lasers to project a line of dot matrix text on a wall or larger surface outside. You might look into the firmware in a dot matrix printer to get patterns for each character.
 
Top