git-svn-id: http://moon:8086/svn/projects/HendiControl@374 fda53097-d464-4ada-af97-ba876c37ca34
84 lines
1.7 KiB
Python
84 lines
1.7 KiB
Python
from astirrer import AStirrer
|
|
import serial
|
|
import time
|
|
import serial
|
|
|
|
|
|
class Stirrer_pololu1376(AStirrer):
|
|
def name(self):
|
|
return "Stirrer_pololu1376"
|
|
|
|
def __init__(self, params):
|
|
super(Stirrer_pololu1376, self).__init__(params["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:
|
|
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):
|
|
s = self.ser.readline().decode("utf-8").replace("\n", '').replace("\r", '')
|
|
return s
|
|
|
|
def getSpeed(self):
|
|
if self.isOn and self.isMasterOn:
|
|
return self.speed
|
|
return 0
|
|
|
|
def activate(self):
|
|
if self.isMasterOn == 0:
|
|
self.log("Switched On")
|
|
self.isMasterOn = 1
|
|
self.ser_send("go")
|
|
|
|
def deactivate(self):
|
|
if self.isMasterOn == 1:
|
|
self.log("Switched Off")
|
|
self.isMasterOn = 0
|
|
self.ser_send("x")
|
|
|
|
def onSetSpeed(self, speed):
|
|
self.ser_send("F" + str(speed) + "%")
|
|
self.log("Set speed to {} %".format(speed))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
s = Pololu1376({'dt': 1.0, "port":"/dev/ttyACM0", "speed":"115200"})
|
|
s.activate()
|
|
|
|
print ("Set some speeds")
|
|
s.setSpeed(50)
|
|
time.sleep(2)
|
|
s.setSpeed(20)
|
|
time.sleep(2)
|
|
s.setSpeed(50)
|
|
time.sleep(2)
|
|
|
|
print ("Pulsed operation, duty cycle = 50%")
|
|
s.setDutyCycle(0.5)
|
|
s.setCycleTime(10)
|
|
for i in range(1,30):
|
|
s.process()
|
|
time.sleep(1)
|
|
|
|
print ("Pulsed operation, duty cycle = 20%")
|
|
s.setDutyCycle(0.2)
|
|
s.setCycleTime(10)
|
|
for i in range(1,30):
|
|
s.process()
|
|
time.sleep(1)
|
|
|
|
s.deactivate()
|