|
在此贴上以前做过的平衡小车资料,一来供众网友学习交流,二来申请stm32f429探索套件。。。 先上图
原材料清单: —————————————————————————————————————————— 主控:stm32f103rct6 传感器:mpu6050(带陀螺仪和加速度) 电机驱动芯片:l298n 电机:冯哈伯2224 编码器:电机自带16线 电池:两节18650 轮子架子:淘宝店购买,减速比1:5 —————————————————————————————————————————— 处理过程: —————————————————————————————————————————— 其实程序过程很简单,先是采集传感器MPU6050的数据,并进行加工,获得当前小车倾斜角,然后根据此角度做PID调节,得到小车两个电机的PWM脉宽,调整轮子速度,使之回到倾角为0的状态,即保持平衡。然后就不停地重复采集->处理->调节->处理这一过程。 在此基础上,附加两电机的PWM值,即可实现前进,倒退,左转,右转动作 —————————————————————————————————————————— 难点分析: —————————————————————————————————————————— 有两个难点 1.传感器的数据处理是小车的最大难点。一是传感器受震动影响很大,很容易超量程;二是传感器数据漂移比较厉害。而关键的小车倾角就来源于此传感器数据。为此,参考网上数据滤波处理方式,采用卡尔曼滤波算法,融合陀螺仪和加速度传感器数据得出小车倾角。 2.PID,比例系数的调节不用多讲,需要耐心的测试和调节。我要说的是,单纯靠倾角做PID不能使小车平衡,因为当小车倾角接近0度时,改变的PWM值无法使小车越过平衡点,造成小车朝一边加速前进,所以要将速度也添加至PID调节中,做积分 —————————————————————————————————————————— 制作心得: —————————————————————————————————————————— 关于平衡小车,大多数网友应该都曾做过或者想过要做。于是百度搜资料,其中最多的应该是飞思卡尔直立车的资料,当初我也看下下,平衡车的原理都懂了,但那时还没搞过PID调节和数据滤波,所以具体怎么写程序并不知道。至于平衡车的程序资料也非常少。后来在网上参考相关数据滤波,PID调节后,才渐渐掌握。在此我也就贴上我的程序代码,供大家学习交流,少走弯路。有什么问题,欢迎回帖。当然也希望大家多支持此贴,祝我申请F429套件成功!哈哈 ![]() ——————————————————————————————————————————
卡尔曼滤波.rar
(2.76 MB, 下载次数: 11996)
|
微信公众号
手机版
回复:【MCU实战经验】+基于stm32两轮平衡车制作
回复:【MCU实战经验】+基于stm32两轮平衡车制作
回复:【MCU实战经验】+基于stm32两轮平衡车制作
RE:【MCU实战经验】+基于stm32两轮平衡车制作
回复:【MCU实战经验】+基于stm32两轮平衡车制作
收了 感谢楼主
客气。。。
RE:【MCU实战经验】+基于stm32两轮平衡车制作
RE:【MCU实战经验】+基于stm32两轮平衡车制作
回复:【MCU实战经验】+基于stm32两轮平衡车制作
回复:【MCU实战经验】+基于stm32两轮平衡车制作
回复:【MCU实战经验】+基于stm32两轮平衡车制作
RE:【MCU实战经验】+基于stm32两轮平衡车制作