From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Best approach to use 2 one dimensional position stages for laser engraving

Hi,

I currently have two 1dimensional position stages (NRT150 from Thorlabs) that I want to use to hold a sample object as a fixed high power laser engraves the moving object. How should I go about programming these stages so that they can move together to engrave either an image or some lettering onto the object?

Thanks for any feedback!

Message Edited by lniu on 03-22-2009 05:44 PM
0 Kudos
Message 1 of 12
(3,924 Views)
What does the manual say about how to operate them?
Steve Bird
Culverson Software - Elegant software that is a pleasure to use.
Culverson.com


Blog for (mostly LabVIEW) programmers: Tips And Tricks

0 Kudos
Message 2 of 12
(3,916 Views)

The stage manual doesn't mention anything about engraving. It wasn't meant for engraving. Its simple purpose is to move the stage in one dimension. I have two of these, so I was hoping to use them in combination to create a system whose X and Y movements are controlled so that the fixed laser can engrave lettering onto the object placed on the stage. 

The setup looks something like this: http://thorlabs.com/NewGroupPage9.cfm?ObjectGroup_ID=2132&pn=NRT150

But I only have two, so there is only the X and Y axis that can be controlled. 

I currently can control one stage with one controller. I also have a second controller to control the movements of the second stage, but I have not yet begun writing a LabView program to do so yet because I'm not sure what the best way to go about doing this would be. 

Thanks for any feedback!

0 Kudos
Message 3 of 12
(3,912 Views)
I didn't use Thorlabs but I worked with Newport stage connected to ESP controller for purposes of Optical Coherence tomography. I guess there is not a big difference between the devices.

Basically you will command the stage via RS232 or GPIB. I do not know what kind of measurements you are performing but those stages usually have among others two commands where one allows you to set absolute position and other offers the ability of incremental motion. So it depends on what you want to achieve, whether you make a static measurements on one coordinate or you move the stage after scanning on each coordinate or even if you make continuous measurement.
LV 2011, Win7
0 Kudos
Message 4 of 12
(3,901 Views)

But you've told us nothing about how they are to operate.

Somebody else has speculated they are GPIB or  RS232.

Is is GPIB?  Is it RS232?  Is it TCP? Does it have analog inputs?

Does it have a command set?

 

I don't understand what you need to know.

Steve Bird
Culverson Software - Elegant software that is a pleasure to use.
Culverson.com


Blog for (mostly LabVIEW) programmers: Tips And Tricks

0 Kudos
Message 5 of 12
(3,890 Views)
Sounds like you need coordinated motion between the two drives and you don't have that. Do you want them to follow a smooth path to make arcs?? Right now you would have to issue commands to two different drives and expect them to move at the same time and the same rate all of the time. You will need a multi-axis controller of some type. Connect the two drives to the new controller and issue one move command to the new device.
0 Kudos
Message 6 of 12
(3,859 Views)

Sorry for the vagueness!

The Stages are connected to the controllers through their own type of cable (its a 15 pin cable with 2 rows, one row of 7, one row of 8 pins) and the controller is connected to a computer via USB, not GPIB or RS232.

I am using the laptops they have here at the school lab where there are no PCI slots on these laptops for me to stick a GPIB board onto and the RS232 output on the contoller has been sealed off. 

 

I'd was trying to get some feedback as to what people think the best approach to programming the two stages might be. I've read some articles, and they mention rasterizing as a possibility (in which the X axis moves continously and the Y one space down when the X axis has moved all the way across) but then I'll need to find a seperate program that will convert an image into a black and white image and translate it into a grid so that the laser will know when to turn on or off. 

This is probably the best way to go for me, but I'm not sure how to go about it. Can anyone suggest some software that can translate an image onto a grid so the program can tell when the laser to activate?

 

Thanks for all your feedback so far!

 

0 Kudos
Message 7 of 12
(3,817 Views)

lniu wrote:

 

This is probably the best way to go for me, but I'm not sure how to go about it. Can anyone suggest some software that can translate an image onto a grid so the program can tell when the laser to activate?

 


LabVIEW has that built in already.  Look at the functions under Graphics & Sound, then Picture palette.  There are VI's to open different image formats, and also extract out the image data as an array.  Each pixel is one element in the array.  Each element in the array becomes one dot on your laser grid.  Probably the most difficult part of this would be making sure your image as the correct resolution vs. the resolution and dot sizing of your laser system to get the size of engraving that you want.

Message 8 of 12
(3,805 Views)

Ravens Fan wrote:

LabVIEW has that built in already.  Look at the functions under Graphics & Sound, then Picture palette.  There are VI's to open different image formats, and also extract out the image data as an array.  Each pixel is one element in the array.  Each element in the array becomes one dot on your laser grid.  Probably the most difficult part of this would be making sure your image as the correct resolution vs. the resolution and dot sizing of your laser system to get the size of engraving that you want.


Wow, thanks! I didn't know LabView had that as a VI. 

I've looked into the functions. I don't have a "Picture palette" subdivision under graphics & sound, but I do have picture functions Some of the more useful looking ones for my case are the "picture to pixmap.vi," the "get image subset.vi" and under graphics formats "read jpeg file.vi." If I were to engrave a jpeg image, I'm guessing I would need the "read jpeg file.vi" to open the jpeg file. But how can I save the image data as an array so that I can import it to another vi that is modulating the laser? 

Thanks for all your help!

0 Kudos
Message 9 of 12
(3,662 Views)

Yes.  That is the palette.

 

The Read JPEG function puts out a cluster of different parameters.  One of which is a 1-D array called image consisting of unsigned bytes.  You could unbundle that to get the array.  You can use the image attributes in order to reshape the 2-D if you need to.  You may also need to do some analysis on the array  so that you can convert the 255 potential values to a single on/off value.

 

Be careful with JPEG's as they have built in compression.  You could have compression artifacts that would make the image not as sharp as you would desire.

Message 10 of 12
(3,658 Views)