generated from Template/H563ZI-HAL-CMake-Template
ManGoWalk --- 智能盲杖导航系统
日志
2025.6.4
添加了Thread X 操作系统
2025.6.25
README: STM32H563 ThreadX Embedded AI System
✅ 当前已实现功能
本系统基于 STM32H563ZIT6 和 ThreadX 实时操作系统,模块化地实现了以下核心功能:
1. BLE 通信模块(HCBle.c)
- 支持 DMA + 空闲中断模式接收
- 支持 JSON 指令解析与封装(如:
{"leftSpeed":X,"rightSpeed":Y}) - 支持 BLE 指令转事件 + 数据发送任务队列
2. GPS 定位模块(gps.c)
- 支持 DMA + 固定长度接收
- 提供位置数据
lat/lon解析与格式转换 - 冷启动支持(首次 GPS fix 时发送提示)
3. IMU 模块(imu.c)
- 模拟读取 X 轴角度(后续替换为实际驱动) 暂时还未完成
- 结合 GPS 信息生成完整的 Location JSON 包发送至 APP
4. 超声波避障模块(Ultrasound.c)
- 支持 DWT 微秒延迟与定时捕获
- 检测障碍 <30cm 自动触发蜂鸣器、震动器
5. 控制逻辑线程(Main_Control)
- 管理 BLE 控制与避障响应行为
- 控制蜂鸣器与振动提示器
6. 多线程调度(ThreadX)
- 所有任务通过 ThreadX 线程调度与事件中转完成解耦
- BLE/GPS/IMU/Ultrasound 主从线程结构分离清晰
🚧 尚未实现或测试模块
| 模块 | 当前状态 | 说明 |
|---|---|---|
| IMU 实际驱动 | ❌未实现 | 当前为模拟值 95°,需替换为传感器读取 |
| OpenMV 视觉模块 | ❌未接入 | 后续可通过 UART/USB 接口处理红绿灯识别 |
| 电机控制接口 | ❌未实现 | BLE 指令接收后尚未真正调用 set_motor_speed() |
| UI 显示 / APP 交互测试 | 🔄进行中 | JSON 包格式统一,需手机APP实际验证 |
🗺️ 系统拓扑图参考
🗺️ 引脚配置参考
请参考:Point 引脚配置图.png
对于图中的有更改过的部分引脚进行说明
|引脚名称|用途|外设|
|PC9|HC_Trig|超声波|
|PC8|HC_Echo|超声波|
|PB8|蓝牙接收---GPDMA1|BLE|
|PB9|蓝牙发送---GPDMA1|BLE|
|PD6|GPS接收---GPDMA1|GPS|
|PD5|GPS发送|GPS|
📋 开发环境配置说明
软件工具
- IDE:STM32CubeIDE / Keil MDK
- RTOS:ThreadX (via STM32CubeMX Middleware)
- 串口调试:串口助手、BLE调试助手
编译配置
- 使用
-O1优化选项 - 启用 STM32CubeMX 中的 ThreadX 中间件
- 打开 UART DMA + IDLE、定时器中断等相关配置
推荐硬件连接
- GPS模块:连接 USART2 (DMA + TC 中断)
- BLE模块:连接 USART1 (DMA + IDLE)
- 超声波模块:使用 TIM2 输入捕获
- IMU模块:I2C / SPI 接口(待扩展)
- 蜂鸣器与震动马达:普通 GPIO 控制
🛠️ 接下来建议的开发步骤
- 完成 IMU 驱动集成:读取 MPU6050 / ICM20948 等传感器
- 实现电机控制接口:将 BLE 指令转换为 PWM 或电机驱动调用
- 集成 OpenMV 模块:红绿灯识别后通过事件机制上报
- 完善 APP 端联调:调试 BLE 接收逻辑,验证 JSON 包格式
- 加入 Watchdog 与线程看门狗:防止任务异常卡死
- 优化能耗管理:使用 ThreadX 的 tickless 模式管理低功耗
Description
Languages
C
95%
HTML
2.1%
Makefile
1.6%
Assembly
1.3%
