修改传送带电机、舵机、达妙电机等相关接口
This commit is contained in:
@ -22,7 +22,7 @@ class DMMotorController:
|
||||
"""
|
||||
初始化电机控制器
|
||||
:param slave_id: 从机ID,默认0x01
|
||||
:param master_id: 主机ID,默认0x11(不要设为0x00)
|
||||
:param master_id: 主机ID,默认0x11
|
||||
:param port: 串口端口,默认COM6
|
||||
:param baudrate: 波特率,默认921600
|
||||
"""
|
||||
@ -40,7 +40,6 @@ class DMMotorController:
|
||||
# 初始化电机和串口
|
||||
self.init_motor()
|
||||
|
||||
|
||||
def init_motor(self):
|
||||
"""初始化电机和串口"""
|
||||
try:
|
||||
@ -112,8 +111,8 @@ class DMMotorController:
|
||||
:param v_desired: 目标速度(rad/s, 范围[-30, 30])
|
||||
"""
|
||||
try:
|
||||
# 归零 + 发送运动指令
|
||||
self.motor_control.set_zero_position(self.motor)
|
||||
# 发送运动指令
|
||||
# self.motor_control.set_zero_position(self.motor)
|
||||
self.motor_control.control_Pos_Vel(self.motor, p_desired, v_desired)
|
||||
time.sleep(0.1)
|
||||
print(f"✅ 位置-速度控制:位置={p_desired}rad | 速度={v_desired}rad/s")
|
||||
@ -135,7 +134,10 @@ class DMMotorController:
|
||||
return False
|
||||
|
||||
def _get_mode_name(self, control_type):
|
||||
"""获取模式名称"""
|
||||
"""
|
||||
获取模式名称
|
||||
:param control_type: 控制模式(Control_Type.POS_VEl/VEL/MIT)
|
||||
"""
|
||||
# 1.定义[枚举值--中文名称]的映射字典
|
||||
mode_map = {
|
||||
Control_Type.POS_VEL: "位置-速度模式",
|
||||
@ -145,15 +147,55 @@ class DMMotorController:
|
||||
# 2.根据控制模式值获取中文名称 字典方法
|
||||
return mode_map.get(control_type, "未知模式") # “未知模式”默认值
|
||||
|
||||
def get_position(self):
|
||||
self.refresh()
|
||||
return self.motor.getPosition()
|
||||
def save_param(self):
|
||||
"""保存所有电机参数"""
|
||||
try:
|
||||
if self.motor is None:
|
||||
raise ValueError("电机实例为None,无法保存参数")
|
||||
|
||||
def refresh(self):
|
||||
self.motor_control.refresh_motor_status(self.motor)
|
||||
self.motor_control.save_motor_param(self.motor)
|
||||
print("电机参数保存成功")
|
||||
except Exception as e:
|
||||
print(f"❌ 电机参数保存失败:{str(e)}")
|
||||
|
||||
def refresh_motor_status(self):
|
||||
"""获得电机状态"""
|
||||
try:
|
||||
if self.motor is None:
|
||||
raise ValueError("电机实例为None,无法保存参数")
|
||||
|
||||
self.motor_control.refresh_motor_status(self.motor)
|
||||
print("电机状态刷新成功")
|
||||
except Exception as e:
|
||||
print(f"❌ 电机状态刷新失败:{str(e)}")
|
||||
|
||||
def get_position(self):
|
||||
"""获取电机位置"""
|
||||
try:
|
||||
if self.motor is None:
|
||||
raise ValueError("电机实例为None,无法保存参数")
|
||||
|
||||
position = self.motor.getPosition()
|
||||
print(f"获取电机位置成功,当前位置: {position}")
|
||||
return position
|
||||
except Exception as e:
|
||||
print(f"获取电机位置失败: {str(e)}")
|
||||
|
||||
def change_limit_param(self, motor_type, pmax, vmax, tmax):
|
||||
self.motor_control.change_limit_param(motor_type, pmax, vmax, tmax)
|
||||
"""
|
||||
改变电机的PMAX VMAX TMAX
|
||||
:param motor_type: 电机的类型
|
||||
:param pmax: 电机的PMAX
|
||||
:param vmax: 电机的VMAX
|
||||
:param tmax: 电机的TAMX
|
||||
"""
|
||||
try:
|
||||
self.motor_control.change_limit_param(motor_type, pmax, vmax, tmax)
|
||||
print(
|
||||
f"电机限位参数修改成功 | 类型: {motor_type} | PMAX: {pmax} | VMAX: {vmax} | TMAX: {tmax}"
|
||||
)
|
||||
except Exception as e:
|
||||
print(f"修改电机限位参数失败: {str(e)}")
|
||||
|
||||
def __del__(self):
|
||||
"""析构函数:确保程序退出时失能电机、关闭串口"""
|
||||
@ -168,7 +210,6 @@ class DMMotorController:
|
||||
except Exception as e:
|
||||
print(f"ℹ️ 析构函数执行警告:{str(e)}")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
# 1.创建电机控制器实例
|
||||
motor_controller = DMMotorController(
|
||||
|
||||
Reference in New Issue
Block a user