浅谈两轮平衡车的控制原理(续)

本文深入探讨平衡车控制的核心——直立环的PID控制器设计。通过陀螺仪安装位置的选择和程序设计,解释了如何实现平衡车的自动平衡。通过调整PID参数,解决小车旋转问题,最终实现稳定站立。文章还强调了实际调试中需根据车辆结构和重量分布进行个性化调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:上次云里雾里的说了一通,不知道对平衡车的控制有没有说到点子上。单纯的讲解原理可能会很无聊,但是作为一个技术宅来说,就算头皮发麻也要接着看下去。哈哈,吾理小子争取用通俗的语言把自己懂的知识讲解出来。

好了,闲话少说,进入正题。上文已经做好了平衡车站立起来的全部准备工作,接下来就是控制的核心了,如果对上面讲到的内容还没有看到,建议先看上一篇,否则会有莫名其妙的感觉。

首先,说说陀螺仪的安装位置,建议有条件的话装在电机轴的正上方,两轮子中点处,这样做的好处是角速度响应比较平均。但是,吾理小子的条件有限,陀螺仪装在了右侧轮子附近,安装位置看下图。(PS:陀螺仪一定要装稳)

安装好陀螺仪之后,接下来开始写程序。关于MPU6050的程序,吾理小子不想啰嗦,直接说比较关键的地方吧。相信用过STM32的小伙伴对原子哥不会陌生吧,小编也是原子哥的受益者,在这里顺便感谢一下原子哥。

小编移植了原子哥的MPU6050程序,所以要说一下初始化问题。我们知道陀螺仪上电之后要初始化,然后要自校准。原子哥的程序是以上电的时候陀螺仪的姿态为参考,解算姿态。也就是说,每次测量的姿态都是以上电时刻为基准的。那么可能有人和小编一样纳闷,如果每次都是相对的参考平面,那岂不是要每次扶着平衡车上电初始化啊。考虑到这个问题之后,小编尝试寻找MPU6050的绝对参考平面。

原子哥初始化程序中有一个DMP初始化,打开看看

看到下面有一个自检函数,Go to你会发现有这样一段代码:

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值