PDF下载
基于STM32的红外线与超声波混合避障研究

胡晔

宁波财经学院,浙江省宁波市,315175

摘要: 采用红外线与超声波混合避障的方式,避免单独采用红外线在避障过程中容易“贴墙”陷阱问题。本文主要从功能原理、硬件模块、电控程序等方面展开,通过后退转弯的算法,提高对拐角障碍物和凹型障碍物的通过率,提高无人驾驶车辆的避障性能。
关键词: STM32;超声波;红外线;避障
DOI:10.12721/ccn.2022.160363
基金资助:浙江省公益项目2015C32124宁波市项目2014C10047水稻收割机无人驾驶与自动收割技术研究
文章地址:

1引言

科技发展已经进入了智能时代,智能家居、智能机器人、无人驾驶车辆、无人机、自主移动机器人已陆续面世,而避障问题是必不可少的研究课题,面对智能化程度的提高,单一传感器避障已无法满足要求,需要更灵敏更全面的信息融合实现自主避障,超声波的优点是反应速度灵敏、距离远、精度高、受外界干扰小,但存在反射问题、噪音问题和交叉问题,且近距离反射干扰大。红外线传感器的优点是近距离反应灵敏、无交叉问题,缺点是受自然光干扰,这两种传感器刚好优缺点可互补。为实现障碍探测,本文以无人驾驶车辆为例,在车体前后左右四方各安装一个超声波模块和一个红外光电开关模块。

2硬件模块

2.1电控硬件

无人驾驶车辆的控制电路核心采用基于32位ARM Cortecx-M3核心的STM32F103ZET6单片机,采用144封装,内含64KB Flash 和20KB SRAM存储器,主频可达72MHZ,并集成了丰富的片上外设。程序下载接口采用SWD串行模式,接线少,速度快,既可实现程序下载,也可进行在线仿真调试。时钟采用外部8 MHz石英振荡器,由复位及时钟控制模块(RCC)的锁相环(PLL)电路产生72 MHz主频,实现高性能程序处理。2台电机采用定时器TIM3的通道1、2的脉冲宽度调制(PWM )模式进行速度控制。超声波传感器选用了数字接口形式,由GPIO管脚进行控制,并连接到单片机地USART1上通过串口通信方式将数据发送给PC上位机。

2.2电机驱动模块

采用直流减速电机作为驱动电机。这种电机具有转动力矩大、体积小、重量轻装配简便使用便捷等优点,且电机内装有减速齿轮组,不需要通过PWM脉宽调制技术调节占空比实现电机调速功能,可直接利用内部齿轮组的相互配合实现调节直流减速电机的转速和转向等功能。

由于单片机I/0口驱动能力弱,不能直接连接直流电机,故需要驱动芯片进行驱动。采用基于L298N的电路连接方式,L298N是SCS公司的产品,内部包含4通道逻辑驱动电路。L298N是一种二相和四相电机的专用驱动器,即内含两个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A 以下的电机。

2.3红外光电开关模块

光电开关是传感器中的一种,它把发射端和接受端之间光的强弱变化为电流的变化以达到探测的目的。光电开关是光接近开关的简称,它是利用被检测物对光束的遮挡或反射,由同步回路选通电路,从而检测物体有无得。所以能反射光线的物体均可被检测。光电开关将输入电流在发射器上转换为光信号射出,接收器再根据接收到的光线的强弱对目标物体进行探测。

红外线光电开关它利用被检测物体对红外光束的遮光或反射,由同步回路选通而检测物体的有无,其物体不限于金属,对所有能反射光线的物体均可检测。漫反射光电开关是一种集发射器和接收器于一体的传感器,当有被检测物体经过时,将光电开关发射器发射的足够量的光线反射到接收器,于是光电开关就产生了开关信号。

2.4超声波测距传感器模块

采用4个SR-04型超声波传感器模块组成超声波传感器组,检测多个不同方向上的障碍物,为智能避障决策算法提供依据。该模块与单片机连接时只需要“触发(T RIC)”和“回响(ECHO )”2个IO信号,单片机CPIO口产生一个持续时间10μs以上的TRIC高电平信号,触发SR-04模块启动一次检测,SR-04模块发送8个频率40kHz的超声波脉冲信号,同时对返回信号进行检测,若有超声波信号返回,则ECHOP输出一个高电平,高电平持续时间为超声波发射到返回的总传播时间,单片机可对高电平时间进行测量。

3 电控程序架构

STM32系列单片机片上外设丰富、功能多样、寄存器繁多,手工编写驱动程序相对复杂。本文控制器驱动程序借助STM 32CubeMx工具设计、配置。并在Keil5软件下进行调试与仿真。ST M32CubeMx软件是ST公司为STM32系列单片机开发的一套图形化配置工具,只要通过参数化的图形界面进行简单的配置,即可以自动生成C语言的驱动程序合有所有初始化及标准功能使用的软件编程接口(API),从而大大提高了开发速度,驱动代码也可更加清晰、可靠。本文采用模块化结构,由主程序、避障子程序、中断子程序等构成。

3.1主程序流程图

13.png图1 主程序流程图

接通电源后,单片机各片上外设初始化,并等待启动按钮按下。启动按钮按下后,车前进,并判断前方是否有障碍物,并做出相应的动作。

3.2避障程序

车开始运行,红外光电传感器为高电平,光电传感器检测障碍物,如斜侧方有障碍物,红外光电传感器向单片机输出低电平,单片机接收低电平信号,STM32单片机主控芯片根据根据避障传感器接受的信号做出判断,分析车的动作要求,发送相应的动作命令给电机驱动模块,控制车实现转向。当车的左边的红外传感器检测到运动障碍物时,主控芯片控制右轮电机停止左轮转动,车向右方转向,当车的右边传感器检测到运动障碍物时,主控芯片控制左轮电机停止转动,车向左方转向,当前面后面有运动障碍物时规定车右转。同时,四个角的超声波传感器检测到固定障碍物时,单片机根据反馈的信息判断距离,主控芯片控制车轮及时做出相应调整,重新规划车运动轨迹,以达到避障的目的。

3.3多面同时避障

车辆在行驶的过程中,有时会遇到多个方向同时有障碍物,比如走到角落,采用直接转弯避障的方法是不可行的,当车与障碍物的距离很近时,由于车转弯有一定的转弯半径,直接转弯,车体容易与障碍物发生擦碰,采用超声波与红外混合倒退转弯避障的方法,当超声波检测到与障碍物的距离小于安全距离时,车一边后退一边转一定角度再通过侧方的红外光电开关来检测是否避障成功,若未成功则继续上述步骤,若成功则调整姿态继续前进。

4 结束语

采用红外线与超声波混合避障的方式,避免单独采用红外线在避障过程中容易“贴墙”陷阱问题,而超声波避障精度虽高但范围太小,避免障碍物在超声波检测范围之外时软件程序易陷入“死区”,解决了车在多个方向遇到障碍物时避障易发生刮擦等问题。通过后退转弯的算法,提高对拐角障碍物和凹型障碍物的通过率,提高车的避障性能。

参考文献

[1] 胡晔.无人驾驶领域中人工智能技术的应用[J].河南科技.2020(35):27-29

[2] 杨冰非,胡晔,胡增辉.机器人自动避障技术研究[J].工业A.2019(6):139-141

[3] 李会来,李小民,苏立军,陈静华.一种适用于机器人避障的超波测距系统设计与实现.仪表技术.2010(7):32-34

[4] 秦新林,陈伯亨.单片机的应用-STM32智能小车[J].农家参谋.2019(19):194