Пример #1
0
 def Step(self):
     if (self.info['Inner Limit Switch']['status'] == 'On') and (not self.master.DevFlag):
         showinfo('On Inner Limit Switch', 'Moving off inner limit switch.')
         self.master.ToggleOn(self.info['Enable Override'], 'Enable Override')
         DAC0_VALUE = self.master.LJ.voltageToDACBits(0.0, dacNumber = 0, is16Bits=False)
         self.master.LJ.getFeedback(u6.DAC0_8(DAC0_VALUE))
         i = -1.
         n = int(i/0.00025099)
         self.btn['state'] = tk.DISABLED
         self.master.LJ.getFeedback(u6.TimerConfig(1, 9, Value=abs(n)))
         self.master.LJ.getFeedback(u6.TimerConfig(0, 7, Value=0))
         time.sleep(abs(n)/self.freq + 1.)
         self.master.ToggleOff(self.info['Enable Override'], 'Enable Override')
         self.btn['state'] = tk.ACTIVE
         return
     if (self.info['Outer Limit Switch']['status'] == 'On') and (not self.master.DevFlag):
         showinfo('On Outer Limit Switch', 'Moving off outer limit switch.')
         self.master.ToggleOn(self.info['Enable Override'], 'Enable Override')
         DAC0_VALUE = self.master.LJ.voltageToDACBits(5.0, dacNumber = 0, is16Bits=False)
         self.master.LJ.getFeedback(u6.DAC0_8(DAC0_VALUE))
         i = 1.
         n = int(i/0.00025099)
         #print(self.master.LJ.TimerConfig(0))
         self.btn['state'] = tk.DISABLED
         self.master.LJ.getFeedback(u6.TimerConfig(1, 9, Value=abs(n)))
         self.master.LJ.getFeedback(u6.TimerConfig(0, 7, Value=0))
         time.sleep(abs(n)/self.freq + 1.)
         self.master.ToggleOff(self.info['Enable Override'], 'Enable Override')
         self.btn['state'] = tk.ACTIVE
         return
     try:
         i = float(self.entry.get())
     except:
         return
     if not self.master.DevFlag:
         if i < 0:
             DAC0_VALUE = self.master.LJ.voltageToDACBits(0.0, dacNumber = 0, is16Bits=False)
             self.master.LJ.getFeedback(u6.DAC0_8(DAC0_VALUE))
         else:
             DAC0_VALUE = self.master.LJ.voltageToDACBits(5.0, dacNumber = 0, is16Bits=False)
             self.master.LJ.getFeedback(u6.DAC0_8(DAC0_VALUE))
     n = int(i/0.00025099)
     if abs(n) > 65535:
         showerror('Input too High', 'Motor cannot travel further than {:.1f}mm in one step.'.format(65535*0.00025099))
         return
     if not self.master.DevFlag:
         self.btn['state'] = tk.DISABLED
         self.master.LJ.getFeedback(u6.TimerConfig(1, 9, Value=abs(n)))
         self.master.LJ.getFeedback(u6.TimerConfig(0, 7, Value=0))
         time.sleep(abs(n)/self.freq + 1.)
         self.btn['state'] = tk.ACTIVE
Пример #2
0
    def heaterControl(self):
        '''Pulse positive for heater_frac fraction of a pcm_time time'''
        if time.time() > self.last_heater_time + self.pcm_time:
            self.last_heater_time=time.time()
          #These lines prevents an endless sleep!
            if (self.heater_frac < 0): self.heater_frac=0
            if (self.heater_frac > 1): self.heater_frac=1
          #Switch the heater on...
            if (self.heater_frac==0): LJ.getFeedback(u6.DAC0_8(0))
            else: LJ.getFeedback(u6.DAC0_8(255))

          #Wait
            time.sleep(self.pcm_time*self.heater_frac)
          #Switch the heater off...
            if (self.heater_frac==1): LJ.getFeedback(u6.DAC0_8(255))
            else: LJ.getFeedback(u6.DAC0_8(0))
