摘要:去年自己做了一个平衡小车,使用的普通便宜减速电机,没有使用测量速度的编码器,小车的车架使用塑料壳子,电机使用热胶枪胶水固定,最终小车可以直立并且跑动,但是效果不是很好,这次重新改装设计了车架,并且使用比较好的电机以及霍尔传感器,同时使用航空锂电池,效果比较好。速度环的控制也很重要,只使用直立环还不能保证小车长时间稳定站立和运动,这时候需要加入速度环控制,速度环使用正反馈,采用比例积分控制算法,对速度的偏差进行比例放大和积分控制。

去年自己做了一个平衡小车,使用的普通便宜减速电机,没有使用测量速度的编码器,小车的车架使用塑料壳子,电机使用热胶枪胶水固定,最终小车可以直立并且跑动,但是效果不是很好,这次重新改装设计了车架,并且使用比较好的电机以及霍尔传感器,同时使用航空锂电池,效果比较好。

一.硬件部分

1. 小车电池,电机,车架,测速模块组装照片。

小车使用质量好的航模锂电池,容量大,输出电流大。

电机使用GB37-520减速电机,现在的平衡车使用的比较多。

车架使用单面pcb打孔安装。

测速模块使用AB相霍尔传感器,需要测量速度方向。

2. 芯片模块

包括mcu蓝牙模块,mpu6050加速度陀螺仪传感器模块,电机驱动模块以及霍尔传感器测速模块。

3.核心控制板

把上边的各种模块焊接上去,测速模块是安装在电机上边,通过排线连接到板子上。另外板子上还有电源管理芯片,jtag调试接口,前进,后退指示灯。

4.车架和螺丝

使用pcb车架,下边固定电机和电池,中间安装控制板,上边一层可以放东西。

采用直径3mm的铜柱和螺丝固定车架。

5.平衡车整体照片

比原来的塑料壳子车架更漂亮,更稳定可靠。

二.软件部分

1.平衡车的控制通常包括三部分,直立环,速度环和转向环。

mpu6050采用模拟i2c和mcu通信,使用硬件dmp获得陀螺仪和

加速度数据,然后四元数转换为欧拉角。

2.直立环

直立车的直立环控制部分通常只需要测量控制倾斜角和角速度,倾斜角使用

比例控制,角速度使用微分控制,PD两个参数需要不断调试,直到小车可以静止站立几秒钟左右。

3.速度环

速度环的控制也很重要,只使用直立环还不能保证小车长时间稳定站立和运动,这时候需要加入速度环控制,速度环使用正反馈,采用比例积分控制算法,对速度的偏差进行比例放大和积分控制。需要注意的是小车运动速度有方向的 ,这个通过AB相霍尔传感器模块实现。

补充一下,硬件dmp输出频率最高200hz,我的程序定时器使用5ms控制直立环,速度环控制周期100ms。

4.转向环

在国内nxp智能平衡小车比赛中转向环还是非常重要的,控制的不好速度快一点转弯的时候就会冲出比赛轨道。平衡车简单的转向控制通常采用比例控制方式,给其中的一个电机比另一个电机大一些的pwm信号,就会绕另一个电机轮胎转动。

5.控制算法介绍

平衡车直立环部分通常可以使用硬件dmp,互补滤波,卡尔曼滤波三种算法,硬件dmp不透明,互补滤波比较简单,卡尔曼滤波自己还不清楚。整个系统采用pid控制算法,直立部分采用pd控制,速度环采用pi控制,转向环采用比例控制,然后把三部分叠加就可以了。

效果还不错。

这里有网友建议:可以加个定位模块,增加自动追踪模式,买完菜往上面一放,自己就可以回家了,它会自动跟着你 。

三.经验总结

由于使用了好的机械架构以及好的电机,电池,同时使用了速度

测量模块,小车的稳定性和带载能力都比以前的小车效果好。这个可以从我上传的视频演示看的出来。

还可以提高的地方就是mcu处理速度还不是很快,目前的频率是48M Hz的m3,可以考虑带浮点运算的m4,另外mpu6050 传感器安装的位置还没有在正中心,对测量精度是有影响的!

另外就是使用的德州仪器mcu芯片io引脚虽然可以灵活配置不同的功能,但是有干扰调试的时候还是非常容易芯片被锁,一个芯片被锁了好多次啊!

相关文章