- use new Pololu driver
This commit is contained in:
@@ -78,6 +78,9 @@ class Pololu1376:
|
|||||||
def go(self):
|
def go(self):
|
||||||
return self.cmd("GO")
|
return self.cmd("GO")
|
||||||
|
|
||||||
|
def stop(self):
|
||||||
|
return self.cmd("X")
|
||||||
|
|
||||||
def motor_forward(self, speed_percent):
|
def motor_forward(self, speed_percent):
|
||||||
return self.cmd("F" + str(int(speed_percent)) + "%")
|
return self.cmd("F" + str(int(speed_percent)) + "%")
|
||||||
|
|
||||||
@@ -87,9 +90,6 @@ class Pololu1376:
|
|||||||
def motor_brake(self, brake_amount_percent):
|
def motor_brake(self, brake_amount_percent):
|
||||||
return self.cmd("B" + str(int(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):
|
def motor_set_limit(self, value):
|
||||||
self.cmd("L" + str(value))
|
self.cmd("L" + str(value))
|
||||||
|
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
from contextlib import contextmanager
|
from contextlib import contextmanager
|
||||||
from components import AStirrer
|
from components import AStirrer
|
||||||
|
from pololu1376 import Pololu1376
|
||||||
import time
|
import time
|
||||||
import serial
|
import serial
|
||||||
|
|
||||||
@@ -12,19 +13,9 @@ class StirrerPololu1376(AStirrer):
|
|||||||
AStirrer.__init__(self, dt)
|
AStirrer.__init__(self, dt)
|
||||||
self.isMasterOn = 0
|
self.isMasterOn = 0
|
||||||
|
|
||||||
self.ser_speed = params['speed']
|
ser = serial.Serial(params['port'], params['speed'])
|
||||||
self.ser_port = params['port']
|
ser.set_output_flow_control(False)
|
||||||
self.ser = serial.Serial(self.ser_port, self.ser_speed)
|
self.drv = Pololu1376(ser)
|
||||||
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()
|
|
||||||
|
|
||||||
self.activate(False)
|
self.activate(False)
|
||||||
|
|
||||||
@contextmanager
|
@contextmanager
|
||||||
@@ -35,13 +26,6 @@ class StirrerPololu1376(AStirrer):
|
|||||||
finally:
|
finally:
|
||||||
self.activate(False)
|
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):
|
def get_speed(self):
|
||||||
if self.isOn and self.is_activated():
|
if self.isOn and self.is_activated():
|
||||||
return self.speed
|
return self.speed
|
||||||
@@ -50,12 +34,12 @@ class StirrerPololu1376(AStirrer):
|
|||||||
def activate(self, enable):
|
def activate(self, enable):
|
||||||
print("activate {}".format(enable))
|
print("activate {}".format(enable))
|
||||||
if enable:
|
if enable:
|
||||||
self.ser_send("go")
|
self.drv.go()
|
||||||
else:
|
else:
|
||||||
self.ser_send("X")
|
self.drv.stop()
|
||||||
|
|
||||||
def on_set_speed(self, speed):
|
def on_set_speed(self, speed):
|
||||||
self.ser_send("F" + str(int(speed)) + "%")
|
self.drv.motor_forward(speed)
|
||||||
print("Set speed to {} %".format(speed))
|
print("Set speed to {} %".format(speed))
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user