Beispiel #1
0
    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)
Beispiel #2
0
    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
Beispiel #3
0
    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)
Beispiel #4
0
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
Beispiel #6
0
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)
Beispiel #7
0
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)
Beispiel #8
0
#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)
Beispiel #9
0
 def __init__(self):
     self.stepper = Stepper()
     self.stepper.openPhidget()
     print('attaching stepper dev ...')
     self.stepper.waitForAttach(10000)
     self.DisplayDeviceInfo
Beispiel #10
0
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)