1. 立项背景和目标
智能移动机器人是物联网与嵌入式运动控制领域典型应用,传统遥控小车无法自主保持平衡,操控难度高。本项目立足智能硬件运动控制业务,结合姿态传感技术,目标开发一台基于STM32的两轮自平衡小车,实现车体自主平衡、姿态稳定控制、蓝牙无线遥控调速转向,可应用于小型巡检、智能移动载体场景,掌握闭环PID运动控制、姿态解算、无线指令交互整套嵌入式开发流程。
2. 软件核心功能模块
1. 姿态采集模块:驱动陀螺仪加速度MPU6050传感器,读取车体角速度、倾角原始数据;
2. 姿态解算与PID控制模块:对原始传感数据滤波处理,通过PID闭环算法计算输出控制量;
3. 电机驱动模块:输出PWM波形,驱动左右直流电机,调整转速与转向,抵消倾斜角度,维持车体平衡;
4. 蓝牙通信模块:接收手机蓝牙端下发的操控指令,解析前进、后退、左右转向、速度档位命令
5. 系统调度模块:基于FreeRTOS实时操作系统,划分姿态采集、PID运算、电机控制、蓝牙指令解析多任务并发执行。
3. 完整业务流程路径
MPU6050实时采集车体倾斜角度、运动加速度数据 → STM32通过I2C接口读取原始数据并软件滤波 → PID控制器根据倾角偏差值计算电机输出PWM数值 → 驱动电机正反转动,输出力矩校正车身姿态,实现自平衡;
同时蓝牙模块实时监听外部操控指令 → FreeRTOS任务解析指令参数,叠加速度、转向控制量至PID输出值 → 小车同步完成平衡+遥控行进动作,整套闭环控制链路毫秒级循环运行,实现稳定可控的智能平衡运动。
1. 整体架构与技术栈
整体采用嵌入式分层架构:硬件层(STM32主控、MPU6050姿态传感器、直流减速电机、蓝牙模块、L298N电机驱动板);驱动层(C语言编写I2C、PWM、蓝牙串口底层驱动);系统层(FreeRTOS实时操作系统);算法应用层(姿态融合解算、PID闭环控制算法)。
核心技术栈:C语言、STM32单片机、Keil MDK、FreeRTOS、PWM波形输出、I2C通信、PID控制算法、串口蓝牙通信。
2. 个人负责模块&量化成果
本人独立完成平衡小车全部固件开发、硬件接线调试、参数整定工作:
1. 编写传感器、电机、蓝牙全套底层驱动代码,总代码量约3000行;
2. 移植FreeRTOS系统,划分四大独立任务,实现姿态采样、算法运算、电机输出、指令接收并行运行;
3. 分段整定PID参数,最终车体静态平衡倾角误差控制在±1.5°以内,行驶过程无明显抖动;
4. 蓝牙通信协议解析调试,可稳定接收手机指令,无级调速、灵活转向,遥控响应延迟<20ms;
5. 整车连续通电测试2小时,平衡控制系统全程稳定,不会倾倒、失控、死机。
3. 难点、问题及解决方案
1. 难点:车体无法自主平衡,左右剧烈晃动,极易倾倒;
解决方案:拆分PID参数调试逻辑,先单独调试比例P参数,实现基础角度纠偏;再加入积分I消除静态倾斜偏差;最后调试微分D参数抑制晃动抖动,分段迭代优化整套参数,最终实现平稳平衡。
2. 难点:多任务并行时,PID运算耗时过高,导致姿态控制周期不稳定,平衡效果变差;
解决方案:优化任务优先级,将PID姿态控制任务设置为最高优先级,精简算法冗余计算,缩短单次运算耗时,保证控制周期固定,闭环控制系统实时性达标。
3. 难点:传感器原始数据噪声大,倾角数值跳变,导致电机频繁乱转;
解决方案:采用一阶互补滤波算法融合加速度计与陀螺仪数据,过滤高频噪声,输出平滑稳定的倾角数值,控制系统输出更加平稳顺滑。
极简浓缩版(直接粘贴填写框)