From ea2ff1de088a73cfc87d36d11b5fb572b5d558bc Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Mon, 25 Mar 2019 18:52:39 +0000 Subject: [PATCH] - added motor driver git-svn-id: http://moon:8086/svn/projects/HendiControl@128 fda53097-d464-4ada-af97-ba876c37ca34 --- Control/brewpi/pololu1376.py | 69 ++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 Control/brewpi/pololu1376.py diff --git a/Control/brewpi/pololu1376.py b/Control/brewpi/pololu1376.py new file mode 100644 index 0000000..101333b --- /dev/null +++ b/Control/brewpi/pololu1376.py @@ -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")