From 6196f944c6cc648c7535111a5baf15ebf15f3073 Mon Sep 17 00:00:00 2001 From: jens Date: Wed, 11 Aug 2021 17:49:37 +0200 Subject: [PATCH] - use new Pololu driver --- .../actor/{Pololu1376.py => pololu1376.py} | 6 ++-- components/actor/stirrerpololu1376.py | 30 +++++-------------- 2 files changed, 10 insertions(+), 26 deletions(-) rename components/actor/{Pololu1376.py => pololu1376.py} (99%) diff --git a/components/actor/Pololu1376.py b/components/actor/pololu1376.py similarity index 99% rename from components/actor/Pololu1376.py rename to components/actor/pololu1376.py index dc11089..3846bed 100644 --- a/components/actor/Pololu1376.py +++ b/components/actor/pololu1376.py @@ -78,6 +78,9 @@ class Pololu1376: def go(self): return self.cmd("GO") + def stop(self): + return self.cmd("X") + def motor_forward(self, speed_percent): return self.cmd("F" + str(int(speed_percent)) + "%") @@ -87,9 +90,6 @@ class Pololu1376: def motor_brake(self, brake_amount_percent): return self.cmd("B" + str(int(brake_amount_percent)) + "%") - def motor_stop(self): - return self.cmd("X") - def motor_set_limit(self, value): self.cmd("L" + str(value)) diff --git a/components/actor/stirrerpololu1376.py b/components/actor/stirrerpololu1376.py index 7459c62..088ba15 100644 --- a/components/actor/stirrerpololu1376.py +++ b/components/actor/stirrerpololu1376.py @@ -1,5 +1,6 @@ from contextlib import contextmanager from components import AStirrer +from pololu1376 import Pololu1376 import time import serial @@ -12,19 +13,9 @@ class StirrerPololu1376(AStirrer): AStirrer.__init__(self, dt) self.isMasterOn = 0 - self.ser_speed = params['speed'] - self.ser_port = params['port'] - self.ser = serial.Serial(self.ser_port, self.ser_speed) - self.ser.set_output_flow_control(False) - try: - self.ser.open() - except serial.SerialException: - self.ser.close() - self.ser.open() - - self.ser_send('V') - self.ser_recv() - + ser = serial.Serial(params['port'], params['speed']) + ser.set_output_flow_control(False) + self.drv = Pololu1376(ser) self.activate(False) @contextmanager @@ -35,13 +26,6 @@ class StirrerPololu1376(AStirrer): finally: self.activate(False) - def ser_send(self, cmd): - self.ser.write((cmd + '\r\n').encode()) - - def ser_recv(self): - data = self.ser.readline().decode("utf-8").replace("\n", '').replace("\r", '') - return data - def get_speed(self): if self.isOn and self.is_activated(): return self.speed @@ -50,12 +34,12 @@ class StirrerPololu1376(AStirrer): def activate(self, enable): print("activate {}".format(enable)) if enable: - self.ser_send("go") + self.drv.go() else: - self.ser_send("X") + self.drv.stop() def on_set_speed(self, speed): - self.ser_send("F" + str(int(speed)) + "%") + self.drv.motor_forward(speed) print("Set speed to {} %".format(speed))