Пример #3
0
	def __init__(self):
		self.device = u6.U6()
		print self.device.configU6()
		
		#for the labjack
		self.numChannels = 12
		self.firstChannel = 2
		self.resolutionIndex = 4
		self.gainIndex = 0
		self.settlingFactor = 0
		self.differential = False
		
		self.latestAinValues = np.array([0]*self.numChannels, dtype='float')
		self.lastForceMoments = np.array([0]*self.numChannels, dtype='float')
		self.latestForceMoments = np.array([0]*self.numChannels, dtype='float')
		self.zero = np.array([0]*self.numChannels, dtype='float')
		
		self.lastTime = 0
		self.latestTime = 0
		
		self.lastLeftOn = False
		self.latestLeftOn = False
		self.lastLeftCOP = [0, 0]
		self.latestLeftCOP = [0, 0]

		self.lastRightOn = False
		self.latestRightOn = False
		self.lastRightCOP = [0, 0]
		self.latestRightCOP = [0, 0]
		
		FIOEIOAnalog = ( 2 ** self.numChannels ) - 1;
		fios = FIOEIOAnalog & (0xFF)
		eios = FIOEIOAnalog/256
		self.device.getFeedback(u6.PortDirWrite(Direction = [0, 0, 0], WriteMask = [0, 0, 15]))
		self.feedbackArguments = []
		self.feedbackArguments.append(u6.DAC0_8(Value = 125))
		self.feedbackArguments.append(u6.PortStateRead())
		for i in range(self.firstChannel, self.numChannels+self.firstChannel):
			self.feedbackArguments.append( u6.AIN24(i, self.resolutionIndex, self.gainIndex, self.settlingFactor, self.differential) )
			
		self.task = viztask.schedule(self.__update)
		self.going = True
		self.history = []
		self.recording = False
		
		#magic numbers to turn volts into Newtons and Newton.meters
		#left is stored in first 6 (x,y,z,mx,my,mz) and right in second 6
		self.M = np.array([[0, -2.309900 , 0.000000 , 1.308000 , 0.000000 , 2.306800 , 0.000000 , -495.780000 , 0.000000 , -494.040000 , 0.000000 , -2.034400],\
			[0, 6.308900 , 0.000000 , 5.913600 , 0.000000 , 11.633000 , 0.000000 , -2.295700 , 0.000000 , -13.079000 , 0.000000 , 499.990000],\
			[0, -491.360000 , 0.000000 , -488.510000 , 0.000000 , -488.270000 , 0.000000 , 5.064000 , 0.000000 , 6.732400 , 0.000000 , 0.391790],\
			[0, 48.162000 , 0.000000 , -298.930000 , 0.000000 , 299.410000 , 0.000000 , -1.565600 , 0.000000 , 4.956800 , 0.000000 , 54.786000],\
			[0, -254.760000 , 0.000000 , -26.647000 , 0.000000 , -25.153000 , 0.000000 , 42.462000 , 0.000000 , 42.087000 , 0.000000 , 1.601900],\
			[0, -7.032800 , 0.000000 , 1.345700 , 0.000000 , -1.140100 , 0.000000 , -243.640000 , 0.000000 , 354.550000 , 0.000000 , -4.020500],\
			[-2.688400 , 0.000000 , -0.083334 , 0.000000 , 1.258500 , 0.000000 , 491.220000 , 0.000000 , -495.750000 , 0.000000 , -6.723600 , 0],\
			[-7.642900 , 0.000000 , -5.959700 , 0.000000 , -3.659100 , 0.000000 , 15.847000 , 0.000000 , -12.401000 , 0.000000 , 507.580000 , 0],\
			[-490.840000 , 0.000000 , -490.690000 , 0.000000 , -492.520000 , 0.000000 , -6.428000 , 0.000000 , 3.723600 , 0.000000 , 4.807000 , 0],\
			[300.830000 , 0.000000 , -300.260000 , 0.000000 , 48.265000 , 0.000000 , -5.152500 , 0.000000 , -1.434500 , 0.000000 , 49.278000 , 0],\
			[26.955000 , 0.000000 , 27.005000 , 0.000000 , 253.680000 , 0.000000 , -40.116000 , 0.000000 , 41.703000 , 0.000000 , -1.501700 , 0],\
			[-1.380200 , 0.000000 , -2.450800 , 0.000000 , -1.349500 , 0.000000 , -348.250000 , 0.000000 , -245.680000 , 0.000000 , 10.366000 , 0]],\
			dtype='float')
Пример #4
0
 def set_dc_voltage(self, volt, amp=1.):
     """set the dc voltage to volt. If an amplifier is used, set the 'amp' to the amplification value,
     and the voltage you want in the end... Use DAC0"""
     voltage = volt / amp
     self.lj.getFeedback(
         u6.DAC0_8(
             self.lj.voltageToDACBits(voltage, dacNumber=0,
                                      is16Bits=False)))
Пример #5
0
def saw_stepper(d, df):
    amp = df['Amplitude']
    time = df_saw['Time']

    for i in range(0, len(amp)):
        volt = amp.loc[i]

        #applys voltage to the dac
        dac0 = d.voltageToDACBits(volt, dacNumber=0, is16Bits=False)
        d.getFeedback(u6.DAC0_8(dac0))

        t.sleep(.1)
Пример #6
0
#! /usr/bin/python
import u6
import pylab
import numpy as np
import time, datetime, os

today       = datetime.date.today() # get time string for folder name
todaystr    = today.isoformat()

d           = u6.U6() # open LabJack U6

d.getCalibrationData() # get calibration info for U6

# turn off device first
DAC0_value = d.voltageToDACBits(0, dacNumber = 0, is16Bits = False)
d.getFeedback(u6.DAC0_8(DAC0_value))

device_type = raw_input('Are you calibrating led or lasergreen or laserblue or laserblueC? ')
fiber_type  = raw_input('What is your fiber diameter(nm)? ')

# Set DAC0 to 2V and get analog reading from AIN0 to calculate scale
if device_type == "led":
    startV = 0.07
    stopV  = 5
    nVPts  = 81
    DAC0_value = d.voltageToDACBits(1.4, dacNumber = 0, is16Bits = False)
elif device_type == "lasergreen":
    
    startV = 1.5
    stopV  = 3
    nVPts  = 19
Пример #7
0
d = u6.U6()
d.getCalibrationData()

try:
    #Configure the IOs before the test starts

    FIOEIOAnalog = (2**numChannels) - 1
    fios = FIOEIOAnalog & (0xFF)
    eios = FIOEIOAnalog / 256

    d.getFeedback(u6.PortDirWrite(Direction=[0, 0, 0], WriteMask=[0, 0, 15]))

    feedbackArguments = []

    feedbackArguments.append(u6.DAC0_8(Value=125))
    feedbackArguments.append(u6.PortStateRead())

    for i in range(numChannels):
        feedbackArguments.append(
            u6.AIN24(i, resolutionIndex, gainIndex, settlingFactor,
                     differential))

    start = datetime.now()
    # Call Feedback 1000 times
    i = 0
    while i < numIterations:
        results = d.getFeedback(feedbackArguments)

        for j in range(numChannels):
            latestAinValues[j] = d.binaryToCalibratedAnalogVoltage(