Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

Laser printer/engraver, bipolar stepper motor control, NI USB 6009 DAC

Solved!
Go to solution

Hi!

 

 

I need help with a project I'm working on. I don't expect you to create anything for me, but I hope you could point me in the right direction by giving me ideas on how to solve this. Like how to interface finished modules or good program setups to make the system work.

 

 

Project background:

I'm working on a project about constructing a 2D "laser-printer/engraver". The laser used is from a Blu-ray player. The Blu-ray laser diode will sit in the original position of the original optical pickup, and placed on a platform where the laser should be able to move above, across a plate. The plate should be placed on another Blu-ray optical pickup without a powered laser. The second optical pickup can move 90 degrees opposite the first, creating an X/Y axis printer setup. The platform will be connected to a computer, so that the movements of the optical pickups, and the laser will be controlled using LabVIEW.

 

 

"Hardware setup":

Bipolar stepper motors will move the optical pickups. Using a transistor array to control the current polarity through the coils which rotates the motors; we have a sequence of signals from the interface similar to this:

 

1000

0001

0100

0010

 

Where each row is a step (a quarter turn of the motor). I may want to use half steps as well; where step n is a combination of n-1 and n+1 (1000 – 1001 - 0001)

Each "bit" comes from their own digital port from the NI USB-6009 DAC, with a total of 8(as we have 2 stepper motors).

In addition, for each stepper motor, we need an indicator for step-position at the end of the "track".

 


 

What I want/need to do in LabVIEW:

Ultimately it would be cool to feed LabVIEW a picture (with proper resolution) with a pattern. The laser will have to follow this pattern "intelligently", instead of doing it pixel for pixel one row at a time.

Similar to the solution used in this project (but only through LabVIEW): http://www.instructables.com/id/Pocket-laser-engraver/step7/Getting-the-software-ready/

 

Or

 

To "draw" a pattern on a "form" in LabVIEW, either an actual MSPaint-like "drawing" or just a sequence of coordinates for the laser to follow.

 

 

I also want to be able to adjust the speed, so the exposure time for each pixel can be regulated.

 

 

Things to consider:

At the startup of each printing process, the laser and plate will move to the step-position-indicator and back to the middle so ensure that they are in fact in their correct positions.

 

The "on-mode digital port for the laser" must be constantly high for the laser to be on.

 

It’s not a must, but having the stepping signals constantly on instead of pulses would be preferable.

0 Kudos
Message 1 of 6
(7,100 Views)

Hi,

I am recently working on a similar project as yours but I will be using an UV laser diode instead. However, I got stuck in programming a labview vi that moves the diode according to the pattern fed into the program to etch the pattern. Any help or feedback is appreciated.

Thank you.

0 Kudos
Message 2 of 6
(3,445 Views)
Solution
Accepted by topic author Thorstif

I did somewhat solve this four years ago. What I went with was defining numbers of steps for the lasers to take in sequence, so that the lasers would take x steps in one direction then x steps in another direction. I haven't touched LabView since then and can't really remember the exact workings of this, but I can post some pictures and add the files. I can't promise that this is a good solution, but it worked for my purposes.

 

I remember having a issue with the NI-DAC sending a signal to the motor controllers after the program had finished its' execution, which caused the motors to be locked in position and generate heat.

The program does not keep track of anything like step count and position. It does not have the possibility to move both motors at the same time, which would make it possible to move in eight directions instead of just four.

 

The overarching program:


LabVIEW_Laserbasert_Fotolitografi_Programd.png

The UI to control it (steg means steps and akse means axis):

LabVIEW_Laserbasert_Fotolitografi_Programp.png

 

 

For the steps:

Stepsd.png

 

For the limit switches (these was attached to the ends of the setup, so the program would know that the end had been reached):

 

Stepsd.png

 

For the laser:

 

Laserd.png

Download All
Message 3 of 6
(3,439 Views)

@eric2207 wrote:

Hi,

I am recently working on a similar project as yours but I will be using an UV laser diode instead. However, I got stuck in programming a labview vi that moves the diode according to the pattern fed into the program to etch the pattern. Any help or feedback is appreciated.

Thank you.



Hi, I just posted my solution. It was made quite a while ago, so I can't really explain in detail how it works as I haven't worked with LabView since and forgot most about it. I can't guarantee that this will be a good solution for you. Good luck with your project.

0 Kudos
Message 4 of 6
(3,437 Views)

Hi, thank you so much for the feedback and the code.

I was wondering where did you feed in the pattern for the laser to follow?

The project I am working on is lithography where an Arduino board will be used to control the laser to engrave patterns within microns range.

These will be very useful reference for me to develop the code.

Thanks again.

0 Kudos
Message 5 of 6
(3,407 Views)

Unfortunately I had to input the pattern manually in the UI.

 

For it to move in a square, I had to set it got go 50 steps in the x-axis, 50 steps in the y-aksis, then -50 steps in the x-axis and lastly -50 steps in the y-axis.

 

Isn't any type of printing/engraving a type of lithography? Smiley Tongue

 

This project was for exposing photoresist with a blu-ray laser which theoretically could reach a spot-size as small as 480nm.

0 Kudos
Message 6 of 6
(3,400 Views)