From b37bb5c7201b95c2576f96bb6f7eb0c233bc50e3 Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Mon, 25 Mar 2019 19:34:20 +0000 Subject: [PATCH] - refactored git-svn-id: http://moon:8086/svn/projects/HendiControl@130 fda53097-d464-4ada-af97-ba876c37ca34 --- Control/brewpi/pololu1376.py | 44 ++++++++++++++++++++++++++++-------- 1 file changed, 35 insertions(+), 9 deletions(-) diff --git a/Control/brewpi/pololu1376.py b/Control/brewpi/pololu1376.py index 101333b..dda0c89 100644 --- a/Control/brewpi/pololu1376.py +++ b/Control/brewpi/pololu1376.py @@ -1,8 +1,9 @@ from astirrer import AStirrer import serial +import time 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.rpm = 0 self.cycleTime = 1 @@ -20,8 +21,15 @@ class Pololu1376(AStirrer): self.ser.close() self.ser.open() - self.ser.write("V") - print(self.ser.read()) + self.ser_send('V') + 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): dt = self.params["dt"] @@ -39,10 +47,10 @@ class Pololu1376(AStirrer): 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 setSpeed(self, speed): + self.log ("Stirrer: Set RPM to {} %".format(speed)) + self.speed = speed + def setCycleTime(self, 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.dutyCycle = dutyCycle - def getRpm(self): + def getSpeed(self): if self.isOn and self.isMasterOn: - return self.rpm + return self.speed return 0 def start(self): self.isMasterOn = 1 self.log("Stirrer: switched On") + self.ser_send("go") def stop(self): self.isMasterOn = 0 self.log("Stirrer: switched Off") + self.ser_send("x") + + def setMotorSpeed(self, speed): + self.ser_send("F" + str(speed) + "%") if __name__ == '__main__': 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() +