APP下载

基于单片机微控制器的无人驾驶小车设计与实现

2021-08-03陆则宇

科技创新与应用 2021年20期
关键词:黑线障碍物小车

陆则宇

(沈阳航空航天大学 自动化学院,辽宁 沈阳110136)

随着全面建成小康社会目标的实现,人们的生活水平也得到了显著提高。私家车的数量近几年随着国民经济的发展而大幅度增加,城市的主干道因此经常会出现道路拥堵的现象,甚至会由于各种原因导致交通意外事故的发生。交通事故已经成为危及人民群众生命财产安全的“第一杀手”,故降低交通事故发生率亟待解决。在车辆正常运行过程中,按照轨迹运行与安全的检测避障成为车辆安全运行的关键性指标。

5G时代的到来,让无人驾驶技术再次进入人们的视野,过去数十年间国内外许多科技公司和众多学者都对无人驾驶汽车进行了深入研究。2009年,Google开始研发无人驾驶汽车;2013年百度公司成立深度学习研究院,加入无人驾驶汽车研究行列;2015年英伟达发布Drive PX计算平台,专门用于无人驾驶汽车的设计工作;2018年华为公司与奥迪展开合作,依托5G技术研发商用无人驾驶汽车[1]。在实验室内进行智能小车的设计是无人驾驶车辆研制工作不可或缺的一部分,智能车拉力赛也成为许多高校的官方赛事,其主要涉及小车的寻迹和避障两大部分内容。刘汉忠等[2]采用视觉CCD传感器完成了小车黑线寻迹任务。王宇洋等[3]选用灰度传感器ITR9909实现智能小车的自动寻迹功能。刘雪飞等[4]针对小车避障问题使用红外避障传感器进行实现。黄志敏等[5]采用触须传感器感知和识别物体表面轮廓以确定障碍物的方法开展避障研究。

本文主要针对当前无人驾驶小车控制中的循迹运动和避障两大问题,设计了一款以STC89C52单片机作为控制核心,能够实现黑线寻迹同时兼具避障功能的智能小车。本次设计小车采用红外寻迹传感器实现沿预定路径行驶,相较于CCD传感器和灰度传感器等,红外传感器实时性较好,对主控芯片的要求较低,造价低廉。避障采用超声波传感器避障的方法,与红外避障传感器和触须传感器等比较而言,超声波避障实现方式简单、数据处理量小、易于实时控制[6]。此次设计小车,即结合红外寻迹和超声波避障控制小车,根据路况实时做出合理决策,最终达到小车沿既定路线行驶并躲避障碍物到达目标点的目的。

1 系统总体方案设计

设计的智能小车使用STC89C52单片机作为主控芯片,采用红外传感器实现寻迹功能,避障功能的实现则采用超声波避障的方法,车体采用三轮结构,小车左右两个车轮各用一个电机控制,小车后方加装一个万向轮,起到支撑小车的作用。传感器接收到的信息反馈给小车CPU单片机,单片机根据反馈信息指导电机做出响应,控制小车实现前后左右运动以及转弯。系统的整体设计结构如图1所示。

图1 整体结构设计图

单片机通过接收红外传感器和超声波传感器的反馈信号,结合单片机产生的脉冲宽度调制(Pulse Width Modulation,PWM)波和控制驱动模块来实时调整小车的车速,通过左右轮的车速差达到左转、右转、直行的目的。小车还安装了蜂鸣器,在超声波传感器30cm以内碰到障碍物时,蜂鸣器会报警以提示使用者该道路有障碍,需要重新选择道路,此时小车会沿原道路即图2道路1选择后退至岔道口A处稍微左转,进入新的可行驶道路,即图2中道路2继续完成寻迹。

图2 道路演示图

2 系统硬件部分设计

2.1 红外寻迹模块

