This code shows how to control the APT Thorlabs positioning system using the third party ActiveX controls. This code also shows how to use ActiveX controls and MATLAB.
It appears that MATLAB modifies the signature of the ActiveX method so that variables originally passed by reference are included in the output of the function. For example:
o the Visual Basic Call to the method GetNumHWUnits is:
MG17System1.GetNumHWUnits USB_NANOTRAK, lngNumNanoTraks
o the equivalent MATLAB call is:
[temp1, temp2] = h_Ctrl.GetNumHWUnits(8, 0);
So, you simply pass a dummy value of 0 into the input argument, and read the output from temp1 and temp2. lngNumNanoTraks gets set to 2 when it is
passed by reference. As expected, temp2 is set to 2 once the line has been evaluated by MATLAB.
At our lab, we have two 6-axis positioning stages. Each axis has a motor control for rough positioning, and piezo control for fine tuning. We also have two NanoTrak modules that let us position four of the axes automatically. The modules are: NanoTrak, Piezo, and Motor controls. In my setup, a fiber is placed on one of the stages and aligned to an optical modulator. Another fiber is placed on the other stage, and is used to measure the output light. The streaming video from out microscope is shown at the bottom right of the screen capture.