自平衡车制作揭秘:kalman融合与优化策略
需积分: 33 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输入,以减小倾斜数据的误差。这种处理方法虽然简单,但在实际应用中需要权衡滤波带来的精度和过冲问题的影响。
本文是一篇实践性很强的技术分享,详细地展示了两轮自平衡车的设计过程,包括理论原理、硬件选择、算法实现以及遇到的问题和解决方案,对于对自平衡车控制感兴趣的开发者和爱好者具有很高的参考价值。
2022-07-14 上传
2012-05-29 上传
2021-01-19 上传
2022-07-14 上传
174 浏览量
2020-10-19 上传
2018-07-16 上传
2022-09-23 上传
2023-08-18 上传
辰风~
- 粉丝: 1
- 资源: 8
最新资源
- 毕业设计&课设--个人QT毕业设计项目 校园商铺.zip
- zharf:ZHARF项目
- lotus-openrpc-client:从OpenRPC定义生成的Typescript中的Lotus API客户端
- Excel模板客户信息登记表.zip
- system:简易易用的精简和快速的微型PHP系统库
- devrioclaro.github.io:DevRioClaro 没有 GitHub
- streams:应用程序可在体内传输清晰的视频。 Hecha en React con Redux
- automata.js:一个用于创建元胞自动机JavaScript库
- angular-course:使用angular的简单应用
- 毕业设计&课设--大学毕业设计,远程控制工具集,包含远程命令行,远程文件管理,远程桌面,已停止维护。.zip
- RMarkdown:分配
- 沙盒无服务器vpc-elasticearch
- Generative-Design-Systems-with-P5js:随附一系列视频的代码
- Data_analysis:使用JFreeChart库的Java数据分析程序
- Excel模板每日体温测量记录表.zip
- coppa:电晕进步和积极强化应用程序