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.
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.
03-22-2009 05:42 PM - edited 03-22-2009 05:44 PM
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!
03-22-2009 06:27 PM
Blog for (mostly LabVIEW) programmers: Tips And Tricks
03-22-2009 06:37 PM
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!
03-22-2009 07:30 PM
03-22-2009 08:19 PM
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.
Blog for (mostly LabVIEW) programmers: Tips And Tricks
03-23-2009 08:37 AM
03-28-2009 03:06 PM
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!
03-28-2009 06:39 PM
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.
04-28-2009 12:00 PM
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!
04-28-2009 12:09 PM
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.