修改传送带电机、舵机、达妙电机等相关接口
This commit is contained in:
@ -1,20 +1,11 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
'''
|
||||
"""
|
||||
# @Time : 2026/1/5 17:01
|
||||
# @Author : reenrr
|
||||
# @File : servo_test.py
|
||||
# @Desc : 测试舵机
|
||||
'''
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
'''
|
||||
# @Time : 2025/12/2 14:05
|
||||
# @Author : reenrr
|
||||
# @File :servo.py
|
||||
# @Description : 控制舵机正反转
|
||||
'''
|
||||
|
||||
"""
|
||||
from servo_sdk import *
|
||||
import logging
|
||||
|
||||
@ -49,13 +40,13 @@ class ServoController:
|
||||
"""配置串口参数"""
|
||||
# 打开串口
|
||||
if self.port_handler.openPort():
|
||||
logging.info("成功打开串口")
|
||||
print("成功打开串口")
|
||||
else:
|
||||
raise RuntimeError("打开串口失败")
|
||||
|
||||
# 设置波特率
|
||||
if self.port_handler.setBaudRate(self.config['baudrate']):
|
||||
logging.info("设置波特率成功")
|
||||
print("设置波特率成功")
|
||||
else:
|
||||
self.port_handler.closePort()
|
||||
raise RuntimeError("设置波特率失败")
|
||||
@ -66,16 +57,16 @@ class ServoController:
|
||||
for servo_id in self.config['servo_ids']:
|
||||
enable_result = self.servo_handler.torqueEnable(servo_id)
|
||||
if enable_result[1] != 0:
|
||||
logging.info(f"[ID:{servo_id:02d}] 舵机使能失败,错误信息:{enable_result[1]}")
|
||||
print(f"[ID:{servo_id:02d}] 舵机使能失败,错误信息:{enable_result[1]}")
|
||||
enable_success = False
|
||||
else:
|
||||
logging.info(f"[ID:{servo_id:02d}] 舵机使能成功")
|
||||
print(f"[ID:{servo_id:02d}] 舵机使能成功")
|
||||
|
||||
if not enable_success:
|
||||
self.cleanup()
|
||||
raise RuntimeError("使能舵机失败,程序退出")
|
||||
|
||||
logging.info("所有舵机使能成功")
|
||||
print("所有舵机使能成功")
|
||||
|
||||
def disable_all_servos(self):
|
||||
"""失能所有舵机"""
|
||||
@ -83,16 +74,16 @@ class ServoController:
|
||||
for servo_id in self.config['servo_ids']:
|
||||
disable_result = self.servo_handler.torqueDisable(servo_id)
|
||||
if disable_result[1] != 0:
|
||||
logging.info(f"[ID:{servo_id:02d}] 舵机失能失败,错误信息:{disable_result[1]}")
|
||||
print(f"[ID:{servo_id:02d}] 舵机失能失败,错误信息:{disable_result[1]}")
|
||||
disable_success = False
|
||||
else:
|
||||
logging.info(f"[ID:{servo_id:02d}] 舵机失能成功")
|
||||
print(f"[ID:{servo_id:02d}] 舵机失能成功")
|
||||
|
||||
if not disable_success:
|
||||
self.cleanup()
|
||||
raise RuntimeError("失能舵机失败,程序退出")
|
||||
|
||||
logging.info("所有舵机失能成功")
|
||||
print("所有舵机失能成功")
|
||||
|
||||
def write_position(self, position, speed, acc):
|
||||
"""
|
||||
@ -106,13 +97,13 @@ class ServoController:
|
||||
servo_id, position, speed, acc
|
||||
)
|
||||
if not add_param_result:
|
||||
logging.info(f"[ID:{servo_id:02d}] 添加参数失败")
|
||||
print(f"[ID:{servo_id:02d}] 添加参数失败")
|
||||
continue
|
||||
|
||||
result = self.servo_handler.GroupSyncWrite.txPacket()
|
||||
if result != COMM_SUCCESS:
|
||||
logging.info(f"[ID:{servo_id:02d}] 发送指令失败:{result.getTxRxResult(result)}")
|
||||
logging.info("复位成功")
|
||||
print(f"[ID:{servo_id:02d}] 发送指令失败:{result.getTxRxResult(result)}")
|
||||
print("复位成功")
|
||||
|
||||
# 清空参数缓存
|
||||
self.servo_handler.GroupSyncWrite.clearParam()
|
||||
@ -126,26 +117,26 @@ class ServoController:
|
||||
self.disable_all_servos()
|
||||
if self.port_handler.is_open():
|
||||
self.port_handler.closePort()
|
||||
logging.info("串口已关闭")
|
||||
print("串口已关闭")
|
||||
|
||||
def run_cycle(self):
|
||||
"""运行舵机循环运动"""
|
||||
self.is_running = True
|
||||
logging.info("舵机开始循环运动(按Ctrl+C终止)...")
|
||||
print("舵机开始循环运动(按Ctrl+C终止)...")
|
||||
|
||||
while self.is_running:
|
||||
# 运动到起始位置(180度)
|
||||
self.write_position(self.config['pos_start'],
|
||||
self.config['speed'],
|
||||
self.config['acc'])
|
||||
logging.info("运动到180度")
|
||||
print("运动到180度")
|
||||
time.sleep(self.time_interval1)
|
||||
|
||||
# 运动到结束位置(0度)
|
||||
self.write_position(self.config['pos_end'],
|
||||
self.config['speed'],
|
||||
self.config['acc'])
|
||||
logging.info("运动到0度")
|
||||
print("运动到0度")
|
||||
time.sleep(self.time_interval2)
|
||||
|
||||
def run(self):
|
||||
@ -162,12 +153,12 @@ class ServoController:
|
||||
# 运行循环
|
||||
self.run_cycle()
|
||||
except KeyboardInterrupt:
|
||||
logging.info("\n用户终止程序...")
|
||||
print("\n用户终止程序...")
|
||||
self.stop()
|
||||
except RuntimeError as e:
|
||||
logging.info(f"\n运行错误:{str(e)}")
|
||||
print(f"\n运行错误:{str(e)}")
|
||||
except Exception as e:
|
||||
logging.info(f"\n程序运行异常:{str(e)}")
|
||||
print(f"\n程序运行异常:{str(e)}")
|
||||
finally:
|
||||
self.cleanup()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user