APP下载

基于STC12C5A60S2的电控无碳小车控制系统设计∗

2018-11-28孙亚星王景贵张志强

计算机与数字工程 2018年11期
关键词:舵机测距电控

孙亚星 王景贵 张志强

(南京理工大学工程训练中心 南京 210094)

1 引言

电控无碳小车,又称重力势能驱动的自控行走越障小车,是以重力势能作为唯一前进驱动力,通过电控装置来实现赛道障碍识别、轨迹判断及自动转向和制动等功能[1],符合绿色、智能的现代机电产品设计理念。因此,它除了是国家级竞赛(“全国大学生工程训练综合能力竞赛”)[2~3]的比赛项目,还可以作为高校机械、电子和自动化等相关专业高年级本科生综合实习的课题内容[4]。另外,作为智能避障小车的一种,还可以应用于物流运输、室内清洁和安全风险检测的场合[4]。

2 系统结构设计

2.1 系统整体结构

电控无碳小车,实物如图1所示。它采用三轮结构,其中右下部的小轮为转向轮,由转向舵机来控制转向,另外两轮为行进轮(驱动轮)。车辆行驶能量由车辆上方悬挂的1kg重物的重力势能提供。电控无碳小车的机械系统应当包括传动部分、驱动部分、转向部分及刹车部分等[5~6]。

图1 电控无碳小车示意图

2.2 控制系统结构

控制系统基本原理如图2所示。距离传感器(超声波模块HC-SR04和红外测距模块GP2Y0A21K0FK0F组合)感知赛道中障碍墙的位置信息,并将这些信息输入到单片机STC12C5A60S2,单片机处理后,给转向舵机MG996R发出控制命令,引导小车在赛道中障碍墙之间稳定前进。同样,姿态传感器MPU-6050感知小车在赛道上的姿态信息,判断是否处于下坡状态,并给刹车舵机MG996R发出控制命令。

图2 控制系统结构图

因此,本文所设计控制系统应该包括:电源模块(LM7805)、STC12C5A60S2单片机最小系统模块、传感器组合(超声波模块HC-SR04、红外测距模块GP2Y0A21K0FK0F与姿态传感器MPU-6050)和舵机组合(转向舵机与刹车舵机)等。

3 硬件方案设计

3.1 STC12C5A60S2单片机最小系统模块

本文控制系统选用STC12C5A60S2单片机[7-9]。STC12C5A60S2单片机,是高速/低功耗超强抗干扰的新一代8051单片机。它具有以下标准功能:8 Kbyte Flash——允许程序存储器在系统可编程,256 byte RAM,32个I/O口线,2路PWM,4个16位定时器/计数器,8路10位ADC,一个6向量2级中断结构,完全满足于该系统的性能要求。而且,价格也比较合适。图3给出了STC12C5A60S2单片机的最小系统原理图

图3 STC12C5A60S2单片机的最小系统原理图

3.2 稳压电源模块

本文选用7.2V可充电电池作为供电电源,并通过LM7805稳压模块得到稳定的5V。LM7805稳压模块的原理图如图4所示,它结构简单、稳定可靠,但输出电流小。经过实测,本文选用两套LM7805稳压模块。

图4 LM7805稳压模块的原理图

3.3 传感器模块的选型

本文传感器部分需要完成两项工作:一是感知电控无碳小车周围障碍墙和赛道边界的位置情况;二是感知电控无碳小车的姿态情况(是否转向和上下坡)。

距离传感器可以感知电控无碳小车在赛道中的位置情况。常用的距离传感器有超声波模块、激光测距模块和红外测距模块等。超声波模块探测距离远且不易受到干扰,但是反应时间长。另外,在具体测试中发现,超声波发散角度偏大,在同一平面内多个器件之间容易造成误判断。激光测距仪的定向性好,但对电源的稳定性要求高,容易损坏。红外测距模块测量速度快,定向性好,但探测距离较超声波小。

考虑障碍墙情况,参考文献[10],本文距离传感器选用超声波模块HC-SR04和红外测距模块GP2Y0A21K0FK0F[11]相组合的方案,以实现优势互补,提升电控无碳小车避障成功率。距离传感器组合的布局图,如图5所示,在电控无碳小车车身的正前方安装一个超声波模块和两个红外测距模块,在车身正左方和正右方都安装一个超声波模块。超声波的原理简单[4],单片机STC12C5A60S2通过定时器来测量高电平的持续时间,进而得到距离值。红外测距模块GP2Y0A21K0FK0F是模拟量输出,由STC12C5A60S2单片机自带的ADC进行采样。

距离传感器如此配置,主要是基于两方面考虑:电控无碳小车行驶车速比较慢,超声波模块的响应速度能够满足要求,同时,考虑到超声波模块的发散性,因此在正前方、正左方和正右方分别只选用一个超声波传感器;车头是距离信息采集的主要部位,要考虑障碍墙的多种摆放形式,保证信息采集的全面性,故而在正前方增加了两个红外测距模块。

图5 距离传感器的布局图

感知小车的姿态,需要使用到姿态传感器。在本文设计中,选用MPU-6050模块[4]。该模块,又称三轴陀螺仪+三轴加速器,用于测量三个轴的角度、角速度和加速度,进而判断小车是否转向和处于上下坡阶段。本文使用SDA及SCL端口(I2C总线接口)和单片机STC12C5A60S2进行通信。

3.4 驱动模块

本文使用舵机来实现电控无碳小车的转向和刹车功能。舵机是一种位置(角度)伺服的驱动器,主要由直流电机和齿轮组成。它精度高,控制方便,适用于需要角度不断变化并要求保持的控制系统。舵机的控制原理简单,由PWM波进行控制[4]。PWM波的周期一般是20ms,高电平部分一般在0.5ms~2.5ms范围内变化,对应于不同的舵机转角。舵机型号为MG996R,它价格低廉,却能够满足系统的强度和响应需求。单片机STC12C5A60S2可以通过软件延时法、硬件定时器法和硬件PWM模块法等来产生PWM波,本文采用单片机自带的两路PWM进行控制。

