自平衡车制作揭秘:kalman融合与优化策略

需积分: 33 2 下载量 29 浏览量 更新于2024-09-16 收藏 1.04MB PDF 举报
本文主要介绍了如何利用卡尔曼滤波(Kalman Filter)技术结合加速度计(MMA7260)和陀螺仪(ENC-03MB)设计一款两轮自平衡车的控制方案。作者采用ATmega16作为主控芯片,通过集成的角速度传感器和加速度传感器获取车辆的倾角、角速度、车速和位置信息。陀螺仪直接连接到AD输入,由于其存在过冲问题,作者选择去掉滤波电路以避免数据失真。 算法设计方面,车辆采用传统的双环控制系统,包括一个用于稳定车身倾斜的倾角环路和一个控制车速的车速环路。通过计算得到的角度、角速度等数据,然后通过PWM信号驱动两个电机进行动作。每个电机配备两个霍尔传感器作为速度传感器,用于精确控制电机转速。 硬件部分,作者使用的硬件包括常见的减速电机,额定电压6V,功率3W,通过L298N驱动器控制。电源部分采用简单易得的变压器整流桥,为MCU和电机分别供电。为了实时监控车辆状态,还配备了LCD1602B显示器,以及通过电视红外遥控器实现远程控制。 设计中涉及的源代码和原理图也有所分享,如WinAVR20100110+AVRStudio4.18ourdev_610434C8FD1C.rar文件包含了主控程序,M16迷你板电路图PDF(ourdev_610214M89OEI.pdf)展示了最小系统版的电路设计,而上位机软件ourdev_610318TY8G24.rar则提供了带有波形显示和数据显示的功能。 作者在分享过程中,还展示了未经滤波的车速波形和10Hz低通滤波后的波形,对比以展示滤波效果。同时,视频链接(<http://v.youku.com/v_show/id_XMjM1OTQ3NzU2.html>)展示了车辆的实际运行情况,但指出当前车辆稳定性还有待提升,可能的原因包括参数调整不到位和电源质量不佳。 在解决陀螺仪过冲问题上,作者分析了高通滤波器的脉冲响应,并决定去除该滤波器以直接读取AD输入,以减小倾斜数据的误差。这种处理方法虽然简单,但在实际应用中需要权衡滤波带来的精度和过冲问题的影响。 本文是一篇实践性很强的技术分享,详细地展示了两轮自平衡车的设计过程,包括理论原理、硬件选择、算法实现以及遇到的问题和解决方案,对于对自平衡车控制感兴趣的开发者和爱好者具有很高的参考价值。