1. 项目概述
平衡车作为经典的控制系统实践项目,一直是嵌入式开发者和自动化爱好者的心头好。这次我们要做的是一款基于STM32微控制器的PID平衡车,目标是通过合理的硬件选型和精确的算法调参,让小车实现"稳如泰山"的自平衡效果。
这个项目最吸引人的地方在于,它完美融合了嵌入式开发、传感器技术、控制算法和机械设计等多个领域的知识。从硬件角度看,我们需要处理电机驱动、姿态感知等基础模块;从软件层面,PID算法的实现与调参则是整个项目的灵魂所在。
我曾在多个平衡车项目上栽过跟头,从最初的"摇头晃脑"到后来的"稳如磐石",积累了不少实战经验。这次就带大家从零开始,一步步搭建并调试出一个性能优异的自平衡小车。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件设计与选型
2.1 核心控制器选择
STM32F103C8T6(俗称"蓝莓派")是我们的首选控制器,原因有三:
- 充足的资源:72MHz主频、64KB Flash、20KB RAM,完全满足平衡车的计算需求
- 丰富的外设:多达3个定时器、2个ADC、多个GPIO,方便连接各类传感器
- 成熟的生态:丰富的库函数和开发资料,大大降低开发难度
提示:如果预算充足,可以考虑STM32F4系列,其硬件FPU能显著提升浮点运算效率,对复杂的控制算法更友好。
2.2 姿态传感器选型
MPU6050是平衡车的"眼睛",它集成了三轴加速度计和三轴陀螺仪,通过I2C接口与主控通信。选择它主要因为:
- 内置DMP(数字运动处理器),可硬件解算姿态角
- 成本低廉(约15元)
- 社区支持完善,有大量现成的驱动代码
实际使用中需要注意:
- 必须确保I2C通信稳定,建议上拉电阻取值4.7kΩ
- 安装时要与车体主轴线对齐,避免引入额外误差
- 需要定期校准,消除零偏误差
2.3 电机与驱动方案
我们选用N20减速电机(减速比1:30)配合TB6612驱动芯片的方案,这种组合的优势在于:
- 电机体积小、扭矩适中(约0.8kg·cm)
- 驱动芯片集成度高,支持PWM调速和正反转控制
- 整体成本控制在50元以内
电机的安装有讲究:
- 两个电机必须严格对称安装
- 车轮直径建议选择6-8cm,过大影响响应速度
- 电机轴与轮子连接要牢固,避免打滑