4 软件设计

4.1 主程序设计

控制系统的软件功能主要包括:定时任务模块、直线道避障模块、半圆道避障模块和直线道下坡模块等,如图6所示。

定时任务模块,主要是采用30ms的定时中断来采集(定时更新)传感器数据,包括超声波模块、红外测距模块和姿态传感器MPU-6050模块。

本文考虑直线道和半圆道两种情况下的避障,由直线道避障模块和半圆道避障模块实现。基本原理是,根据定时更新的传感器数据,对位置信息进行判断处理,单片机STC12C5A60S2再将相应的PWM控制信号发送给舵机模块,从而达到赛道障碍检测和自动转向功能。

直线道上下坡模块,主要是根据姿态传感器MPU-6050模块的数据,判断出小车是否处于下坡状态,进而决定是否启动刹车功能。

图6 控制系统软件流程图

4.2 定时任务模块(30ms定时更新)

考虑STC12C5A60S2单片机的性能,结合本文任务实际,选定30ms作为传感器信息的采样周期。经过实测,30ms的采样周期,既满足了系统对数据的更新速度要求,也没有打断系统软件的整体运行。

红外测距模块GP2Y0A21K0FK0F的信息,是通过STC12C5A60S2单片机内置的ADC转换端口对传感器输出的模拟量进行A/D采样来获取的。为了减小噪声干扰和测量误差的影响,本文采用滑动窗口均值算法[12]来处理。主要思路是将最近5次的每隔30 ms的采样数据平均值作为本次数据获取值。

姿态传感器MPU-6050模块的与MCU的通信方式很多,支持I2C协议。I2C通信,具有速度快,稳定可靠等特点。虽说STC12C5A60S2单片机不具备I2C通信硬件模块,但可以通过普通I/O口来模拟I2C通信的时序。因此,30ms定时器中断服务程序,通过I2C协议来读取小车的姿态信息。

4.3 直线道避障模块

本文针对直线道和半圆道两种情况下的避障,提出了以沿边直行(PID)为基础模块的避障算法。PID控制算法,是目前控制系统中应用最广泛的控制算法之一[13~15]。本文设计中,沿边直行(PID)主要是由左/右PID直行操作来实现,主要思路是,将小车距离赛道边沿的距离作为目标,通过使用PID算法,来控制舵机运动的PWM波输出,实现小车沿赛道边沿直行。

需要说明的是,半圆形赛道避障,可以通过执行左/右PID直行程序实现。

如图7,考虑小车当前位于左边的情形,根据小车左超声波模块的位置信息,执行左PID直行。当小车运动到距离障碍墙50cm的位置,执行右转90°操作,然后执行左PID直行(以障碍墙为基准),当检测到小车距离直线段赛道右侧为50cm时,执行左转90°操作,再执行右PID直行(以直线段赛道右侧为基准)。当然,小车起始位于右边时,整个流程类似。

该避障算法,是依据赛道特征(边沿为10cm的挡板)而提出的,它以沿边直行(PID)为基础模块,并对整个避障过程进行了流程设计。

图7 直线道避障算法示意图

5 实践检验

在图8赛道上进行了测试。该赛道由两个直线段赛道和两个半圆形赛道组成。在赛道上间隔不等(随机)的交错设置多个障碍墙。直线段赛道段上设置有一段坡道,坡道由上坡道、坡顶平道和下坡道组成。

图8 赛道示意图

经过实测,本文设计的控制系统能够满足所要求的障碍识别、轨迹判断及自动转向和制动等功能。

具体来说,在随机摆放10个障碍墙的情况下,所设计的电控无碳小车可以跑到35m左右。这其中包括稳定可靠的上下坡过程,未发现翻车现象;也包括直线道和半圆道的随机避障、自动转向和路径规划等。

另外,所选用的超声波模块和红外测距模块组合方案,能够准确有效地发现障碍墙,避免了单独使用超声波模块时的漫反射效应以及单独使用红外测距模块视距小的问题。红外测距模块能够获取数据,经过滤波处理后的数据能够满足要求。该方案可以推广到其他类型的智能避障小车设计上。

可喜的是,在江苏省大学生工程训练综合能力竞赛中,获得了一等奖的好成绩。另外,该控制系统的结构简单,焊接与调试方便,目前已经被我校“卓工”计划的《机械工程综合实习》所采用。

6 结语

本文所设计的电控无碳小车控制系统,以STC12C5A60S2单片机为核心,使用超声波模块和红外测距模块的组合作为距离传感器,姿态传感器MPU-6050模块来感知小车姿态,舵机MG996R为执行机构。并根据赛道的实际情况,设计了一套以沿边直行(PID)为基本模块的避障程序,能够适用于直线道和半圆道两种情况的避障。经过实测,该控制系统能够满足所要求的障碍识别、轨迹判断及自动转向和制动功能。所采用的超声波模块和红外测距模块的组合能够互为补充,提高了避障功能的可靠性。

猜你喜欢

舵机测距电控
基于RSSI测距的最大似然估计的节点定位算法
直升机某型舵机自动测试系统设计分析
基于速度观测的双余度电液舵机系统容错同步控制
基于STM32的多通道超声波测距系统设计
基于单片机的超声波测距导盲杖设计
超音速舵机保护器
ECAS空气悬架电控系统介绍
菜鸟看模型
东风雪铁龙C5各电控系统电路图解析(九)——ESP电控系统上篇
电控发动机点火控制系统的原理与诊断