STM32平衡小车总结

平衡小车的具体实现推荐b站一位up主,从打板到PID调参都讲解得很详细,适合初学者。

以下是视频地址:

基础篇:了解各模块的作用,以及c8t6的基础知识。

草履虫都能学会的STM32平衡小车教程(基础篇)_哔哩哔哩_bilibili

软件篇:主要控制程序。

草履虫都能学会的STM32平衡小车教程(软件篇)_哔哩哔哩_bilibili

本文主要基于以上视频讨论实践过程中遇到的问题以及解决方案。

        1.按up主的PCB板来制作可能会出现铜线被烧断等问题,原因是PCB板中没有加入220μf电解电容及104瓷片电容,这能保护PCB板不被尖峰电压击穿。具体操作为:在12V锂电池接入处接220uf电解电容,在降压模块5V输出处接104瓷片电容。

关于尖峰电压及吸收电路可以学习以下文章:【电路设计】尖峰电压与浪涌电流-CSDN博客

此外PCB板的制作还应注意以下三点:①12V锂电池供电处线路至少1.5mm宽,否则易烧毁PCB走线线路。②PCB板绘制时注意封装(包括通孔位置、大小)是否与需要使用的模块相对应。③特别注意:电机编码器正负需提前规划好,否则将影响后续进程!

打板总用时:一个月。原因:共打板三次,第一次封装与已有模块不符;第二次未加电容及走线线路太窄,导致铜线烧穿;第三次电机编码器正负接反导致编码器读数没有传入C8T6,并差点烧坏编码器。

        2.调试过程中可能会出现的几个问题:

①IIC通信问题:检查引脚是否都正确还有器件的地址是否一致。

②MPU6050没有读数:看调试中MPU6050有没有读数,如果有就是OLED的问题,检查OLED,如果没有考虑以下解决方案——MPU6050在中断中读数占用时长太长导致中断不能结束,可以将读数功能移至主函数while循环中,但这会导致读数时间变慢,延迟较高,非必要不采取;部分情况可能是自检不通过,关闭自检或reset;其他情况可以通过调试查看mpu6050读数据的函数,返回值也就是错误代码,根据这个去查是哪里出了问题;如果各种方法都用过了可以考虑是MPU6050坏了,毕竟它太脆弱了ヽ(。_°)ノ

③编码器没有读数:考虑编码器正负极是否接反

        3.几个建议:

①低通滤波效果不明显,可以改用卡尔曼滤波,可以学习下文:

卡尔曼滤波算法 C语言实现 示例_卡尔曼滤波c语言实现-CSDN博客

滤波笔记一:卡尔曼滤波(Kalman Filtering)详解-CSDN博客

【工程师学算法】工程常用算法(二)—— 卡尔曼滤波(Kalman Filter)_卡尔曼滤波 精髓-CSDN博客

②PID调试时使用恒压电源而不是锂电池,因为锂电池的电压不稳定会对PID调试产生影响。

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值