作为小车的关键信息输入设备,红外传感器能够良好地捕捉到前方道路的路况信息,将信号实时反馈给单片机进行处理,对小车进行动态控制[5]。红外传感器是利用红外光的反射特性对黑色和白色加以区分,其反射特性大致可以描述为对于白色物体,红外光反射量较多,而对于黑色物体,红外光反射量将大大减少。利用这一特性当平面是白色时,传感器发射出的红外光有很大一部分将被反射回来,此时传感器输出低电平0。当平面是黑色时,由于黑色反射能力非常弱,大部分的光都无法反射回来,传感器输出高电平1[7-8]。

本次设计小车的红外寻迹传感器为RPR220传感器,该红外传感器的优点在于可以在一定程度上屏蔽自然光的干扰,有利于提高传感器对于黑线与白色平面识别的准确度。红外寻迹模块原理图如图3所示,共有U1、U2两个红外对管。图4为红外寻迹反馈模块原理图。图3和图4是对红外寻迹原理示意。

如图3所示,电路中含有U1和U2两个红外对管,对于红外对管U1,IN1为接收管,其与图4中的IN1为对应关系。将I3-处的反馈电压与I3+的电压进行比较,并通过O3反应。若I3-处电压值大于I3+处电压值,则O3表现为低电平,若如图中所示O3与P3.2引脚相连接,那么对应该处的发光二极管将会被点亮,符合红外传感器的基本原理。红外对管U2原理与红外对管U1相同,只需将I3换为I4,O3换为O4即可。本次设计总共采用5个红外寻迹传感器,相较于传统的2路或者3路寻迹小车,5路寻迹提高了运行过程的稳定性。

图3 红外寻迹模块原理图

图4 红外寻迹反馈模块原理图

2.2 超声波避障模块

超声波测距是通过超声波发射装置发射超声波,触碰到物体后,反射回超声波给接收装置,通过公式(1)可计算超声波发射器与障碍物之间的距离大小[9]。

其中,L为超声波发生器与障碍物间距离;t为从超声波发射到返回的时间;v为声速,通常取340m/s。

超声波避障选用的是HC-SR04超声波测距模块,该模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达3mm。其基本原理为通过IO口TRGI触发测距,给至少10us的高电平进行触发;触发后模块会自动发送8个40kHZ的方波,以检测有无返回信号。若检测到有信号返回,则会通过IO口ECHO输出一个高电平,此高电平持续时间也即为公式(1)中时间t。

2.3 直流电机驱动模块

完成该部分模块内容的设计采用L293D芯片。如图5所示为L293D电机驱动芯片原理图。

图5 L293D电机驱动芯片原理图

L293D芯片共有16个引脚,其中左边一侧引脚控制右电机的工作状态,右边一侧引脚控制左电机的工作状态。左侧引脚中的OUT1与OUT2为驱动端,用于使该驱动芯片输出电流以驱动右电机;EN1为使能端,只有当EN1为高电平时才能使电机工作,实现车轮的转动;IN1与IN2根据高低电平的不同会使电机产生正转、反转和停转的效果,如表1左侧所示。由于当使能端EN1为低电平时则电机不工作,故默认为EN1为高电平的情况。用于控制左电机的右侧管脚的情况与右电机类似,设置如表1右侧部分。

表1 电机转动状态控制表

除了电机本身控制正转、反转和停转外,无论是对于智能小车还是日常使用的其他交通工具而言,转弯问题都成为其运动控制过程中的关键性难点问题。由于设计的智能小车为差速小车,即利用两轮的速度差实现左转和右转,当左轮速度小于右轮速度,小车会进行左转,而左轮速度大于右轮时则相反。为了控制两个车轮的速度大小,通过改变STC89C52的IO口输出脉冲宽度来实现。进而在一个脉冲宽度内,不断改变占空比以控制输出电压,电压减小后电机转速就会相应下降,即可达到改变车速的目的。

3 系统软件设计部分

3.1 寻迹模块程序设计

