Esempio n. 1
0
class PhidgetTextLCD(object):
  """
  A class modelled after a Phidget InterfaceKit with an integrated LCD.
  It contains a list of objects, which are subclasses of Sensor object.

  Attributes:
      analog_sensors: a list containing objects of one of subclasses of Sensor
      data_dir: a string of directory path to save sensor reading data in
  """

  def __init__(self, analog_sensors, data_dir):
    """Initializes the members."""
    self.__interfaceKit = InterfaceKit()
    self.__textLCD = TextLCD()

    self.__data_dir = data_dir

    # instantiate classes according to actual sensor port configuration
    self.sensors = []
    for sensor in analog_sensors:
      a_sensor = self.__Factory(sensor)
      self.sensors.append(a_sensor)

    try:
      # Interface Kit
      self.__interfaceKit.openPhidget()
      self.__interfaceKit.waitForAttach(10000)
      print "%s (serial: %d) attached!" % (
        self.__interfaceKit.getDeviceName(), self.__interfaceKit.getSerialNum())

      # get initial value from each sensor
      i = 0
      for sensor in self.sensors:
        #print sensor.product_name
        #print sensor.value
        sensor.value = self.__interfaceKit.getSensorValue(i)
        i += 1

      self.__interfaceKit.setOnSensorChangeHandler(self.__SensorChanged)

      # Text LCD
      self.__textLCD.openPhidget()
      self.__textLCD.waitForAttach(10000)
      print "%s attached!" % (self.__textLCD.getDeviceName())

      self.__textLCD.setCursorBlink(False)

    except PhidgetException, e:
      print "Phidget Exception %i: %s" % (e.code, e.message)
      sys.exit(1)
Esempio n. 2
0
def encoderPositionChangeHandler(e):
  global velocity
  DEAD_ZONE = 1.0
  factor = 0.5
  velocity = factor*e.positionChange/e.time
  print "velocity", velocity
  if velocity < DEAD_ZONE:
    velocity = 0

  return 0

try:
  interfaceKit.openPhidget()
  interfaceKit.waitForAttach(10000)
  print ("interfaceKit %d attached!" % (interfaceKit.getSerialNum()))

  encoder.openPhidget()
  encoder.waitForAttach(10000)
  print ("encoder %d attached!" % (encoder.getSerialNum()))

  interfaceKit.setOnSensorChangeHandler(interfaceKitSensorChanged)
  interfaceKit.setOnInputChangeHandler(interfaceKitInputChanged)
  encoder.setOnPositionChangeHandler(encoderPositionChangeHandler)


  while True:
    time.sleep(0.05)
    liblo.send(target, "/steer", steer)
    liblo.send(target, "/velocity", float(velocity))
Esempio n. 3
0
try:
    interfaceKit = InterfaceKit()
except RuntimeError as e:
    print("Runtime Error: %s" % e.message)
try:
    ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)
except:
    try:
        ser = serial.Serial('/dev/ttyUSB1', 9600, timeout=1)
    except:
        print "not connected"
try:
    #Your program Code here
    interfaceKit.openPhidget()
    interfaceKit.waitForAttach(10000)
    print("%d attached!" % (interfaceKit.getSerialNum()))
    xold = 0
    yold = 0
    zold = 0
    pold = 0
    cmd = "\x82"
    ser.write(cmd)
    while True:
        x1 = interfaceKit.getSensorValue(0)
        y1 = interfaceKit.getSensorValue(1)
        z1 = interfaceKit.getSensorValue(2)
        p1 = interfaceKit.getSensorValue(3)
        sleep(0.2)
        x3 = interfaceKit.getSensorValue(0)
        y3 = interfaceKit.getSensorValue(1)
        z3 = interfaceKit.getSensorValue(2)
Esempio n. 4
0
try:
    try:
        message( "Opening IR Device 121774")
        ir.openPhidget(121774)
        message( "Waiting for attachment...")
        ir.waitForAttach(10000)
        message("Device ready.")
        ir.setOnAttachHandler(irAttached)
        ir.setOnDetachHandler(irDetached)
        ir.setOnErrorhandler(irError)
        ir.setOnIRCodeHandler(irCodeRecv)
        ir.setOnIRLearnHandler(irLearnRecv)
        ir.setOnIRRawDataHandler(irRawDataRecv)
        
        try:
            message("Device ready and waiting...")
            while True:
                pass
        except KeyboardInterrupt as e:
            message("Exiting")
        
    except PhidgetException as e:
        message("Phidget Exception %i: %s" % (e.code, e.details))
        message("Exiting....")
finally:
    if ir:
        message ("Closing %d" % (interfaceKit.getSerialNum()))
    interfaceKit.closePhidget()