✨亮点速览:这是我和我的团队构建的气垫船控制系统,采用沁恒微电子公司的 CH32V307 + FreeRTOS,实现了气垫船的全向精准控制。不仅“能动”,还有不错的 速度、角度控制精度。下面,我将带你深入这个硬核而优雅的嵌入式系统世界。
- 前沿架构:基于RISC-V生态的CH32V307,探索国产芯片+开源指令集的可能性
- 实时系统:FreeRTOS多任务调度,可以实时性地完成任务控制
- 算法深度:从电机无感驱动到运动串级PID控制的全链路实现(这里要感谢逐飞科技的大力开源)
- 工程完备:硬件设计→固件开发→算法调试→系统集成的完整闭环
这不是一个简单的“点灯Demo”,而是一个实际参加了竞赛、解决了真实工程挑战的项目。我和我的团队一起面对并攻克了:
- 实时性保障(点击链接查看debug日志):在144MHz的RISC-V核心上优化FreeRTOS任务调度
- 控制精度:在无传感器条件下实现稳定的电机驱动和姿态控制
- 系统集成:将传感器、执行器、人机交互有机整合为可靠系统
Hovercraft_Control_System/
├── README.md
├── Tools/ # 测试工具和辅助软件
├── Document/ # 技术文档和芯片手册
├── Firmware/ # 嵌入式固件和驱动程序
└── Hardware/ # 电路原理图和PCB设计
本系统采用一套分层化、模块化的软件架构,自顶向下划分为业务逻辑层、功能中间件层、硬件驱动层以及片上外设驱动层,层间通过标准化 API 接口实现解耦,确保系统的高内聚低耦合特性。
在业务逻辑层,我们构建了基于视觉的图像识别模块与实时元素决策模块,前者通过摄像头采集环境信息并识别关键航路点与障碍物,后者则依据识别结果、IMU姿态数据以及预设航迹规划,通过串并级 PID 算法生成精确的电机控制指令。同时,该层集成了用户交互(UI菜单)与数据传输(蓝牙)功能,实现了控制指令下发与船体状态信息的双向通信。
在功能中间件层,我们整合了包括 OTSU 图像二值化、数字滤波器、PID控制器以及VOFA+上位机调试协议在内的核心算法库与工具集,为上层业务提供高效的计算与通信支持。
在硬件驱动层,逐飞科技对电机、OLED显示屏、摄像头、IMU 等外设进行了统一的 抽象与封装,提供了稳定可靠的设备操作接口。
在片上外设驱动层,沁恒微电子对 CH32V307 的片上外设驱动做了详细的封装,提供了标准化的外设库函数,涵盖 UART、GPIO、DMA、PWM、ADC、Timer 等核心模块。
-
无刷电机无感驱动(由逐飞科技提供)
- 基于反电动势过零检测的方波驱动算法
- 启动策略优化:三段式启动(预定位→加速→闭环)
-
串并级PID运动控制
// 简化的控制逻辑 - 伪代码
/* 外环输入:摄像头采集的图像 -> 进行图像分析 -> 得出的误差
* 外环输出:外环PID值
*/
outer_loop = pid_calc(&image_pid, target_image, actual_image);
/* 内环输入:外环输出-PID值
* 内环输出:changePWM -> 控制电机转速
*/
inner_loop = pid_calc(&angular_velocity_pid, outer_loop, actual_angular_velocity);
/* 速度环输入:编码器实际采集到的速度
* 速度环输出:basePWM -> 控制电机 基准 转速
*/
speed_loop = pid_calc(&speed_pid, target_speed, actual_speed);
// 基准速度 + 内环输出 -> 控制电机 PWM 变化 -> 电机转速变化
motor_output = constrain(speed_loop + inner_loop, -MAX_PWM, MAX_PWM);- FreeRTOS任务设计
我们采用硬实时中断触发 + 任务级软分频的混合架构。针对气垫船控制的特点,将系统划分为四个优先级分明的任务。
| 任务名称 | 优先级 | 触发方式 | 功能描述 |
|---|---|---|---|
| Control_Task | 最高 | TIM6 1ms 任务通知 | 硬实时控制环:IMU 姿态解算、利用 PID 对 PWM 计算、电机驱动 |
| Perception_Task | 次高 | 摄像头场中断通知 | 图像处理:赛道识别、边线提取、路径决策 |
| System_Task | 次低 | vTaskDelayUntil 100ms | 系统监控:电池电压采集、状态更新 |
| UI_Task | 最低 | vTaskDelayUntil 40ms | 人机交互:LCD 刷新、编码器扫描、菜单响应 |
既保证 1ms 控制环的严格实时性,又兼顾图像处理、UI 响应等复杂功能的执行效率。
- 安装开发环境:MountRiver Studio (MRS)
- 配置工具链:RISC-V GCC 编译工具链
- 准备调试器:WCH-LinkE 调试编程器
# 克隆项目
git clone https://github.com/JoinNico/Hovercraft_Control_System.git
# 导入工程到 MRS
# 配置编译选项
# 连接硬件并烧录程序- MCU测试:上电后观察RGB LED状态(应显示系统状态)
- 屏幕按键测试:旋转EC11编码器浏览四级菜单
- 电机测试:在“ Motor Test ”菜单中尝试控制单个电机
- 传感器测试:查看显示屏上的实时传感器数据
- 参数整定:使用配套上位机工具调整 PID 参数
- 数据监控:通过串口实时监控系统运行状态
- 性能测试:分模块测试各功能单元性能指标
- 全国大学生智能汽车竞赛组委会 - 提供宝贵的竞赛平台和学习机会
- 南京沁恒微电子股份有限公司 - 提供 CH32V307 RISC-V 芯片技术支持和开发工具
- 成都逐飞科技有限公司 - 提供完善的 CH32V307 软件库和硬件设计参考
- DeepSeek 等 AI 大模型 - 提供随时随地的技术解答和润色那刻板印象般的文字
感谢所有为项目做出贡献的老师和同学们,你们的辛勤付出和智慧结晶成就了这个项目!
如果这个项目对你有启发,请给个⭐️ Star支持!
你的认可是我继续开源优质项目的最佳动力。
最后更新:2026年3月 | 持续维护中...


