- added motor driver
git-svn-id: http://moon:8086/svn/projects/HendiControl@128 fda53097-d464-4ada-af97-ba876c37ca34
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
from astirrer import AStirrer
|
||||
import serial
|
||||
|
||||
class Pololu1376(AStirrer):
|
||||
def __init__(self, params, com_port='/dev/ttyUSB0', com_baud=115200):
|
||||
self.params = params
|
||||
self.rpm = 0
|
||||
self.cycleTime = 1
|
||||
self.dutyCycle = 1
|
||||
self.cycleCounter = 0
|
||||
self.isOn = 0
|
||||
self.isMasterOn = 0
|
||||
|
||||
self.ser = serial.Serial(com_port, com_baud)
|
||||
self.ser.set_output_flow_control(False)
|
||||
|
||||
try:
|
||||
self.ser.open()
|
||||
except:
|
||||
self.ser.close()
|
||||
self.ser.open()
|
||||
|
||||
self.ser.write("V")
|
||||
print(self.ser.read())
|
||||
|
||||
def process(self):
|
||||
dt = self.params["dt"]
|
||||
|
||||
self.cycleCounter -= dt
|
||||
if self.cycleCounter <= 0:
|
||||
self.cycleCounter = self.cycleTime
|
||||
|
||||
if self.cycleCounter <= (self.cycleTime * self.dutyCycle):
|
||||
if not self.isOn:
|
||||
self.log ("Stirrer: On")
|
||||
self.isOn = 1
|
||||
else:
|
||||
if self.isOn:
|
||||
self.log ("Stirrer: Off")
|
||||
self.isOn = 0
|
||||
|
||||
def setRpm(self, rpm):
|
||||
self.log ("Stirrer: Set RPM to {} rpm".format(rpm))
|
||||
self.rpm = rpm
|
||||
self.ser.write("F" + str(rpm))
|
||||
|
||||
def setCycleTime(self, time):
|
||||
self.log ("Stirrer: Set cycle time to {} s".format(time))
|
||||
self.cycleTime = time
|
||||
|
||||
def setDutyCycle(self, dutyCycle):
|
||||
self.log ("Stirrer: Set duty cycle to {} %".format(100*dutyCycle))
|
||||
self.dutyCycle = dutyCycle
|
||||
|
||||
def getRpm(self):
|
||||
if self.isOn and self.isMasterOn:
|
||||
return self.rpm
|
||||
return 0
|
||||
|
||||
def start(self):
|
||||
self.isMasterOn = 1
|
||||
self.log("Stirrer: switched On")
|
||||
|
||||
def stop(self):
|
||||
self.isMasterOn = 0
|
||||
self.log("Stirrer: switched Off")
|
||||
|
||||
if __name__ == '__main__':
|
||||
s = Pololu1376(None, "/dev/ttyACM0", "115200")
|
||||
Reference in New Issue
Block a user