def goHome(self):
    con = pyAPT.MTS50(serial_number=self.X_AXIS_SN)
    con.home(velocity=40)
    con = pyAPT.MTS50(serial_number=self.Y_AXIS_SN)
    con.home(velocity=40)
    con = pyAPT.MTS50(serial_number=self.Z_AXIS_SN)
    con.home(velocity=40)
    self.moveAbsolute(0, 0, 0)
def _init_motors():
    # initilizes x, y, z motors
    x = pyAPT.MTS50(serial_number=27001234)
    y = pyAPT.MTS50(serial_number=27001328)
    z = pyAPT.MTS50(serial_number=27001291)

    #motorlist = [x, y, z]
    '''
    for each in motorlist:
        each.max_velocity = velocity = 0.23
        each.max_acceleration = 0.45
    '''
    print x.position(), y.position(), z.position()
    return x, y, z  #, motorlist
Exemple #3
0
def main(args):
    if len(args) < 3:
        print(__doc__)
        return 1
    else:
        serial = args[1]
        position = float(args[2])

    try:
        with pyAPT.MTS50(serial_number=serial) as con:
            print('Found APT controller S/N', serial)
            print('\tMoving stage to %.2fmm...' % (position))
            st = time.time()
            con.goto(position, wait=True)
            stat = con.status()
            while stat.moving:
                out = '        pos %3.2fmm vel %3.2fmm/s' % (stat.position,
                                                             stat.velocity)
                sys.stdout.write(out)
                time.sleep(0.01)
                stat = con.status()
                l = len(out)
                sys.stdout.write('\b' * l)
                sys.stdout.write(' ' * l)
                sys.stdout.write('\b' * l)

            print('\tMove completed in %.2fs' % (time.time() - st))
            print('\tNew position: %.2fmm' % (con.position()))
            print('\tStatus:', con.status())
            return 0
    except pylibftdi.FtdiError as ex:
        print('\tCould not find APT controller S/N of', serial)
        return 1
Exemple #4
0
def status(serial):
  with pyAPT.MTS50(serial_number=serial) as con:
    status = con.status()
    print('\tController status:')
    print('\t\tPosition: %.3fmm (%d cnt)'%(status.position, status.position_apt))
    print('\t\tVelocity: %.3fmm'%(status.velocity))
    print('\t\tStatus:',status.flag_strings())
Exemple #5
0
def main(args):
  print 'Looking for APT controllers'
  drv = pylibftdi.Driver()

  st = time.time()
  controllers = drv.list_devices()
  print '\tlist_devices:',time.time()-st

  if controllers:
    for con in controllers:
      print 'Found %s %s S/N: %s'%con
      st = time.time()
      with pyAPT.MTS50(serial_number=con[2]) as con:
        print '\topen:',time.time()-st
        st = time.time()
        status = con.status()
        print '\tstatus:',time.time()-st

        print '\tController status:'
        print '\t\tPosition: %.2fmm'%(status.position)
        print '\t\tVelocity: %.2fmm'%(status.velocity)
        print '\t\tStatus:',status.flag_strings()

      return 0
  else:
    print '\tNo APT controllers found. Maybe you need to specify a PID'
    return 1
Exemple #6
0
    def Connect(self):
        if not self.connected:
            self.connected = True
            self.btnConnect.setStyleSheet('background-color: red')
            self.btnConnect.setText('Disconnect')
            self.SN = int(self.txtSN.text())
            self.con = pyAPT.MTS50(serial_number=self.SN)

            self.btnUp.setEnabled(True)
            self.btnDown.setEnabled(True)
            self.btnHome.setEnabled(True)
            self.txtPos.setEnabled(True)
            self.btnMove.setEnabled(True)

            self.timer.start(100)

        else:
            self.timer.stop()

            self.connected = False
            self.con.close()
            self.btnConnect.setStyleSheet('')
            self.btnConnect.setText('Connect')

            self.btnUp.setEnabled(False)
            self.btnDown.setEnabled(False)
            self.btnHome.setEnabled(False)
            self.txtPos.setEnabled(False)
            self.btnMove.setEnabled(False)
Exemple #7
0
def get_vel_params(serial):
    with pyAPT.MTS50(serial_number=serial) as con:
        min_vel, acc, max_vel = con.velocity_parameters()
        raw_min_vel, raw_acc, raw_max_vel = con.velocity_parameters(raw=True)
        print('\tController velocity parameters:')
        print('\t\tMin. Velocity: %.2fmm/s (%d)' % (min_vel, raw_min_vel))
        print('\t\tAcceleration: %.2fmm/s/s (%d)' % (acc, raw_acc))
        print('\t\tMax. Velocity: %.2fmm/s (%d)' % (max_vel, raw_max_vel))
	def moveAbsoluteY(self, y):
		con = pyAPT.MTS50(serial_number = self.Y_AXIS_SN)
		con.goto(y, wait = False)
		stat = con.status()
		while stat.moving:
			time.sleep(0.01)
			stat = con.status()
		con.close()
