APP下载

基于STM32的双模式智能避障小车系统设计与实现

2021-03-25苏世雄马新华

自动化与仪表 2021年3期
关键词:障碍物蓝牙小车

王 钰,朱 琳,苏世雄,马新华

(1.西安航空学院 计算机学院,西安710077;2.中国兵器装备集团 摩托车检测技术研究所,西安710032)

随着人工智能时代的到来,智能机器人的应用越来越广泛,智能小车作为一种轮式的移动机器人是智能机器人的一种典型应用。它是一个集环境感知、动态决策与规划、智能控制与执行等多功能于一体的综合系统[1-2]。同时,伴随着科技的进步,各种高科技及前沿技术广泛应用于智能小车领域,使得智能小车越来越多样化[3],其中,无人控制的智能小车自动行驶成为人们关注的热点[4]。文献[5]设计了基于Arduino 的智能避障小车,采用RB-URF02 超声测距传感器作为避障检测模块,使得小车具有了一定的避障功能,但是只考虑了正前方一个方向的障碍物检测,并且当遇到障碍物时,默认的转弯方向也只是同一个方向。文献[6]设计了一种基于AT89S52 的Android 手机蓝牙控制智能小车,使得小车能够根据人为控制进行避障,但是该小车无法自主避障。文献[7]设计了基于89C52 的智能避障小车,采用NREF24L01 作为无线接收模块,以红外光电传感器作为避障模块,设计了一款智能控制小车。文献[8]设计了一种基于机器视觉的循迹避障小车系统,该小车以摄像头作为信息采集模块,得到障碍物的距离,从而避开障碍物。

虽然学术界对智能小车的研究取得了一定的进展,但是,都是基于某一种模式进行研究的,其小车的智能性和多样性不足。因此,为了进一步提高小车的智能性和多样性,本文设计的智能小车有2 种控制模式,即自动模式和手动模式,采用5路超声波传感器,分别置于小车的前后左右,对小车周围环境进行全方位的障碍物检测。当处于自动模式时,小车根据5 路超声波传感器获取路障信息,进行算法融合之后,决策出所要执行的动作,从而实现自主避障;当处于手动模式时,小车根据上位机APP 人工控制进行避障,从而达到避障功能。

1 系统总体设计

为了保证智能避障小车的平稳性,小车采用四轮稳定,其中前两轮为驱动轮,后两轮为万向轮,通过控制前轮的转动来实现小车的驱动及方向的转向控制。主控MCU 采用STM32F407,该芯片的配置丰富且功能强大。整个系统包括:控制器模块、5 路超声波模块、语音播报模块、蓝牙模块、Android APP 上位机控制模块、显示器模块、直流电机驱动模块和电源模块。系统功能如图1所示。

图1 系统功能图Fig.1 System function diagram

2 系统硬件设计

为了提高检测信息的全面性,本文设计的智能小车有5 路US-100 超声波传感器,分别置于小车周围,由于前方为主要检测区域,因此,前方左右各设置1 路,其余3 路分别置于左、右、后。

2.1 控制器模块

本系统主控芯片选择STM32F407 单片机,该芯片负责整个系统的数据收集、信息处理和电机控制。本智能小车设计2 种避障模式,分别为自主(主动)避障和手动(被动)避障。在自主避障模式下,小车根据5 路超声波传感器采集的数据融合计算后,控制电机的运转和转向;在手动模式下,小车根据用户操作上位机(Android APP)发送的指令,调节电机的转速、转向和启停,以此来控制小车的速度和方向。整个主控芯片的电路如图2所示。

图2 STM32 主控芯片电路图Fig.2 STM32 controller

2.2 电机驱动模块

本文选择的电机是12 V 直流电机,选择的电机驱动芯片是双H 桥L298N 模块。该模块可以直接驱动两路5~30 V 直流电机,其输入端口IN1、IN2、IN3、IN4 分别与单片机控制端IO 口的PA11、PG11、PG10、PA15 连接,输出端口OUT1、OUT2(OUT3、OUT4)分别与左(右)电机的正、负极相连。L298N 的逻辑功能可参见其芯片手册,电机驱动模块电路如图3所示。

2.3 超声波模块

