APP下载

超声波定位智能小车自动跟随算法

2019-06-17夏晓枫杨佳丽宁维阳吴博高锋

科技资讯 2019年7期
关键词:智能小车单片机

夏晓枫 杨佳丽 宁维阳 吴博 高锋

摘  要:智能小车中的自动跟随算法应用广泛,该文研究了一种基于IAP15F2K61S2单片机的超声波定位自动跟随、自动避障智能小车。小车系统通过车体正前方等距分布并由舵机控制的3个超声波模块,实时测出了与目标物的3个距离,并通过文中设计的几何算法——距离差值比较法、平面坐标法,求出被跟随目标的坐标位置信息,再以坐标情况执行不同的跟随动作。

关键词:自动跟随  智能小车  单片机  超声波测距  超声波定位

中图分类号:TP274                                 文献标识码:A                          文章编号:1672-3791(2019)03(a)-0025-03

相比汽车,智能小车是一种轮式机器人,有安全、环保、应用广等优越性,可以解决人们许多问题,如无人车间工作、教育机器人等。该文研究一种智能小车,运用多种传感器,在能避障的同时跟随目标行驶,设备供电后无需人为干预,解放双手,方便人们生活。

1  总体方案设计

小车总体设计:(1)系统由IAP15F2K61S2单片机、电源、电机驱动、超声波测距、红外对管避障、蜂鸣器报警等硬件组成;(2)Arduino uno和舵机扫描电路;(3)两控制芯片通信及它们各自软件编程调试。

具体工作原理:超声波模块在预设距离内检测前方是否有目标,如果有则自主跟随。同时红外对管检测前方障碍物,当检测到有障碍物且小于预设值时把信息反馈给单片机,单片机控制驱动电路调整车轮转动绕过障碍物继续跟随。跟随过程中舵机不动,停止时舵机转动直到超声波模块扫描到目标物为止。小车能短程加减速后再稳速行驶,蜂鸣器报警功能仅用以在小车脱离跟随范围后提醒。所用模块较少且便宜,制作成本低。不仅四驱结构平稳,而且模块布局对整体外观结构影响小,为后续设计提供方便性和灵活性。

2  系统硬件设计

系统硬件由MCU搭载多个硬件模块并配合其他电路构成,系统硬件框图如图1。

2.1 主控芯片

IAP15F2K61S2是STC生产的单时钟新一代8051单片机,工作电压5V,不需晶振且内部资源丰富。用汇编、C等语言编程。Arduino由基于单片机的开源硬件平台和专门的开发环境组成,可用来开发交互产品。小车采用的uno微处理器是ATmega328,输入电压7~12V,用Arduino语言、scratch积木式编程皆可编程。

2.2 硬件模块

该系统采用硬件模块包括直流电源(给整个系统供电)、直流电机驱动模块(驱动直流电机)、超声波模块(实时测量与目标物距离)、红外避障模块(跟随过程中避开障碍物)、舵机(承载超声波模块上下扫描来扩大超声波覆盖面积)、蜂鸣器(当小车脱离正前方0.5~2m的跟随范围后报警)。

3  系统软件设计

系统软件为设计的关键,小车程序分以下几部分:单片机主程序,测距子程序,比较距离差值子程序,平面几何定位子程序,避障子程序,调速子程序;uno舵机扫描程序。单片机为主控核心,其主程序流程图如图1。

4  核心技术

4.1 超声波测距

系统采用超声波渡越时间检测法。距离计算公式:。其中:d为被测物与测物的距离,s为来回声波路程,v为声速,t为声波来回的时间。由于声波在空气中传播速度与温度有关,故传播速度查表可得近似公式v=332+0.607Tm/s,距离公式:S=(332+0.607T)t/2其中T为空气温度,t为声波传播时间。

4.2 定位方法

我们把3个超声波模块分别测一次距当作一个完整测距周期,一个测距周期总时长约0.3s,各测距周期互不影响,一个测距周期内所得3个距离值作为一组数据使用(见图2)。

4.2.1 距离差值比较法

在一个测距周期内,利用小车正前方3个等距离分布超声波模块测得的与目标物的3个距离值,与跟随范围0.5~2m做对比,依据3个距离值在区域(0.5m及以内、2m及以外、0.5~2m之间)里的分布情况,做出相应运动方向和状态的判断。具体如下。

4、5、11、12状态下,目标物在跟随范围外,小车停止并蜂鸣报警。

1、8、10、13状态下,已有两个距离值在范围外,小车濒临跟丢,此时亦停下報警。

2、7、9、14状态下,仍有两个距离值在范围内,小车须赶紧调整状态以防跟丢。此时根据还在范围内的两个距离值进行差值比较估计偏转角度,超过预定值则转弯,否则继续直行。

3、6状态下,3个距离值都在范围内,小车正常跟随。此时先根据最大的距离值判断转弯方向,再依据较小的两个距离值进行差值比较估计偏转角度,超过预定值则朝此方向转弯,否则继续直行。

