基于STM32的智能平衡车自动刹车设计
2017-11-20安鹤男骆春辉阮晓义
安鹤男, 骆春辉, 阮晓义
(深圳大学 电子科学与技术学院,广东 深圳 518000)
基于STM32的智能平衡车自动刹车设计
安鹤男, 骆春辉, 阮晓义
(深圳大学 电子科学与技术学院,广东 深圳518000)
介绍一种以STM32为控制核心的两轮智能平衡车自动刹车设计。利用超声波传感器对前方障碍物的距离进行测量,利用陀螺加速度计监测角速度和车体倾角并对平衡车的姿态进行监测。经过对车体倾角进行卡尔曼滤波,当距离和速度达到触发条件,步进电机利用滤波后的数据调节车速,使车体保持动态平衡。实际测试结果表明,该装置很好地实现了自动刹车和自动调整平衡的功能,具有较强的适应性和稳定性。
STM32;超声波传感器;陀螺加速度计;卡尔曼滤波;平衡车
0 引言
近年来,随着自动控制技术和嵌入式技术的日趋成熟,市场上智能平衡车的设计也日趋完善。平衡车作为一种轻便灵活,节能环保的交通工具,越来越受到上班族、学生们的青睐,并且广泛应用于航空、安保等领域。鉴于其便捷、绿色的特点,智能平衡车的应用会越来越广泛[1]。
当前市面上的平衡车行驶最高时速一般为18 km/h,有些可以达到20 km/h,行驶速度略高,而且随着速度的增加平衡车自动调整平衡的能力会有所下降,初学者对于平衡车的操作不够熟练,在速度较快以及遇到障碍物的情况下不能快速调整重心来调整平衡车的状态,易造成事故的发生。
为解决这一问题,本文设计了一种基于STM32的自动刹车装置,该装置能够在行驶方向遇到障碍物时自动减速,并通过步进电机自动调整车体至平衡状态,避免事故的发生[2]。经过实际测试验证了该装置的适应性和稳定性。
1 系统硬件电路设计
1.1系统总体方案设计
如图1所示,系统共由5部分组成:中央控制单元的主要功能是根据系统其他单元的监测数据对整个系统进行控制和调度,各子单元对系统各部分的运行状态进行实时监测和调整;平衡控制单元主要是对人体和车体姿态的检测并判断整体是否处于平衡状态,并进行调整;运动控制单元主要是对车体的运动速度进行控制;速度检测单元主要是对车体运行的速度进行检测;距离检测单元主要是对车体和前方人或障碍物的距离进行测量。各单元在系统内协作运行,共同保障系统整体的实时性和可靠性。
图1 系统总体方案框图
本系统各控制单元均采用意法半导体生产的STM32F103RBT6作为控制器。市面上平衡车多采用STM32芯片,本设计可直接应用到实际产品中去。另外,采用模块化的设计,便于测试和维护,提高了可靠性和稳定性。
1.2中央控制单元设计
在本设计中,中央控制单元基于意法半导体生产的STM32F103RBT6芯片开发,该芯片基于ARM Cortex-M3内核,具有高性能、低成本、低功耗的特点。该芯片外设包括两个12位模数转换器、两个12位数模转换器、12条DMA通道,能够快速地处理多传感器传输的大量数据,非常适合本系统的使用。如图2所示,各模块与中央控制单元通过通用同步/异步收发器进行系统控制指令和状态数据的双向传递。
图2 中央控制单元设计
1.3运动控制单元设计
运动控制单元主要是对平衡车的运动速度进行控制,由主控芯片控制步进电机驱动模块来实现。当运动速度大于4 km/h且车体距离障碍物的距离小于3 m时,主控单元利用卡尔曼滤波之后的数据信息控制步进电机进行减速,并在减速的同时保持人和车整体平衡。
本设计的步进电机驱动模块基于Toshiba公司的TA8435步进电机驱动芯片开发。图3是步进电机驱动模块的电路原理图,供电电压VDD为直流55 V,VCC为直流5 V。M1是两相步进电机,整步的步角为1.8°,细分设置为1/8,这使得步进电机每步的步距角缩小至0.225°,大大提高了系统的运行精度和稳定性[3]。
图3 步进电机驱动模块电路原理图
1.4距离检测单元设计
距离检测单元主要是测量车体与前方人或障碍物的距离,并把距离检测信息反馈给中央控制单元,当车体与前方障碍物的距离小于3 m时,中央控制单元通过控制运动控制单元使车体减速至4 km/h以下。本单元采用基于P89LPC932A1芯片开发的超声波传感器模块,该模块静态功耗低于2 mA,自带温度传感器对测距结果进行校正,探测精度能够达到0.3 cm±1%,内带看门狗,工作稳定可靠。
1.5速度检测单元与平衡控制单元设计
本模块需要对角速度和姿态角同时进行测量,考虑到机械噪声、系统振动及温度漂移的影响,单独的陀螺仪或加速度计均不能满足要求[4]。本设计采用高精度的陀螺加速度计MPU6050,该陀螺加速度计姿态测量稳定度为0.01°,加速度和角速度的稳定性分别为0.01 g和0.05 °/s,分辨率分别为6.1e-5 g和7.6e-3 °/s。通过处理器读取MPU6050的测量数据,经过算法处理得到车体的运行速度和平衡状态,由中央处理单元综合调度各单元模块对车体速度和平衡度进行控制。加速度和角速度的输出如表1所示。
表1 加速度和角速度输出数据
2 系统软件设计
2.1中央控制单元软件设计
系统中央控制单元的主要功能是采集各单元模块检测的数据如车体姿态状态、车体运行速度、车体和前方障碍物的距离等,通过对数据的分析综合调度各单元模块,软件工作流程如图4所示。
图4 中央控制单元软件流程图
2.2各单元模块数据处理算法
2.2.1距离检测模块数据处理
由于测距结果受温度影响,所以此模块附加了温度校正,测量温度完成后,本模块会返回1 B的温度值(TData),实际的温度值为TData-45。在此模式下,模块将距离值转化为340 m/s 时的时间值的 2倍,通过Echo端输出一高电平,可根据此高电平的持续时间来计算距离值。
2.2.2速度检测模块算法
模块的波特率设为9 600 b/s,每隔50 ms输出一帧数据,每帧数据包含3个数据包,数据包的内容根据包头字节来确定,角速度输出数据如表1所示。由陀螺加速度计所测数据可得速度值。
角速度计算公式:
wx=((wxH≪8)|wxL)/32 768×2 000(°/s)
wy=((wyH≪8)|wyL)/32 768×2 000(°/s)
wz=((wzH≪8)|wzL)/32 768×2 000(°/s)
温度计算公式:
T=((TH≪8)|TL)/340+36.53 ℃
校验和:
Sum=0x55+0x52+wxH+wxL+wyH+wyL+wzH+wzL+TH+TL
速度计算方法:
V=R×Sum
2.2.3姿态检测模块算法
角度计算算法:
滚转角(x轴):
Roll=((Roll≪8)|RollL)/32 768×180(°)
俯仰角(y轴):
Pitch=((Pitch≪8)|PitchL)/32 768×180(°)
偏航角(z轴)
Yaw=((YawH≪8)|YawL)/32 768×180(°)
温度计算公式:
T=((TH≪8)TL)/340+36.53 ℃
校验和:
Sum=0x55+0x53+RollH+RollL+PitchH+PitchL+YawH+YawL+TH+TL
(注:姿态角结算时所使用的坐标系为东北天坐标系,坐标系旋转顺序定义为z-y-x)
2.2.4卡尔曼滤波算法
卡尔曼滤波是R.E.Kalman于1960年提出的从含有噪声的测量值中估计系统状态的一种应用于离散线性滤波的一种迭代算法[5]。滤波过程分为状态更新和测量更新两个部分。实际应用中首先建立如下系统状态方程和测量方程:
状态方程:
X(k)=AX(k-1)+BU(k)+W(k)
(1)
测量方程:
Z(k)=HX(k)+V(k)
(2)
式中,X(k)为k时刻系统的状态向量,U(k)为k时刻系统的输入信号,Z(k)为k时刻的测量向量,W(k)和V(k)分别为过程噪声和测量噪声,A、B、H分别为状态转移矩阵、输入控制加权矩阵和测量矩阵。把车体真实倾角θ作为一个状态向量,以加速度计估计得到的陀螺仪值偏差b作为另一状态向量,建立其测量倾角的线性模型如下:
θ(k+1)=θ(k)+(ω(k)-b(k)+v(k))dt
(3)
式中,θ(k)为车体倾角,ω(k)为陀螺仪角速度,b(k)为陀螺仪常值偏差,v(k)为陀螺仪测量噪声,dt为测量周期,根据式(1)~(3),建立离散化后系统状态方程和测量方程如下:
同时,要实现对卡尔曼滤波器的校正,必须设置合理过程噪声和测量误差的协方差矩阵。本文的Q、R矩阵形式如下:
式中,q_acce和q_gyro是陀螺仪和加速度计测量的各自协方差[4]。
要估计k时刻的倾角,必须根据k-1时刻的倾角值来预测k时刻的倾角,综上,得卡尔曼滤波各方程如下:
状态预测方程:
X(k|k-1)=AX(k-1|k-1)+BU(k)
系统的协方差:
P(k|k-1)=AP(k-1|k-1)AT+Q
状态估计方程:
X(k|k)=X(k|k-1)+Kg(k)(Z(k)-HK(k|k-1))
卡尔曼增益方程:
Kg(k)=P(k|k-1)HT/(HP(k|k-1)HT+R)
估计均方误差方程:
P(k|k)=(I-Kg(k)H)P(k|k-1)
式中,H=[1 0],I=[1 1]T,X(k|k-1)是利用k时刻预测的结果,X(k-1|k-1)是k-1时刻最优的结果,P为对应时刻状态下的协方差[6]。
3 系统测试及分析
本文设计了智能平衡车的自动刹车系统,使初学者在驾驶平衡车遇到障碍物或者行人时能够及时减速,避免意外事故的发生,为了验证系统的可靠性进行了大量实验。试验中平衡车的最大行驶速度为18 km/h,行驶中触发规避障碍物的距离为3 m,步行速度设为4 km/h,即系统自动把行驶速度由18 km/h降至4 km/h以下。试验中车体从开始减速到达到设定速度值的时间为1.0 s±0.1 s,车体姿态角和车体速度的变化如图5、图6所示。
图5 姿态角随时间变化值(单位:(°))
图6 速度随时间变化值(单位:km/h)
4 结论
本文设计的基于STM32的智能平衡车自动刹车系统能够有效地规避初学者使用不熟练而可能造成的事故,使车体在高速行驶遇到障碍物或者行人时自动减速或刹车,卡尔曼滤波使车体更加平稳地减速并保持动态平衡。有效地保障了初学者的安全,降低了初学者学习的难度。
系统使用模块化的设计,简化了系统的设计,各模块之间既可独立又可协调运行,既减少了系统的响应时间又增加了系统的可靠性。
本设计采用的技术可以应用到避障小车、机器人和无人驾驶汽车等领域中,具有较高的应用价值。
[1] 张洪伟.基于STM32的平衡车设计[J].科技创新与应用,2016(2):78-79.
[2] 秦永元,张洪钺,汪淑华.卡尔曼滤波与组合导航原理(第二版)[M].西安:西北工业大学出版社,2012.
[3] 安鹤男,陈阳,张军,等.基于AVR单片机的机载惯性稳定云台设计[J].电子技术应用,2015,41(11):41-44.
[4] 杨凌霄,李晓阳.基于卡尔曼滤波的两轮自平衡车姿态检测方法[J].计算机仿真,2014.31(6):406-409.
[5] KALMAN R E.A new approach to line-ar filtering and prediction problems[J].Transaction of the ASME-Journal of Basic Engineering,1960,82(3):35-45.
[6] Liu Kun,Bai Ming,Ni Yuhua.Two-wheel self-balanced car based on Kalman filtering and PID algorithm[C].Industrial Engineering and Engineering Management(IE&EM) 2011 IEEE 18th International Conference,2011: 281-285.
Design of auto brake for smart balanced vehicle based on STM32
An Henan,Luo Chunhui,Ruan Xiaoyi
(School of Electronic Science and Technology,Shenzhen University,Shenzhen 518000,China)
In this paper, a kind of design of auto brake for two wheels of smart balanced vehicle is introduced, which uses STM32 as the control core.Using ultrasonic sensor to measure the distance of the obstacles ahead,using gyro accelerometer to monitor the angular velocity,angle and attitude of the smart balanced vehicle.After kalman filtering for the angle of the body,step motors use the data of the filter to adjust speed,make the body keep dynamic balance when the distance and velocity reaches the trigger condition.The practical test results show that the device has realized the functions of auto braking,automaticly adjust the balance well and has stronger adaptability and stability.
STM32; ultrasonic sensor; gyro accelerometer; Kalman filtering; balanced vehicle
TP23
A
10.19358/j.issn.1674-7720.2017.21.010
安鹤男,骆春辉,阮晓义.基于STM32的智能平衡车自动刹车设计J.微型机与应用,2017,36(21):32-34,38.
2017-04-14)
安鹤男(1963-),男,副教授,主要研究方向:无线传感器网络。
骆春辉(1992-),男,硕士研究生,主要研究方向:无线传感技术与网络。
阮晓义(1991-),男,硕士研究生,主要研究方向:无线传感技术与网络。