为了在 STM32H7 上验证运动控制算法,同时避免真实割草环境带来的风险,python/hitl 子目录负责实现电脑仿真 ↔ STM32H7 的闭环调试工具。核心目标:
fmin(10 Hz)和 fmim(100 Hz)数据,通过串口 2 输入到 STM32H7。PythonLink 协议(前进、转向两个量)通过串口 2 回传给 Python,驱动仿真器更新车辆状态。| 功能 | STM32H7 串口 | 方向 | 协议/内容 | 频率 |
|---|---|---|---|---|
| 传感器仿真输入 | UART2 (RX) | Python → STM32 | IM23A fmin / fmim 二进制帧 |
10 Hz / 100 Hz |
| 控制输出回传 | UART2 (TX) | STM32 → Python | PythonLink 控制帧(前进/转向) |
≈ 控制频率 |
| 调试日志 | UART5 (TX) | STM32 → Python | 纯文本或协议日志 | 实时,921600 bps |
flowchart LR
subgraph PC仿真端
Sim[仿真器\n状态积分]
NAVFrame[IM23A fmin 帧生成\n10 Hz]
IMUFrame[IM23A fmim 帧生成\n100 Hz]
CtrlRx[PythonLink控制帧接收]
LogSink[串口5日志解析/保存]
end
subgraph STM32H7
UART2["UART2\n(GPS/IMU输入 & 控制输出)"]
CtrlAlgo[运动控制算法\n(PID + 纯跟踪)]
UART5["UART5\n(921600) 日志输出"]
end
Sim --> NAVFrame --> |UART2 TX| UART2
Sim --> IMUFrame --> |UART2 TX| UART2
UART2 --> CtrlAlgo
CtrlAlgo --> |前进/转向控制帧| UART2 --> CtrlRx --> Sim
CtrlAlgo --> |运行日志| UART5 --> |串口5 RX| LogSink
fmin/fmim 输出格式与 PythonLink 控制帧,保证实车与仿真间可无缝切换。hhmmss.ss),让 STM32H7 逻辑保持一致。该 README 将作为 HITL 子系统的设计索引,具体实现位于同目录下的 Python 模块中。