模块推荐:https://item.taobao.com/item.htm?ft=t&id=671629736762
58---二轮平衡车实验:
硬件需求:PC机,PCM模块一个,microUSB线,L298N_电机驱动模块,2S锂电池,
有刷直流电机带编码器 2个,MPU6050模块一个,左右轮,导线若干,其他相关配
件;
软件需求:PCM编译软件,app软件NeTorch TCP & UDP;
供电方式:锂电池给电机驱动模块,电机驱动模块输出的5V给PCM模块供电;
连接电路:如图86
图86 二轮平衡车实验电路图
图87 二轮平衡车实验6轴传感器安装方向
图88 二轮平衡车实验控制框图
图89 二轮平衡车实验手机网络调试助手
图90 手机网络调试助手设置按键功能
此实验使用马达为减速马达,减速比1:20,转速450/min;型号:GM25-310T,马达带
AB相速度编码器,一圈11个脉冲,所以轮子转一圈为220个脉冲。使用65mm直径的轮
子。总共2层结构,底层放2S锂电池,上层放开发板,驱动模块,MPU6050。
本实验使用的是6轴传感器,也可以用9轴传感器(可以参考9轴传感器实验进行更
改)。传感器的安装方向(参见图87)是Y轴指向平衡车的正前方,所以我们使用姿态
角roll来控制平衡,姿态角yaw来控制方向。
为了保持平衡车的平衡,我们必须控制平衡角roll始终为0(这是假设6轴传感器安装
的绝对水平的情况下,当然即使安装的有一点点倾斜,平衡车也能控制好平衡,只是平
衡车需要不停的调整姿态,这样看上去感觉平衡车会前后晃动。用户可以参照6轴传感器
水平修正的实验来修正这个偏差,这种方法是静态调整,必须把平衡车放在一个水平面
上来采集这个偏差,但这个方法缺点就是怎样确认平衡车是在水平状态,因为人为的把
平衡车扶正,也不一定就是水平状态。所以本实验没有采用这种修正方法,而是通过手
机APP调试助手手动输入来动态调整平衡角roll的设定值,如果调试的时候平衡车晃动幅
度有点大,可以适当的增加或减少这个值)。
二轮平衡车实验控制框图(参见图88)解释了平衡车控制的流程。平衡车有3个给
定输入量:平衡车方向,平衡车速度,平衡车平衡角roll(此值实际上是与水平面的偏差,
当完全水平时,此值为0,本实验采用手机APP动态调整此值,调整好后此值可以固定下
来)。
6轴传感器的输出经过姿态融合后产生3个姿态角:roll,pitch,yaw,本实验只使用了roll
和yaw这2个姿态角。
姿态角yaw与给定平衡车方向,姿态角roll与给定平衡车平衡角,首先进行姿态PID
运算,输出值再与6轴传感器的数据gx,gz,(gy未使用)进行角速度PID运算,输出2个值
roll(前进后退),yaw(方向),然后把roll+yaw的值作为占空比给右轮输出,把
roll-yaw的值作为占空比给左轮输出,这样平衡车的速度方向都受到控制。
本实验马达的速度检测是采用的脉冲捕捉指令(用户也可以参考有刷直流马达速度
位置控制实验,用脉冲计数指令来检测马达速度,马达的速度编码器有AB相输出,关于
如何判断方向及计算速度,在有刷直流马达速度位置控制实验中也有介绍)。脉冲捕捉
指令可以测量2个脉冲之间的时间,这样我们就可以计算出马达的速度,然后通过AB相
的电平来判断方向。
马达的速度检测周期使用5个6轴数据输出周期,6轴数据输出周期为4ms,所以马达
速度检测周期为5*4ms=20ms. 2个马达分别检测速度,然后取平均值作为平衡