- refactored
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
from components import AStirrer
|
||||
import time
|
||||
import serial
|
||||
|
||||
|
||||
class StirrerPololu1376(AStirrer):
|
||||
def name(self):
|
||||
return "Pololu1376"
|
||||
|
||||
def __init__(self, dt, port, baudrate):
|
||||
super(StirrerPololu1376, self).__init__(dt)
|
||||
self.isMasterOn = 0
|
||||
|
||||
self.ser_speed = baudrate
|
||||
self.ser_port = 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()
|
||||
|
||||
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
|
||||
return 0
|
||||
|
||||
def on_activate(self, enable):
|
||||
self.ser_send("go")
|
||||
print("on_activate {}".format(enable))
|
||||
|
||||
def on_set_speed(self, speed):
|
||||
self.ser_send("F" + str(speed) + "%")
|
||||
print("Set speed to {} %".format(speed))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
s = StirrerPololu1376(dt=1.0, port="/dev/ttyACM0", baudrate=115200)
|
||||
s.activate(True)
|
||||
|
||||
print("Set some speeds")
|
||||
s.set_speed(50)
|
||||
time.sleep(2)
|
||||
s.set_speed(20)
|
||||
time.sleep(2)
|
||||
s.set_speed(50)
|
||||
time.sleep(2)
|
||||
|
||||
print("Pulsed operation, duty cycle = 50%")
|
||||
s.set_duty_cycle(0.5)
|
||||
s.set_cycle_time(10)
|
||||
for i in range(1, 30):
|
||||
s.process()
|
||||
time.sleep(1)
|
||||
|
||||
print("Pulsed operation, duty cycle = 20%")
|
||||
s.set_duty_cycle(0.2)
|
||||
s.set_cycle_time(10)
|
||||
for i in range(1, 30):
|
||||
s.process()
|
||||
time.sleep(1)
|
||||
|
||||
s.activate(False)
|
||||
Reference in New Issue
Block a user