-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjoeMotor.py
More file actions
64 lines (52 loc) · 1.75 KB
/
joeMotor.py
File metadata and controls
64 lines (52 loc) · 1.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/usr/bin/env python
#Basic imports
from ctypes import *
import sys
import time
#Phidget specific imports
from Phidgets.PhidgetException import PhidgetErrorCodes, PhidgetException
from Phidgets.Events.Events import AttachEventArgs, DetachEventArgs, ErrorEventArgs, InputChangeEventArgs, CurrentChangeEventArgs, StepperPositionChangeEventArgs, VelocityChangeEventArgs
from Phidgets.Devices.Stepper import Stepper
from Phidgets.Phidget import PhidgetLogLevel
"""
Haydon Kerk Bipolar Stepper start parameters
A = Red/White
B = Red
C = Green/White
D = Green
Vel Limit = 22321
Accel = 262144
Current Limit = 0.31
"""
class PhidgetMotorController(object):
def __init__(self):
self.stepper = Stepper()
self.stepper.openPhidget()
print('attaching stepper dev ...')
self.stepper.waitForAttach(10000)
self.DisplayDeviceInfo()
def DisplayDeviceInfo(self):
print("|- %8s -|- %30s -|- %10d -|- %8d -|" % (self.stepper.isAttached(), self.stepper.getDeviceName(), self.stepper.getSerialNum(), self.stepper.getDeviceVersion()))
print("Number of Motors: %i" % (self.stepper.getMotorCount()))
def disconnDev(self):
self.motorPower(False)
self.stepper.closePhidget()
def setupParm(self):
self.stepper.setAcceleration(0, 90000)
self.stepper.setVelocityLimit(0, 6200)
self.stepper.setCurrentLimit(0, 0.3)
self.stepper.setCurrentPosition(0,0)
def moveMotor(self, pos = None):
self.stepper.setTargetPosition(0, int(pos))
while self.stepper.getCurrentPosition(0) != int(pos) :
print self.stepper.getCurrentPosition(0)
time.sleep(.1)
def motorPower(self, val = False):
self.stepper.setEngaged(0,val)
if __name__ == "__main__":
p = PhidgetMotorController()
p.setupParm()
p.motorPower(True)
p.moveMotor(20000)
p.moveMotor(0)
p.disconnDev()