基于MPU6050和PID的双轮平衡小车控制器设计

2020-03-10 09:46蒋永超
科学与财富 2020年32期

蒋永超

摘 要:隨着物联网时代的到来,科技的发展,使得双轮平衡小车控制器无论在日常生活中还是在机械生产都得到了广泛使用。本文提出了一种基于PID的双轮小车控制器,包括MCU为STM32F103C8T6、NFR24L01无线收发、HC-SR04超声波、LM2596s DC-DC、MPU6050中的三轴加速度计和内置陀螺仪。本文对设计具有无线控制的双轮平衡小车控制器的各个模块做了详细的硬件原理分析,以及规范的软件编程调试,实现了当有外力作用于小车让小车失衡时,小车通过控制器实现自平衡静止,当小车运行时遇到障碍物,小车通过控制器反向运动一段距离,并且可以通过无线控制小车。

关键词:PID;NFR24L01;MPU6050

引  言

随着电子信息技术的发展,短距离无线通讯也有了很大的提升。两轮自平衡车运动灵活、智能控制、操作简便,适合单人使用且适用范围广。本文就是围绕对两轮平衡小车控制器进行研究,在自平衡控制中利用MPU6050内置陀螺仪和三轴加速度计都可以通过算法得到倾斜角利用互补滤波得到稳定的倾斜角度。再引入PID对小车运动状态精准控制使小车稳定系数增加。通过将双轮平衡车控制系统与短程无线技术的结合,设计出了一种自平衡稳定,功耗较低,可以进行无线控制的平衡控制器。

1. 双轮小车平衡控制系统总体设计方案

总控制系统分为主机和从机两部分,分机对平衡车进行控制,主机对分机进行无线控制。此无线传输属于双工通信,主机发送信息,从机应答,主机接收到应答。从机系统通过MCU读取MPU6050产生的信息通过编程实现小车的自平衡和转向。利用单片机产生PWM输入电机驱动芯TB6612对电机进行速度控制不同的占空比速度不同,占空比与速度成正比。通过编码器获得脉冲,利用IO口读取脉冲程序单位时间内对其上升沿和下降沿进行计数,这里用了四倍频技术,从而得到精确的车轮的转速。利用HC-SRO4超声波模块和单片机端口读取软件编程对小车前方进行障碍物距离测量设定一定的距离,当距离很近进行反向慢速运动。

2. 双轮平衡车控制系统硬件电路设计

硬件电路由以下几个部分组成电源模块,MPU6050陀螺仪6DOF模块,HC-SRO4超声波测距模块,NFR24L01模块,电机驱动模块。

MPU6050是全球首例9轴运动处理传感器内置3轴陀螺仪和3轴加速度计。其工作电压2.5±5%,3.0±5%,3.3±5% ,我们采用3.3V供电,用SPI传输数据。无线收发模块是全球开放ISM频段免认证可用,最高频率2M,内置硬件RCR检错和对点通讯地址控制低功耗,内置2.4Ghz天线体积小巧可以直接与所选MCUIO口相连。

无线收发模块采用NFR24L01,它一款新型单片射频收发器件,工作于2.4 GHz~2.5 GHz ISM频段。内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块。发射数据时,首先将NFR24L01配置为发射模式:接着把地址TX_ADDR和数据TX_PLD按照时序由SPI口写入NFR24L01缓存区,TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持至少10μs,延迟130μs后发射数据;若自动应答开启,那么NFR24L01在发射数据后立即进入接收模式,接收应答信号。如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLD从发送堆栈中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(ARC_CNT)达到上限,MAX_RT置高,TX_PLD不会被清除;MAX_RT或TX_DS置高时,使IRQ变低,以便通知MCU。最后发射成功时,若CE为低则nRF24L01进入空闲模式1;若发送堆栈中有数据且CE为高,则进入下一次发射;若发送堆栈中无数据且CE为高,则进入空闲模式2。

超声波距离测试模块,使用RS232转串口与MCU通信,利用压电效应可以监测对障碍物的距离。

电机驱动模块采用驱动芯片增加负载能力使用TB6612FNG直流电机驱动,其负载较强,这个芯片由东芝半导体公司生产可驱动2个电机,其热耗低,对于PWM的频率限制可以达到100KHZ,其内置过热保护和低压检测。

3. 双轮平衡车控制系统(分机)软件设计

PID由3个单元组成,分别是比例(P)单元、积分(I)单元、微分(D)单位。在微处理器中,因为控制器要实现其控制算法必须通过软件实现,因此要对模拟调节器进行离散化处理,如此它只需根据采样时刻的偏差值来计算控制量。于是,我们需要使用离散的差分方程代替连续的微分方程。 常用一阶差分代替一阶微分;常用累加代替积分。根据位置式离散 PID 公式:e(k)为本次偏差,e(k-1)上一次的偏差,Σe(k)为e(k)以及之前的偏差的累积和;其中 k 为 常数;Pwm代表输出。关于 P、I、D 三个参数的主要作用,P 用于提高响应速度、I 用于减小静差、D 用于抑制震荡。对角速度进行测量可以采用陀螺仪,我使用的MPU6050里面根据其英文手册其内部集成了三轴陀螺仪,所以我将继续使用MPU6050测量角速度。我从陀螺仪得到的是角速度,角速度的测量不受小车运动的影响。角度得到之后可以通过积分得到2格努同时按内的角度变化,用陀螺仪可以间接测量某段时间角度变化。通过在10ms的定时中断服务函数里面执行语句就可以得到10ms后的角度的变化有多大。

陀螺仪测量倾斜角度理论是可以的,但在联系实际情况进行分析角速度信号存在微小的偏差和漂移。传感器静止的情况下,输出不为零时会产生误差,经过积分放大误差,误差的不断叠加最终无法测得正确的角度。所以可以将角加速度计和线加速度计联合使用,通过互补滤波实现的自平衡控制系统更加稳定。

4. 结论

本文介绍了双轮平衡小车控制器系统的硬件电路和无线接收发模块,按键控制模块,超声波探测距离模块,MCU控制模块等。实现了主机对从机的运动控制,而且对其控制是极其灵活,可以进行速度控制,运行方向控制,实现设定距离位移和设定角度旋转。实现小车在操作不当情况下,遇到障碍物后退的功能,可以反向行走。在KEIL开发环境中使用JLINK在线仿真调试,使各个模块协调运行。事实表明调试很成功。双轮平衡车的控制器实现了基本功能,其使用价值较高。

参考文献:

[1]戴伟,岳明,肖鹏程,张跃杰. 单轴双轮自平衡小车的设计研究[J]物理实验,2014(12):19 —23.

[2] 葛文盡, PID 控制技术平衡动态倒立摆的探索[J]信息通信,2017(5)136-137.

[3]马传翔,杨名利双轮自平衡机器人的滑模变结构控制研究[J].微计算机信息,2011(1):70 —71 .

[4]符秀辉,赵茂鑫.基于互补滤波算法的移动机器人姿态检测[J].测控技术,2015,36(6 ):31 —33.

[5]阮晓钢,刘江狄海江,等.两轮自平衡机器人系统没汁、建模及LQ控制[J].现代电子技术,2008,281(18):52—56.

[6]卢海曦,王寿荣,周百令.微机械陀螺仪反馈控制器鲁棒分析已经闭环接检测电路分析[J].东南大学学报,2011,41(3):526-532.

(成都理工大学  四川  成都  610059)