def configure(self): from Phidgets.Devices.Stepper import Stepper from Phidgets.Devices.Encoder import Encoder self.current_limit = self.get("current_limit") or 2.5 self.motor_id = self.get("motor_id") or 0 self.stepper = Stepper() self.encoder = Encoder() self.setup(self.motor_id)
def connDev(self): """connect to device and open serial connection to arduino""" self.stepper = Stepper() self.stepper.openPhidget() self.stepper.waitForAttach(10000) self.setParm(20000, 5000, 0.9) self.fw.openPort() time.sleep(2) print "Stepper Driver Connected" self.status() return 1
def __init__(self, acceleration=30000, velocity=30000, current=4.0, position=50000): try: self.stepper = Stepper() except RuntimeError as e: print("Runtime Exception: %s" % e.details) try: self.stepper.setOnAttachHandler(self.StepperAttached) self.stepper.setOnDetachHandler(self.StepperDetached) self.stepper.setOnErrorhandler(self.StepperError) self.stepper.setOnCurrentChangeHandler(self.StepperCurrentChanged) self.stepper.setOnInputChangeHandler(self.StepperInputChanged) self.stepper.setOnPositionChangeHandler( self.StepperPositionChanged) self.stepper.setOnVelocityChangeHandler( self.StepperVelocityChanged) except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) try: self.stepper.openPhidget() except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) print("Waiting for attach....") try: self.stepper.waitForAttach(10000) except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) try: self.stepper.closePhidget() except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) self.SetParameters(acceleration, velocity, current, position)
def StepperCreate(): try: stepper = Stepper() except RuntimeError as e: print("Runtime Exception: %s" % e.details) print("Exiting....") exit(1) try: #logging example, uncomment to generate a log file #stepper.enableLogging(PhidgetLogLevel.PHIDGET_LOG_VERBOSE, "phidgetlog.log") stepper.setOnAttachHandler(StepperAttached) stepper.setOnDetachHandler(StepperDetached) stepper.setOnErrorhandler(StepperError) stepper.setOnCurrentChangeHandler(StepperCurrentChanged) stepper.setOnInputChangeHandler(StepperInputChanged) stepper.setOnPositionChangeHandler(StepperPositionChanged) stepper.setOnVelocityChangeHandler(StepperVelocityChanged) # stepper2.setOnAttachHandler(StepperAttached) # stepper2.setOnDetachHandler(StepperDetached) # stepper2.setOnErrorhandler(StepperError) # stepper2.setOnCurrentChangeHandler(StepperCurrentChanged) # stepper2.setOnInputChangeHandler(StepperInputChanged) # stepper2.setOnPositionChangeHandler(StepperPositionChanged) # stepper2.setOnVelocityChangeHandler(StepperVelocityChanged) except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) print("Exiting....") exit(1) print("Opening phidget object....") return stepper
__author__ = 'Trevor Stanhope' __version__ = '0.1' __date__ = 'Nov 4 2014' # Imports from ctypes import * import sys from time import sleep from Phidgets.PhidgetException import PhidgetErrorCodes, PhidgetException from Phidgets.Events.Events import AttachEventArgs, DetachEventArgs, ErrorEventArgs, InputChangeEventArgs, CurrentChangeEventArgs, StepperPositionChangeEventArgs, VelocityChangeEventArgs from Phidgets.Devices.Stepper import Stepper # Create a stepper object try: stepper = Stepper() except RuntimeError as e: print("Runtime Exception: %s" % e.details) print("Exiting....") exit(1) # Information Display Function def DisplayDeviceInfo(): print("%8s, %30s, %10d, %8d" % (stepper.isAttached(), stepper.getDeviceName(), stepper.getSerialNum(), stepper.getDeviceVersion())) print("Number of Motors: %i" % (stepper.getMotorCount())) # Event Handler Callback Functions
from Phidgets.Devices.Stepper import Stepper from ..global_constants import TED_STEPPER_INDEX controller = Stepper() controller.openPhidget() #Converts a number of steps into the equivalent degrees def step2deg(steps, asBearing=False): #If asBearing is True, this returns the bearing in degrees of the given step #position steps = steps % 400 if asBearing else steps return float(steps * 0.9) #Converts degrees to the nearest amount of steps needed #Also returns the actual degrees that the steps represent, since it is rounded def deg2step(degrees, asPosition=True): #This is very important, as not only does it simplify the math, but it also #prevents cable wrapping degrees = degrees % 360 if asPosition else degrees steps = int(round(degrees / 0.9)) return steps, step2deg(steps) #Class to control a Phidgets stepper class CameraStepper: def __init__(self, index=TED_STEPPER_INDEX): self.index = index controller.setEngaged(self.index, True)
import BaseHTTPServer from time import sleep import sys import serial from Phidgets.Devices.Stepper import Stepper connUSB = '/dev/ttyACM0' if len(sys.argv) > 1: connUSB = sys.argv[1] connArduino = serial.Serial(connUSB, 9600) # connArduino = serial.Serial('/dev/tty.usbmodemc041', 9600) connPhidget = Stepper() class HTTPHandler(BaseHTTPServer.BaseHTTPRequestHandler): def do_GET(self): command = self.path[1:].split('/') if command[0][0] == 'd' or command[0][0] == 't': connArduino.write(command[0][0] + command[1] + '\n') print 'MOVE: %s %s units' % (command[0][0], command[1]) elif command[0][0] == 'r': print 'MOVE: Rotating %s degrees' % command[1] connPhidget.openPhidget() connPhidget.waitForAttach(10000) connPhidget.setCurrentPosition(0, 0) # sleep(1)
#Basic imports from ctypes import * import sys import random from time import sleep #Phidget specific imports from Phidgets.PhidgetException import PhidgetErrorCodes, PhidgetException from Phidgets.Events.Events import AttachEventArgs, DetachEventArgs, ErrorEventArgs, InputChangeEventArgs, CurrentChangeEventArgs, StepperPositionChangeEventArgs, VelocityChangeEventArgs, OutputChangeEventArgs, SensorChangeEventArgs from Phidgets.Devices.Stepper import Stepper from Phidgets.Devices.InterfaceKit import InterfaceKit from Phidgets.Phidget import PhidgetID from Phidgets.Devices.TextLCD import TextLCD, TextLCD_ScreenSize #Create a stepper object try: stepper = Stepper() stepper2 = Stepper() stepper3 = Stepper() except RuntimeError as e: print("Runtime Exception: %s" % e.details) print("Exiting....") exit(1) #Create an interfacekit object try: interfaceKit = InterfaceKit() except RuntimeError as e: print("Runtime Exception: %s" % e.details) print("Exiting....") exit(1)
def __init__(self): self.stepper = Stepper() self.stepper.openPhidget() print('attaching stepper dev ...') self.stepper.waitForAttach(10000) self.DisplayDeviceInfo
def AttachStepper(databasepath, serialNumber): def onAttachHandler(event): logString = "Stepper Attached " + str(event.device.getSerialNum()) #print(logString) DisplayAttachedDeviceInfo(event.device) def onDetachHandler(event): logString = "Stepper Detached " + str(event.device.getSerialNum()) #print(logString) DisplayDetachedDeviceInfo(event.device) event.device.closePhidget() def onErrorHandler(event): logString = "Stepper Error " + str( event.device.getSerialNum()) + ", Error: " + event.description #print(logString) DisplayErrorDeviceInfo(event.device) def onServerConnectHandler(event): logString = "Stepper Server Connect " + str( event.device.getSerialNum()) #print(logString) def onServerDisconnectHandler(event): logString = "Stepper Server Disconnect " + str( event.device.getSerialNum()) #print(logString) def currentChangeHandler(event): logString = "Stepper Current Changed" #print(logString) try: conn = sqlite3.connect(databasepath) conn.execute( "INSERT INTO STEPPER_CURRENTCHANGE VALUES(NULL, DateTime('now'), ?, ?, ?)", (event.device.getSerialNum(), event.index, event.current)) conn.commit() conn.close() except sqlite3.Error as e: print "An error occurred:", e.args[0] def inputChangeHandler(event): logString = "Stepper Input Changed" #print(logString) try: conn = sqlite3.connect(databasepath) conn.execute( "INSERT INTO STEPPER_INPUTCHANGE VALUES(NULL, DateTime('now'), ?, ?, ?)", (event.device.getSerialNum(), event.index, int(event.state))) conn.commit() conn.close() except sqlite3.Error as e: print "An error occurred:", e.args[0] def positionChangeHandler(event): logString = "Stepper Position Changed" #print(logString) try: conn = sqlite3.connect(databasepath) conn.execute( "INSERT INTO STEPPER_POSITIONCHANGE VALUES(NULL, DateTime('now'), ?, ?, ?)", (event.device.getSerialNum(), event.index, event.position)) conn.commit() conn.close() except sqlite3.Error as e: print "An error occurred:", e.args[0] def velocityChangeHandler(event): logString = "Stepper Velocity Changed" #print(logString) try: conn = sqlite3.connect(databasepath) conn.execute( "INSERT INTO STEPPER_VELOCITYCHANGE VALUES(NULL, DateTime('now'), ?, ?, ?)", (event.device.getSerialNum(), event.index, event.velocity)) conn.commit() conn.close() except sqlite3.Error as e: print "An error occurred:", e.args[0] try: p = Stepper() p.setOnAttachHandler(onAttachHandler) p.setOnDetachHandler(onDetachHandler) p.setOnErrorhandler(onErrorHandler) p.setOnServerConnectHandler(onServerConnectHandler) p.setOnServerDisconnectHandler(onServerDisconnectHandler) p.setOnCurrentChangeHandler(currentChangeHandler) p.setOnInputChangeHandler(inputChangeHandler) p.setOnPositionChangeHandler(positionChangeHandler) p.setOnVelocityChangeHandler(velocityChangeHandler) p.openPhidget(serialNumber) except PhidgetException as e: print("Phidget Exception %i: %s" % (e.code, e.details)) print("Exiting...") exit(1)