03-28-2013 09:34 AM - edited 03-28-2013 09:41 AM
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.
Solved! Go to Solution.
06-21-2017 01:03 AM
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.
06-21-2017 05:31 AM
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:
The UI to control it (steg means steps and akse means axis):
For the steps:
For the limit switches (these was attached to the ends of the setup, so the program would know that the end had been reached):
For the laser:
06-21-2017 05:34 AM - edited 06-21-2017 05:55 AM
@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.
06-21-2017 10:23 PM
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.
06-22-2017 05:41 AM
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?
This project was for exposing photoresist with a blu-ray laser which theoretically could reach a spot-size as small as 480nm.