本系统采用US-100 超声波作为检测障碍物的距离,该超声波可测量的范围为2 cm~4.5 m,拥有2.4~5.5 V 的宽电压输入范围,自带温度传感器对测距结果进行校正,同时具有GPIO、串口等多种工作方式,其工作稳定性可靠。采用电平触发方式测距,其测距计算方法: 距离=(高电平时间* 声速)/2,其中,高电平时间可采用单片机的定时器获取,声速取值为340 m/s,从而便可计算出障碍物距离。

图3 电机驱动电路Fig.3 Motor-driven circuit

2.4 语音播报模块

语音播报功能使得电子产品更加人性化、便捷化,在许多应用领域都有着不可替代的作用[9]。本系统设计的语音播报功能可用于小车运行的各种状态中。例如,小车上电后播报“初始化成功,请选择模式”,左转时播报“当前正在左转”等。本系统所采用的语音芯片为XFS5152CE,该芯片可支持中文、英文语音合成,集成了语音编码、解码功能,同时支持录音和播放功能,支持UART、I2C、SPI 三种通讯方式,本文采用UART 通讯方式。语音播报电路如图4所示。

图4 语音播报电路Fig.4 Voice broadcasting circuit

2.5 显示器模块

为了清晰显示小车周围检测到的障碍物距离,本文未采用常用的LCD1602 或LCD12864 显示器,而是采用当前较为流行的专门针对工业自动化应用而设计的迪文屏显示,该屏集成了大量的工业自动化处理相关软件,使用起来较为方便、简单。

2.6 蓝牙模块

本文采用HC-06 作为从蓝牙模块,用来接收上位机(手机APP)发送来的各种指令。但是,在小车与蓝牙连接之前需要对蓝牙进行相关的设置,例如,测试通讯是否正常,修改波特率、名称、密码等。该部分可参见HC-06 蓝牙芯片手册进行设置即可。

2.7 电源模块

电源模块是整个系统的能量中心,稳定良好的电源是保证小车顺利完成的基础。本文采用的电源是12 V 可充电锂电池,电源管理模块将电压调节后重新分配给各不同电源标准的模块,以保证各器件正常工作。

3 系统软件设计

本系统软件开发主要有STM32 控制器、手机APP 两个方面。针对STM32 控制器采用Keil uVision5 集成开发环境,该软件是基于Windows 的平台开发,简单易上手,非常适合于嵌入式系统的开发。针对手机APP 采用常用的Android 平台进行开发,并且该平台支持蓝牙开发。因此,整个系统的流程如图5所示,蓝牙模式和自主避障模式流程分别如图6、图7所示。

图5 系统流程Fig.5 System flow chart

图6 蓝牙模式流程Fig.6 Bluetooth mode flow chart

图7 自主避障模式流程Fig.7 Autonomous obstacle avoidance mode flow chart

4 实验测试

将小车置于含有障碍物的路段中,结果表明,小车运行平稳,各项设计符合要求。图8 为自主避障模式,图9 为蓝牙模式,2 个码盘中间显示小车速度档位,码盘显示小车左右电机的PWM 值。蓝牙模式下小车采用PID 来控制速度,通过手机APP 控制小车直行、停止、后退、转角等。通过点击加速、减速控制小车速度单位,这里将小车速度划分为10 个档位,默认是1 档,10 档最大。图10 为开发的上位机APP 软件。

图8 自主避障模式测试Fig.8 Test autonomous obstacle avoidance mode

图9 蓝牙避障模式测试Fig.9 Test Bluetooth obstacle avoidance mode

图10 APP 控制软件Fig.10 APP control software

5 结语

实践证明,本文设计并实现的智能小车能够根据超声波传感器采集的信息进行主动避障和人工控制APP 软件实现手动避障两种避障模式,实现了小车的准确避障,并且在手动模式时可以控制小车的前进、后退、左转、右转、停止以及调速等功能。小车整体运行平稳,操作方便、简单、易上手,下一步将针对小车循迹展开研究,使得小车的功能更加完善,智能性更高。

猜你喜欢

障碍物蓝牙小车
蓝牙音箱的直线之美
大车拉小车
自制小车来比赛
高低翻越
SelTrac®CBTC系统中非通信障碍物的设计和处理
刘老师想开小车
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
两轮自平衡小车的设计与实现
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
紧急:蓝牙指尖陀螺自燃!安全隐患频出