1. 项目概述:自平衡小车的魅力与挑战
第一次看到自平衡小车在桌面上稳稳立住时,那种违反直觉的平衡感让人着迷。这种利用惯性测量和实时控制实现动态平衡的装置,背后是经典的控制理论在现代微控制器上的完美实践。不同于普通的遥控小车,自平衡系统需要持续感知自身姿态并快速调整电机输出,整个过程就像人类骑自行车时不断微调把手保持平衡一样精妙。
这个项目最吸引人的地方在于它完美融合了硬件搭建、传感器数据处理和算法控制三个层面的技术挑战。从选型适合的电机到调试PID参数,每个环节都需要考虑实际物理系统的特性。我花了整整两周时间才让小车从"秒倒"进化到能稳定站立30秒以上,期间积累的实战经验值得与各位创客朋友分享。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心硬件选型与搭建
2.1 主控板的选择困境
在STM32和Arduino之间犹豫了很久,最终选择了STM32F103C8T6(蓝色药丸板)。虽然Arduino生态更友好,但STM32的72MHz主频和硬件PWM更适合实时控制需求。实测显示,当控制周期小于5ms时,Arduino Uno偶尔会出现计算超时导致小车剧烈抖动,而STM32即使降到2ms周期也游刃有余。
重要提示:如果使用STM32,务必注意3.3V逻辑电平与多数电机驱动板的5V兼容性问题。我在初期烧毁过一个MPU6050就是因为直接连接了5V供电。
2.2 电机与驱动方案对比
测试了三种常见方案:
- 普通直流电机+编码器+L298N驱动板
- 优点:成本低(总价约50元)
- 缺点:响应延迟明显,编码器精度不足
- 步进电机+TB6600驱动器
- 优点:定位精确
- 缺点:低速抖动严重,不适合连续调速
- 直流减速电机+霍尔编码器+DRV8833驱动
- 最终选择方案,虽然单电机成本达80元,但250RPM额定转速和0.1°的编码分辨率完美匹配需求
电机安装有个容易被忽视的细节:两个电机的轴心必须绝对水平。我最初用卡尺测量认为已经对齐,实际上仍有0.5mm的高度差,这导致小车总是朝一个方向缓慢移动。后来采用激光水平仪辅助安装才解决问题。
2.3 传感器配置技巧
MPU6050作为核心传感器,其安装位置直接影响测量精度。通过对比实验发现:
- 安装在车体上部(重心以上)时,角度变化更敏感但噪声更大
- 贴
