现在的项目是在做一个比较大的遥控平衡车,目前可以做到遥控行走了,也遇到过很多坑,就说一点吧,不过我理解的也不是很深入,有不足的欢迎指出
1、平衡车的重心越低,平衡效果越好
2、平衡车前进的原理是,把小车保持平衡的角度前倾,小车为了保持这个倾角,会往前追,从而达到前进的效果,所以前进的速度就和前倾的这个角度有关了,后退同理;这里又涉及到了一个问题,就是如果平衡车的重心太低了,已经和电机在同一个平面了,那么小车前倾了一定角度,同样能保持平衡,所以就前进不了
3、平衡车的3个PID环–角度环,速度换,转向环;首先,角度环是为了让小车保持平衡,但是它不会考虑到速度,比如在调节平衡时,前倾了一点,小车就会往前追;所以,这里就要加入速度环了,速度环的作用是保持设定的速度(通常这个速度为0),所以加入了速度环小车就会保持在原地前后摆动了;转向环就是用来调节转向的角度的
4、关于小车前进的方法,有3种,第一种是在角度环里修改保持平衡的那个角度,修改时平滑一点修改,比如可以每5ms修改0.02度或者0.04度的样子(目前我使用的就是这种);第二种是在速度环里修改位移的积分,其实这里我理解的也不是很懂,就不乱讲了;第三种则是修改速度环里保持的速度的变量
5、关于小车的平衡点,我之前一直认为小车是在水平方向上平衡的,但实际上不是;如果小车的重心是在控制板的垂直方向上,那么的确是在水平方向平衡,但是如果重心在前面或者后面的话,就需要把上电保持的平衡角度进行适当修改了;改这个变量的方法有两种,一种就是读出平衡时的角度,写死在程序里,但是如果重心改变则不能保持平衡;第二种是上电时读取当前角度,然后把这个角度加在角度环里,所以用这种方法时,上电必须把小车放在一个平衡的角度
6、紧跟第5点,有一些MPU6050上电时通过DMP读出来的数据在前20秒内是不稳定的,这个要注意
7、小车的底盘一定要稳,如果上面的重量都大于下面的重量了,平衡效果不好,前进之后会后退的