- Pololu1376: take enums as variable id
- stirrerPololu1376: Make for robust against motor cable plug
This commit is contained in:
@@ -106,22 +106,23 @@ class Pololu1376:
|
|||||||
return self.cmd("V")
|
return self.cmd("V")
|
||||||
|
|
||||||
def get_variable(self, var):
|
def get_variable(self, var):
|
||||||
return self.cmd("D" + str(var))
|
return int(self.cmd("D" + str(var.value[0])))
|
||||||
|
|
||||||
def print_vars(self):
|
def print_vars(self):
|
||||||
print ("-------------------------------------------")
|
print ("-------------------------------------------")
|
||||||
print ("STATUS : {:04X}".format(int(self.get_variable(Varid.STATUS.value[0]))))
|
print ("STATUS : {:04X}".format(self.get_variable(Varid.STATUS)))
|
||||||
print ("STATUS_ERROR_OCCURED : {:04X}".format(int(self.get_variable(Varid.STATUS_SERIAL_ERRORS_OCCURED.value[0]))))
|
print ("STATUS_ERROR_OCCURED : {:04X}".format(self.get_variable(Varid.STATUS_SERIAL_ERRORS_OCCURED)))
|
||||||
print ("STATUS_LIMIT_STATUS : {:04X}".format(int(self.get_variable(Varid.STATUS_LIMIT_STATUS.value[0]))))
|
print ("STATUS_LIMIT_STATUS : {:04X}".format(self.get_variable(Varid.STATUS_LIMIT_STATUS)))
|
||||||
print ("RC_RC1_SCALED_VALUE : {:04X}".format(int(self.get_variable(Varid.RC_RC1_SCALED_VALUE.value[0]))))
|
print ("RC_RC1_SCALED_VALUE : {:04X}".format(self.get_variable(Varid.RC_RC1_SCALED_VALUE)))
|
||||||
print ("RC_RC2_SCALED_VALUE : {:04X}".format(int(self.get_variable(Varid.RC_RC2_SCALED_VALUE.value[0]))))
|
print ("RC_RC2_SCALED_VALUE : {:04X}".format(self.get_variable(Varid.RC_RC2_SCALED_VALUE)))
|
||||||
print ("ANALOG_AN1_SCALED_VALUE : {:04X}".format(int(self.get_variable(Varid.ANALOG_AN1_SCALED_VALUE.value[0]))))
|
print ("ANALOG_AN1_SCALED_VALUE : {:04X}".format(self.get_variable(Varid.ANALOG_AN1_SCALED_VALUE)))
|
||||||
print ("ANALOG_AN2_SCALED_VALUE : {:04X}".format(int(self.get_variable(Varid.ANALOG_AN2_SCALED_VALUE.value[0]))))
|
print ("ANALOG_AN2_SCALED_VALUE : {:04X}".format(self.get_variable(Varid.ANALOG_AN2_SCALED_VALUE)))
|
||||||
print ("DIAGNOSTIC_TARGET_SPEED : {:04X}".format(int(self.get_variable(Varid.DIAGNOSTIC_TARGET_SPEED.value[0]))))
|
print ("DIAGNOSTIC_TARGET_SPEED : {:04X}".format(self.get_variable(Varid.DIAGNOSTIC_TARGET_SPEED)))
|
||||||
print ("DIAGNOSTIC_SPEED : {:04X}".format(int(self.get_variable(Varid.DIAGNOSTIC_SPEED.value[0]))))
|
print ("DIAGNOSTIC_SPEED : {:04X}".format(self.get_variable(Varid.DIAGNOSTIC_SPEED)))
|
||||||
print ("DIAGNOSTIC_TEMPERATURE_A : {:04X}".format(int(self.get_variable(Varid.DIAGNOSTIC_TEMPERATURE_A.value[0]))))
|
print ("DIAGNOSTIC_TEMPERATURE_A : {:04X}".format(self.get_variable(Varid.DIAGNOSTIC_TEMPERATURE_A)))
|
||||||
print ("DIAGNOSTIC_TEMPERATURE_B : {:04X}".format(int(self.get_variable(Varid.DIAGNOSTIC_TEMPERATURE_B.value[0]))))
|
print ("DIAGNOSTIC_TEMPERATURE_B : {:04X}".format(self.get_variable(Varid.DIAGNOSTIC_TEMPERATURE_B)))
|
||||||
print ("MOTOR_CURRENT_MA : {:04X}".format(int(self.get_variable(Varid.MOTOR_CURRENT_MA.value[0]))))
|
# print ("MOTOR_CURRENT_RAW : {:04X}".format(self.get_variable(Varid.MOTOR_CURRENT_RAW)))
|
||||||
|
# print ("MOTOR_CURRENT_MA : {:04X}".format(self.get_variable(Varid.MOTOR_CURRENT_MA)))
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
from contextlib import contextmanager
|
from contextlib import contextmanager
|
||||||
from components import AStirrer
|
from components import AStirrer
|
||||||
from pololu1376 import Pololu1376
|
from pololu1376 import *
|
||||||
import time
|
import time
|
||||||
import serial
|
import serial
|
||||||
|
|
||||||
@@ -41,9 +41,16 @@ class StirrerPololu1376(AStirrer):
|
|||||||
print("Set speed to {} %".format(speed))
|
print("Set speed to {} %".format(speed))
|
||||||
|
|
||||||
def _on_process(self):
|
def _on_process(self):
|
||||||
print("STATUS :")
|
#s print("STATUS :")
|
||||||
self.drv.print_vars()
|
# self.drv.print_vars()
|
||||||
|
status = self.drv.get_variable(Varid.STATUS)
|
||||||
|
limit_status = self.drv.get_variable(Varid.STATUS_LIMIT_STATUS)
|
||||||
|
print("Status={:02X}".format(status))
|
||||||
|
if status & 0x01 == 0x01:
|
||||||
|
if limit_status & 0x01 == 0x01:
|
||||||
|
print("Recover after motor error!")
|
||||||
|
self.drv.go()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
s = StirrerPololu1376(dt=1.0, params={'port': "/dev/ttyACM0", 'speed': 115200})
|
s = StirrerPololu1376(dt=1.0, params={'port': "/dev/ttyACM0", 'speed': 115200})
|
||||||
@@ -77,5 +84,13 @@ if __name__ == '__main__':
|
|||||||
s.set_speed(50)
|
s.set_speed(50)
|
||||||
time.sleep(3.0)
|
time.sleep(3.0)
|
||||||
|
|
||||||
|
print("Continious operation increasing speed")
|
||||||
|
for speed in range (25, 75, 5):
|
||||||
|
s.set_duty_cycle(1.0)
|
||||||
|
s.set_speed(speed)
|
||||||
|
for d in range(0,3,1):
|
||||||
|
s.process()
|
||||||
|
time.sleep(1.0)
|
||||||
|
|
||||||
print("Leaving context")
|
print("Leaving context")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user