- refactored
git-svn-id: http://moon:8086/svn/projects/HendiControl@130 fda53097-d464-4ada-af97-ba876c37ca34
This commit is contained in:
@@ -1,8 +1,9 @@
|
|||||||
from astirrer import AStirrer
|
from astirrer import AStirrer
|
||||||
import serial
|
import serial
|
||||||
|
import time
|
||||||
|
|
||||||
class Pololu1376(AStirrer):
|
class Pololu1376(AStirrer):
|
||||||
def __init__(self, params, com_port='/dev/ttyUSB0', com_baud=115200):
|
def __init__(self, params, com_port='/dev/ttyUSB0', com_baud=9600):
|
||||||
self.params = params
|
self.params = params
|
||||||
self.rpm = 0
|
self.rpm = 0
|
||||||
self.cycleTime = 1
|
self.cycleTime = 1
|
||||||
@@ -20,8 +21,15 @@ class Pololu1376(AStirrer):
|
|||||||
self.ser.close()
|
self.ser.close()
|
||||||
self.ser.open()
|
self.ser.open()
|
||||||
|
|
||||||
self.ser.write("V")
|
self.ser_send('V')
|
||||||
print(self.ser.read())
|
print(self.ser_recv())
|
||||||
|
|
||||||
|
def ser_send(self, cmd):
|
||||||
|
self.ser.write((cmd + '\r\n').encode())
|
||||||
|
|
||||||
|
def ser_recv(self):
|
||||||
|
s = self.ser.readline().decode("utf-8").replace("\n", '').replace("\r", '')
|
||||||
|
return s
|
||||||
|
|
||||||
def process(self):
|
def process(self):
|
||||||
dt = self.params["dt"]
|
dt = self.params["dt"]
|
||||||
@@ -39,10 +47,10 @@ class Pololu1376(AStirrer):
|
|||||||
self.log ("Stirrer: Off")
|
self.log ("Stirrer: Off")
|
||||||
self.isOn = 0
|
self.isOn = 0
|
||||||
|
|
||||||
def setRpm(self, rpm):
|
def setSpeed(self, speed):
|
||||||
self.log ("Stirrer: Set RPM to {} rpm".format(rpm))
|
self.log ("Stirrer: Set RPM to {} %".format(speed))
|
||||||
self.rpm = rpm
|
self.speed = speed
|
||||||
self.ser.write("F" + str(rpm))
|
|
||||||
|
|
||||||
def setCycleTime(self, time):
|
def setCycleTime(self, time):
|
||||||
self.log ("Stirrer: Set cycle time to {} s".format(time))
|
self.log ("Stirrer: Set cycle time to {} s".format(time))
|
||||||
@@ -52,18 +60,36 @@ class Pololu1376(AStirrer):
|
|||||||
self.log ("Stirrer: Set duty cycle to {} %".format(100*dutyCycle))
|
self.log ("Stirrer: Set duty cycle to {} %".format(100*dutyCycle))
|
||||||
self.dutyCycle = dutyCycle
|
self.dutyCycle = dutyCycle
|
||||||
|
|
||||||
def getRpm(self):
|
def getSpeed(self):
|
||||||
if self.isOn and self.isMasterOn:
|
if self.isOn and self.isMasterOn:
|
||||||
return self.rpm
|
return self.speed
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
self.isMasterOn = 1
|
self.isMasterOn = 1
|
||||||
self.log("Stirrer: switched On")
|
self.log("Stirrer: switched On")
|
||||||
|
self.ser_send("go")
|
||||||
|
|
||||||
def stop(self):
|
def stop(self):
|
||||||
self.isMasterOn = 0
|
self.isMasterOn = 0
|
||||||
self.log("Stirrer: switched Off")
|
self.log("Stirrer: switched Off")
|
||||||
|
self.ser_send("x")
|
||||||
|
|
||||||
|
def setMotorSpeed(self, speed):
|
||||||
|
self.ser_send("F" + str(speed) + "%")
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
s = Pololu1376(None, "/dev/ttyACM0", "115200")
|
s = Pololu1376(None, "/dev/ttyACM0", "115200")
|
||||||
|
s.start()
|
||||||
|
s.setRpm(1000)
|
||||||
|
time.sleep(2)
|
||||||
|
s.setRpm(2000)
|
||||||
|
time.sleep(2)
|
||||||
|
s.setRpm(3000)
|
||||||
|
time.sleep(2)
|
||||||
|
s.setRpm(2000)
|
||||||
|
time.sleep(2)
|
||||||
|
s.setRpm(1000)
|
||||||
|
time.sleep(2)
|
||||||
|
s.stop()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user