Exemple #9
0
def home(serial):
    with pyAPT.MTS50(serial_number=serial) as con:
        print('\tIdentifying controller')
        con.identify()
        print('\tHoming parameters:', con.request_home_params())
        print('\tHoming stage...', end=' ')
        con.home(velocity=10)
        print('homed')
Exemple #10
0
	def moveAbsoluteX(self, x):
		x = float(self.MAX_DIST) - x
		con = pyAPT.MTS50(serial_number = self.X_AXIS_SN)
		con.goto(x, wait = False)
		stat = con.status()
		while stat.moving:
			time.sleep(0.01)
			stat = con.status()
		con.close()
Exemple #11
0
def set_vel_params(serial, acc, max_vel):
  with pyAPT.MTS50(serial_number=serial) as con:
    print('\tSetting new velocity parameters',acc,max_vel)
    con.set_velocity_parameters(acc, max_vel)
    min_vel, acc, max_vel = con.velocity_parameters()
    print('\tNew velocity parameters:')
    print('\t\tMin. Velocity: %.2fmm'%(min_vel))
    print('\t\tAcceleration: %.2fmm'%(acc))
    print('\t\tMax. Velocity: %.2fmm'%(max_vel))
Exemple #12
0
	def moveAbsoluteZ(self, z):
		z = float(self.MAX_DIST) - z
		con = pyAPT.MTS50(serial_number = self.Z_AXIS_SN)
		con.goto(z, wait = False)
		stat = con.status()
		while stat.moving:
			time.sleep(0.01)
			stat = con.status()
		con.close()
def moveAbsoluteY(self, y):
    con = pyAPT.MTS50(serial_number=self.Y_AXIS_SN)
    con.goto(y, wait=False)
    stat = con.status()
    while stat.moving:
        out = '        pos %3.2fmm vel %3.2fmm/s' % (stat.position, stat.velocity)
        # sys.stdout.write(out)
        time.sleep(0.01)
        stat = con.status()
        l = len(out)
Exemple #14
0
 def __init__(self):
     drv = pylibftdi.Driver()
     controllers = drv.list_devices()
     if controllers:
         controllers = drv.list_devices()
         self.info = controllers[0]
         self.serial = self.info[2]
         self.controller = pyAPT.MTS50(serial_number=self.serial)
     else:
         print('No controllers found')
def moveAbsoluteZ(self, z):
    z = float(self.MAX_DIST) - z
    con = pyAPT.MTS50(serial_number=self.Z_AXIS_SN)
    con.goto(z, wait=False)
    stat = con.status()
    while stat.moving:
        out = '        pos %3.2fmm vel %3.2fmm/s' % (stat.position, stat.velocity)
        # sys.stdout.write(out)
        time.sleep(0.01)
        stat = con.status()
        l = len(out)
Exemple #16
0
	def getPos(self, axis = None):
		if (axis == 'X' or axis == 'x' or axis == None):
			with pyAPT.MTS50(serial_number = self.X_AXIS_SN) as con:
				status = con.status()
				posX = float(self.MAX_DIST_ENCODER - status.position_apt) / self.ENCODER_SCALE
			if (axis != None):
				return posX
		if (axis == 'Y' or axis == 'y' or axis == None):
			with pyAPT.MTS50(serial_number = self.Y_AXIS_SN) as con:
				status = con.status()
				posY = float(status.position_apt) / self.ENCODER_SCALE
			if (axis != None):
				return posY
		if (axis == 'Z' or axis == 'z' or axis == None):
			with pyAPT.MTS50(serial_number = self.Z_AXIS_SN) as con:
				status = con.status()
				posZ = float(self.MAX_DIST_ENCODER - status.position_apt) / self.ENCODER_SCALE
			if (axis != None):
				return posZ
		return [posX, posY, posZ]
Exemple #17
0
	def goHome(self):
		# Move to home position of the stage
		self.moveAbsolute(self.MAX_DIST, 0, self.MAX_DIST)

		# Verify X axis home position
		con = pyAPT.MTS50(serial_number = self.X_AXIS_SN)
		con.home()
		con.close()
		
		# Verify Y axis home position
		con = pyAPT.MTS50(serial_number = self.Y_AXIS_SN)
		con.home()
		con.close()

		# Verify Z axis home position
		con = pyAPT.MTS50(serial_number = self.Z_AXIS_SN)
		con.home()
		con.close()

		# Move to our reference frame home position
		self.moveAbsolute(0, 0, 0)
Exemple #18
0
def main(args):
    if len(args) < 3:
        print __doc__
        return 1
    else:
        serial = args[1]
        dist = float(args[2])

    try:
        with pyAPT.MTS50(serial_number=serial) as con:
            print 'Found APT controller S/N', serial
            print '\tMoving stage by %.2fmm...' % (dist),
            con.move(dist)
            print 'moved'
            print '\tNew position: %.2fmm' % (con.position())
            return 0
    except pylibftdi.FtdiError as ex:
        print '\tCould not find APT controller S/N of', serial
        return 1
