feat: 初始化项目,添加电机控制、CAN通信、QT界面等模块
This commit is contained in:
55
test_chuankou.py
Normal file
55
test_chuankou.py
Normal file
@ -0,0 +1,55 @@
|
||||
from calculate.calculate_angle import main_of_5dof
|
||||
|
||||
# control_with_serial.py
|
||||
|
||||
|
||||
# 📡 初始化串口连接
|
||||
def init_serial(port=SERIAL_PORT, baud_rate=BAUD_RATE):
|
||||
try:
|
||||
ser = serial.Serial(port, baud_rate, timeout=TIMEOUT)
|
||||
print(f"串口已连接: {port} @ {baud_rate}")
|
||||
return ser
|
||||
except Exception as e:
|
||||
print(f"无法打开串口 {port}: {e}")
|
||||
return None
|
||||
|
||||
# 📤 发送角度到串口
|
||||
def send_angles(ser, theta1_deg, theta4_deg):
|
||||
# 格式:theta1_deg,theta4_deg\n
|
||||
data = f"{int(theta1_deg)},{int(theta4_deg)}\n"
|
||||
try:
|
||||
ser.write(data.encode())
|
||||
print(f"已发送角度: theta1 = {theta1_deg}°, theta4 = {theta4_deg}°")
|
||||
except Exception as e:
|
||||
print(f"发送失败: {e}")
|
||||
|
||||
# 🚀 主程序入口
|
||||
if __name__ == "__main__":
|
||||
# 调用你的轨迹规划函数
|
||||
angles_list = main_of_5dof(
|
||||
trajectory_type='line',
|
||||
start=(0, 0),
|
||||
end=(200, 300),
|
||||
show_animation=False
|
||||
)
|
||||
|
||||
# 初始化串口
|
||||
ser = init_serial()
|
||||
if ser is None:
|
||||
exit(1)
|
||||
|
||||
# 遍历角度列表并发送
|
||||
for i, (theta1, theta4) in enumerate(angles_list):
|
||||
theta1_deg = np.degrees(theta1)
|
||||
theta4_deg = np.degrees(theta4)
|
||||
|
||||
print(f"第 {i} 帧角度: theta1 = {theta1_deg:.2f}°, theta4 = {theta4_deg:.2f}°")
|
||||
send_angles(ser, theta1_deg, theta4_deg)
|
||||
|
||||
# 可选:每帧之间加延迟,控制发送速度
|
||||
import time
|
||||
time.sleep(0.05) # 每帧间隔 50ms
|
||||
|
||||
# 关闭串口
|
||||
ser.close()
|
||||
print("串口已关闭")
|
||||
Reference in New Issue
Block a user