在寻迹部分,本次设计小车共装有5只RPR220红外传感器,对于每个红外传感器而言,在接收到路线信息后,会通过发光二极管的亮灭来展现。当红外传感器感应到黑线时,发光二极管会熄灭,同时用1来表示,当未触碰到黑线也即感应到的是白色地面时发光二极管会亮起,同时将这种情况用0来表示。每个传感器都有两种不同的情况,则5个传感器共有32种情况可能发生。事实上,在车速不是太快且传感器灵敏度较高的情况下,如图6所示,灰色方块看作是传感器,那么最左边和最右边的传感器很难发挥实际效果,寻迹的过程通过中间三个传感器大致就能够完成,其他的传感器主要是为了加强稳定性,使运行过程更加地平稳,也为了提高容错率使小车始终沿既定路径行驶。

图6 RPR220红外传感器分布图

如图7所示为寻迹模块程序设计流程图。基于赛道不断调试后,图8给出了不同情况下的PWM占空比,也即自定义了几种不同挡位以进行直行和转弯的有效衔接。当M0检测到黑线,就执行直行命令;当L1检测到黑线,PWM占空比设置为70%进行幅度不大的微左转;当L2检测到黑线,PWM占空比设置为30%进行幅度较大的左转以保证转动幅度足够M0重新检测到黑线;当R1检测到黑线,PWM占空比设置为70%进行幅度不大的微右转;当R2检测到黑线,PWM占空比设置为30%进行幅度较大的右转,此时需要保证右转幅度足够M0重新检测到黑线。

图7 寻迹模块程序设计流程图

图8 超声波模块程序设计流程图

3.2 超声波模块程序设计

超声波主要涉及超声波发生器与障碍物的距离问题以及超声波探测到障碍物的时间间隔问题。通过多次实验得出,将距离设置为30cm较为合适,太短会导致离障碍物太近而产生偶尔撞击障碍物的现象,如果太远会影响到正常的寻迹过程,所以设置30cm的距离较为合理。探测到障碍物的时间间隔推荐值为64ms,但经过实验后发现,设置为64ms的话也会导致单片机来不及反应,为了给出足够的时间用于主控芯片的有效反应,最终设置的时间间隔为115ms。超声波模块程序设计流程图如图8所示。

4 实验分析与测试

为了检验小车的设计效果,将小车放置于实验室内用于智能小车拉力赛的跑道进行性能测试。向单片机烧录进写好的程序后,发现有时会出现原地打转的现象,可能是程序跑飞,所以又在程序中加上看门狗防止该现象的发生[10]。首先进行无障碍物和有障碍物两种情况下的实验,共分别进行3次实验,实验结果如表2所示。

表2 实验1测试结果

实验表明,当小车的运行轨迹上无障碍物时,小车能够顺利到达指定目的地,较好地完成寻迹任务。当小车的既定轨道上存在障碍物时,小车会通过自身避障检测,自行规避并调整路线,并最终到达终点,达到了较好的避障功能。

为了更好地检验小车的寻迹效果,将其与除红外寻迹只有3个、其他模块均相同的小车进行对比测试,共进行10组对比测试,实验测得相关数据如表3所示。

表3 实验2测试结果

通过表3看出,本文设计的5路寻迹智能小车较3路寻迹小车要更加稳定,运行过程也更加平稳。

5 结论

本次设计的无人驾驶智能小车,在主控芯片单片机和红外寻迹模块、超声波避障模块、直流电机驱动模块等的协调运作下实现了小车的直行、左转、右转等基本动作,完成了寻迹和避障的功能,特别采用5路寻迹相较传统的3路寻迹更加合理。

未来可以在小车上增加多个避障传感器,再将其用于更加复杂的环境,这对火场救援、货物运输、山地探测等方面的“无人化”具有推动作用,从而进一步减少人力资源的消耗,最大限度地保障人身安全。

猜你喜欢

黑线障碍物小车
大车拉小车
黑线
高低翻越
赶飞机
月亮为什么会有圆缺
刘老师想开小车
两轮自平衡小车的设计与实现
虾背黑线真的特别“脏”吗
去修理厂
这也算海鲜