Exemple #19
0
def main(args):
  if len(args)<3:
    print(__doc__)
    return 1
  else:
    serial = args[1]
    dist = float(args[2])

  try:
    with pyAPT.MTS50(serial_number=serial) as con:
      print(con.velocity_parameters()); 
      con.set_velocity_parameters()
      print(con.velocity_parameters()); 
      print('Found APT controller S/N',serial)
      print('\tMoving stage by %.2fmm...'%(dist), end=' ')
      con.move(dist)
      print('moved')
      print('\tNew position: %.2fmm'%(con.position()))
      return 0
  except pylibftdi.FtdiError as ex:
    print('\tCould not find APT controller S/N of',serial)
    return 1
Exemple #20
0
def main(args):
  print 'Looking for APT controllers'
  drv = pylibftdi.Driver()
  controllers = drv.list_devices()

  if len(args)>1:
    serial = args[1]
  else:
    serial = None

  if serial:
    controllers = filter(lambda x:x[2] == serial, controllers)

  if controllers:
    for con in controllers:
      print 'Found %s %s S/N: %s'%con
      with pyAPT.MTS50(serial_number=con[2]) as con:
        print '\tPosition (mm) = %.2f [enc:%d]'%(con.position(), con.position(raw=True))

      return 0
  else:
    print '\tNo APT controllers found. Maybe you need to specify a PID'
    return 1
Exemple #21
0
    def activate(self, quiet=False):
        self.config['channel_names'] = [
            'position_rel', 'position_abs', 'velocity_set'
        ]
        self.config['scale'] = [1.] * len(self.config['channel_names'])
        self.config['offset'] = [0.] * len(self.config['channel_names'])
        self.params['n_channels'] = 3
        self.config['Home'] = False
        self.config['MoveRel'] = 0.
        self.params['raw_units'] = ['mm', 'mm', 'mm/s']
        self.config['eng_units'] = ['mm', 'mm', 'mm/s']

        # Open socket to the pyAPT device.
        self.dev = pyAPT.MTS50(serial_number=self.serial_number)
        self.driverConnected = True

        # Make first query to get units, description, etc.
        self.query(reset=True)

        if not quiet:
            print('\t' + str(self.params['name']))
            self.pprint()
        return
Exemple #22
0
def homeStage(stage_serial, settle_time):
  with pyAPT.MTS50(serial_number=stage_serial) as con:
    con.home()  
    time.sleep(settle_time)
    return con.position()
Exemple #23
0
def getStagePos(stage_serial):
  with pyAPT.MTS50(serial_number=stage_serial) as con:
    return con.position()    
Exemple #24
0
def moveStageAbs(stage_serial, pos, settle_time):
  with pyAPT.MTS50(serial_number=stage_serial) as con:
    con.goto(pos)
    time.sleep(settle_time)
    return con.position()
Exemple #25
0
	def getInfoAxis(self, axis):
		con = pyAPT.MTS50(serial_number = axis)
		ret = con.info()
		con.close()
		return ret
 def getPos(self, axis=None):
     if (axis == 'X' or axis == 'x' or axis == None):
         with
         pyAPT.MTS50(serial_number=self.X_AXIS_SN)
         as
	'''

    def getPos(self, axis=None):
        if (axis == 'X' or axis == 'x' or axis == None):
            with
            pyAPT.MTS50(serial_number=self.X_AXIS_SN)
            as
            con:
            status = con.status()
            posX = float(self.MAX_DIST_ENCODER - status.position_apt) / self.ENCODER_SCALE
        if (axis != None):
            return posX

    if (axis == 'Y' or axis == 'y' or axis == None):
        with
        pyAPT.MTS50(serial_number=self.Y_AXIS_SN)
        as
        con:
        status = con.status()
        posY = float(status.position_apt) / self.ENCODER_SCALE
    if (axis != None):
        return posY


if (axis == 'Z' or axis == 'z' or axis == None):
    with
    pyAPT.MTS50(serial_number=self.Z_AXIS_SN)
    as
    con:
    status = con.status()
    posZ = float(self.MAX_DIST_ENCODER - status.position_apt) / self.ENCODER_SCALE
 def getInfoAxis(self, axis):
     con = pyAPT.MTS50(serial_number=axis)
     return con.info()
Exemple #29
0
def moveStageRel(stage_serial, dist, settle_time):
  with pyAPT.MTS50(serial_number=stage_serial) as con:
    con.move(dist)
    time.sleep(settle_time)
    return con.position()
Exemple #30
0
	def getStatusAxis(self, axis):
		con = pyAPT.MTS50(serial_number = axis)
		ret = con.status()
		con.close()
		return ret