小车偏离目标物程度的估定:将3个距离值两两做差,3个差值均小于预设值就认为小车微偏需调整方向纠正,否则认为偏离在非可调状态,保持原态。如上,单片机控制小车正确调整运动状态跟随目标物。

4.2.2 平面坐标法

正常跟随过程中小车运行是一个不间断的过程,即小车一直行驶着,故对于同一目标物来说,即使其在原地不动,它相对于小车的坐标位置也会稍微改变。目标物的速度较低,在0.3s的周期内其真实位置不会有太大改变,故可认为一次测距周期内目标物的真实位置不变。系统采用3个超声波模块测距,实则是在3个不同的时刻分别测了1个距离值,但因小车速度较慢,测距周期短,所以3个距离值相近。此方法将目标物理想化(距离较远时)视作一个点(X,Y),如图建立平面直角坐标系。由3个距离值理论上得到如下3个方程。

但实际上由3个距离值得到3个不同的但又相接近的坐标值(X1,Y1)、(X2,Y2)、(X3,Y3)。将其中两两理想化视为横纵坐标值相等,即令上述3个方程两两相等可得到三组不同的解,分别作为(X1,Y1)、(X2,Y2)、(X3,Y3)。最后分别取X1、X2、X3平均值作为X,取Y1、Y2、Y3平均值作为Y,可得到目标物相对于小车此时的位置(X,Y)的近似值。

3组解及坐标计算公式如下。

单片机再依据得出的坐标,合理地做出让小车调整运转状态的命令,控制其跟随目标物。

4.3 红外避障

小车运动过程中,红外发射管发射一定频率的红外线,当检测方向遇到障碍物时红外线反射回来被接收管接收,经模块内部比较器电路处理,信号输出口会输出低电平数字信号,单片机读取该口电平信号,可判断前方是否存在障碍物。

4.4 舵机扫描

车停时舵机承载固定有3个超声波模块的云台上下扫描。直到扫描到目标物后舵机停止转动并锁定角度,保持此角度小车开始运动跟随目标物,以此扩大超声波覆盖面积。舵机由uno单独控制,单片机的一个引脚做输出与uno的一个引脚做输入通过导线连接,称信号线。上电后uno读取线上其引脚的输入电平,若为低则舵机来回转动,若为高则舵机不动。至于信号线的电平,由单片机据小车运动状态来对应置高或拉低,车动置高,车停拉低。

4.5 电机调速

对所用直流电机转速的调控,用单片机软件模拟PWM波方法实现。PWM波有數字信号输出特点可有效降噪。为保证小车平稳运行,采用可调占空比的PWM波,可实现小车加速、减速、压制速度行驶,某些特殊场合能够变速,同时也可保证小车跟随的可靠性。

5  系统测试与误差分析

5.1 系统测试

虽12V电源供电,但小车速度被调控得很好,距目标物距离不适需加减速时,可明显表现出加减速过程,其他时刻稳定速度跟随目标物行驶。小车整体平稳,可在0.5~2m范围内实现180°的、自动绕过障碍物的自主跟随行驶。在脱离该跟随范围后能自动蜂鸣报警,舵机能在小车不动时转动,在小车运动时停止。小车的整体测试效果与预期相差不大,系统测试正常。

5.2 误差分析及减少措施

经分析,给小车带来跟随效果误差的因素主要有以下这些:传播过程中超声波信号衰减,可在同一位置多添置几个等价超声波模块来改善,扩大发射接收面,提高发射增益和接收灵敏度。声波接收到与被单片机检测到的时差、计时开始与触发超声波发射的时差,可优化软件代码来做部分弥补。系统硬件电路连线存在一些弊端与瑕疵,可印制电路板然后焊接减少接线,优化硬件线路来调整优化。

6  结语

总体来说项目设计很成功,在老师指导和团队努力下,顺利实现超声波定位跟随、红外避障、舵机扫描、蜂鸣器报警、小车调速功能,达到预期效果。小车后续设计可以为系统添加无线模块NRF24L01,将超声波发射头接收头分开,小车配置接收头,持拿发射头,可令小车与目标物一对一匹配,实现特定跟随。

参考文献

[1] 蔡磊,周亭亭,郭云鹏,等.基于超声波定位的智能跟随小车[J].电子测量技术,2013,36(11):76-79.

[2] 张文霞,张凯,乔良,等.基于单片机的智能跟随小车的设计与实现[J].科技与企业,2015(12):251.

[3] 陈吕洲.Arduino程序设计基础[M].2版.北京:北京航空航天大学出版社,2015.

猜你喜欢

智能小车单片机
单片机在智能控制中的应用
基于LabVIEW的自主巡航与遥控双功能智能小车研发
基于STC89C51智能小车的移动家居平台的设计
基于HC—SR04超声波传感器的智能避障小车设计
智能安全防盗探测小车
一种基于STC89C52单片机的简易智能小车的实现
C8051F020与80C51单片机的异同点
单片机I/O口模拟串行通讯的C51实现方法
单片机调试方法的探讨
用PIC单片机制作的时间继电器