采用Arduino为核心控制的智能小车避障系统
扫描二维码
随时随地手机看文章
人工智能技术是与多门基础学科联系紧密、相互促进相互发展的前沿技术,是集计算机、物理学、生理学、控制技术、传感器技术等于一体的高新技术产业。人工智能技术的应用领域也越来越广泛,除了传统的工业领域,人工智能技术的应用也涉及到军事、娱乐、服务、医疗等领域”。
随着机器人技术的不断发展,人们对机器人的要求也越来越高,机器人的智能化已成为当今的热点。智能小车作为一种四轮驱动的智能机器人,它行动灵活、操作方便,车上可集成各种精密传感器数据处理模块,其避障功能保证了智能小车在行进过程中行进方向的自行调节,避免发生碰撞、碰擦,是智能小车的重要组成部分。目前,智能小车大多采用单个传感器实现单面避障,但单面避障存在着固有的缺陷,如:障碍物探测缓慢、避障成功率较低等。由此,设计了一种能全方位避障的智能小车系统,采用红外单点避障与超声波双路避障相结合的模式,可实现多面自动探测,并实现全方位避障,有效提高了避障的成功率和效率。
1 系统设计
设计的避障系统采用红外单点避障与超声波双路避障相结合的模式,以实现对障碍物的全方位有效避障。为此,在小车前端中央设置一个红外避障传感器,用于探测小车前方障碍物,再在小车前端两侧设置左右两个超声波避障传感器,他们分别探测小车前方左右两侧障碍物,有效的扩大了探测范围,从而实现了小车的全方位避障。
本系统利用多模块协调配合,使其具有较高自适应能力。硬件以需求为基础,选择了合适的模块,总体模块中包含:电源模块,红外传感模块,超声波传感模块,电机驱动模块,Arduino模块等。系统整体框图如图1所示。
图1 系统硬件结构图
1.1 Arduino模块
设计中采用Arduino duemilanove作为核心控制模块,Arduino是一款便捷灵活且十分方便上手的开源电子原型平台,能通过各种各样的传感器来感知环境,通过灯光、电机和其他的装置来反馈、影响环境。
Arduino duemilanove包括以下几个部分:一个9 V DC输入,一个USB接口,14个数字IO口,6个模拟IO口,1个5 V DC输出和一个3.3 V DC输出。它的核心是一片Atmega 328单片机。
1.2 电机模块
小车采用双直流电机驱动方式,通过控制左右两个直流电机来控制小车转动转向,电机模块如图2所示,直流电机采用直流电机驱动芯片L298N。
L298N内部包含4通道逻辑驱动电路,是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46 V、2 A以下的电机,正好可以满足小车的左右直流电机的驱动要求。并且L289N具有过温保护功能和较高的噪声抑制比,故十分适用于智能小车中。
图2 电机模块
由于芯片L298N并没有对电机转速的控制方式,因此,通过Arduino程序控制调节驱动电机的PWM信号,改变电机输出功率,从而控制左右电机的转速。
1.3 超声波传感器模块
超声波模块由发射电路和接收电路组成,如图3所示。其中发射电路由Em78p153单片机、MAX232及超声波发射头T40等组成,接收电路由TL074运算放大器及超声波接收器R40等组成。
图3 超声波传感器
探测时,超声波发射器发射出长约6 mm,频率为40 kHz的超声波信号。此信号被物体反射回来由超声波接收器接收,接收器实质上是一种压电效应的换能器。它接收到信号后产生mV级的微弱电压信号,电压信号再在核心控制模块中转换为数字信号。设超声波脉冲由传感器发出到接收所经历的时间为t,超声波在空气中的传播速度为c,则从传感器到目标物体的距离D可用D=ct/2求出。
1.4 红外传感器模块
红外测距模块采用夏普GP2YOA21红外测距传感器,夏普GP2YOA21型红外测距传感器是基于位置敏感传感器PSD(Position Sensitive Device)的微距传感器,捕捉的是光信号并且有着基于Lucovusky方程的电路设计,其有效的测量距离为80 cm。
红外测距其优点是无盲区、测量精度高、反应速度快,但其缺点受环境影响较大、探测距离较近。因此本文设计了基于多传感器信息融合的智能小车避障系统,采用红外传感器与超声波传感器互补,使机器人具有精确的感测范围。
2 算法分析
针对单传感器避障系统中存在的缺点,本文提出了多传感器协调合作方案,通过超声波传感器和红外传感器的配合,扩大了探测范围以及灵敏性,从而避免了误撞和紧贴障碍物的危险,提高了避障机率,实现了全方位避障。
2.1 流程设计
全方位避障小车在行进过程中,各传感器不断检测小车周围是否有障碍物。当有传感器检测到障碍物时,通过判断检测到障碍物的传感器的数量,来实现小车全方位自动避障:单传感器检测到障碍物时,小车远离检测到障碍物方向;两个传感器检测到障碍物时,小车向未检测到障碍物方向转向;所有传感器都检测到障碍物时,小车急速左转避开障碍物。当小车避开障碍物后,小车继续行进。流程图如图4所示。
图4 程序流程图
2.2 避障代码
根据以上避障原理,编写相应的程序,以实现小车的全面避障,程序主要分电机、超声波和红外测距三部分。电机部分由analogWrite()、digitalWrite()分别控制车速和小车前进、后退或转向;超声波测距部分由Trig.Pin控制超声波输入,由EchoPin控制超声波输出,控制模块通过对接收到的脉冲波时间进行处理,转化为距离参数,从而获得距离Middle_distance;红外测距部分由控制模块通过红外传感器获得一个模拟量analo.gRead(),通过输出的模拟量可以推算出电压值volts,而输出电压和探测距离关系为distance:65*pow(volts,-1.10),从而可获得小车与障碍物的距离。[!--empirenews.page--]
3 实验研究
智能车在进行了器件选型和确定控制算法后,为了验证系统的性能,进行了实验验证。
实验中选用一块放着多种障碍物的平地,障碍物分两大种:一种是规则的障碍物,如正方体、圆柱等。另一种为不规则障碍物。实验时,智能避障小车在行进过程中不断探测前方周围是否有障碍物,当存在障碍物时候,判断出相应障碍物位置,并进行相应动作。
为了有效验证智能小车避障成功率,通过改变障碍物形状来对小车进行性能测试,结果如图5所示。其中测试小车100次,并统计出单面避障和全方位避障成功通过不同障碍环境的次数,障碍环境由总数为100的规则障碍物和不规则障碍物组成。由图5可见,普通的单面避障方法有着较低的成功通过率,而本文所提出的全方位避障方法则受此影响不大,有着较高的通过率。
图5 单面避障与全方位避障成功率对比
4 结论
设计的基于Arduino的智能小车避障系统,采用了单红外和双超声波避障方式,使小车在行车过程中对障碍物的探测更加精确。实验结果表明,设计的全方位避障系统较大地提高了避障的效率和成功率,可有效地实现全方位避障。