APP下载

基于STM32F407的巡防智能小车设计

2019-10-21李萌于洋

科技风 2019年20期
关键词:微控制器

李萌 于洋

摘 要:应用STM32F407微控制器平台设计一款智能小车,结合红外线检测技术与超声波检测技术,使小车能够绕高台阵地四周行走,且到边缘自动转向,自动检测入侵障碍物,当检测到障碍物时,进行报警并攻击移动进攻障碍物,因具备巡逻和防御功能可承担“守门员”的任务。

关键词:微控制器;红外检测技术;超声波检测技术

Abstract:Using STM32F407 microcontroller platform to design a smart car,combined with infrared detection technology and ultrasonic detection technology,enables the car to walk around the high-position,and automatically change direction when reaching the edge,automatically detect the intrusion obstacles,Alarm and attack the mobile offensive obstacles when an obstacle is detected,can take on the task of "goalkeeper" because of the patrol and defense function.

Key words:Microcontroller;infrared detection technology;ultrasonic detection technology

現阶段的智能小车“巡防”,在有白线或黑线路径时,多采用循迹方式,利用传感器对黑白线进行识别,从而沿预定轨迹进行“巡视”。设计方式也多以轮式四轮小车为主,也可用红外线进行障碍物检测。

本文针对形状规则的高地,设计了一款智能小车,小车车体为方形,车轮采用全向轮,在硬件结构的基础上选用STM32F407为主要控制核心部件,配合电机控制板、红外传感器、超声波传感器等元件,可实现运行速度、红外传感器的安装位置及检测精度、超声波传感器测量报警距离等可调的控制要求,使其适用在多种高地场合,实现其自动巡查、报警、防御等功能。

1 硬件结构设计

将整车分为行走系统、机械系统和控制系统几大部分进行设计。整车形状为方形,在车架体四个方向各装一个全向轮,能够在两个垂直的方向切换行走。通过电机实现转向和行走,车体四个方向每一侧各安装一个超声波传感器,检测到障碍物后,停止巡查,采用防御支架进行旋转或撞击,未检测到障碍物时可保持循环行走。

行走系统由全向轮和连轴器及电机组成,构成了一个完整的行走单元。轮胎使用4寸全向轮,它的主要特点为可进行前后移动和左右移动,使整车可全方向移动和旋转,采用与全向轮匹配的6mm 联轴器,主要用于连接轮胎及电机。

本文在设计的过程将机械结构分为了车架体和防御支架。车架体采用方形结构,设计理念为可以随意旋转移动,增加侧面攻击力,快速切换行走方向,双面都可行走,上下盖板用支架连接,减轻重量,利于散热,行走及防御各需两个电机作为执行机构。为保护轮胎、进行防御撞击,车体上配置防御支架。防御支架安装在四个轮胎外围,上下盖板的连接支架上。

2 控制系统设计

控制系统主要包括了STM32F407微控制器、电源、电机驱动板、检测系统等,整机电源为12V可充电锂电池,使用多路输出DC-DC电压转换模块,可将12V转3.3V及5V,能够同时为控制单元供电,电气系统的整体设计如图所示:

红外线检测分为4个探头和一个中控板,探头包括红外线发射管和接收管。红外线检测模块安全工作电压范围在3V至6V之间,4 路全开工作电流30mA至55mA之间。车体四个方向的防御支架下方安装4个红外传感器检测端,检测端与红外传感器模块连接,调整所在通道的电位器可以改变探测的距离。当在高地上正常行走时,红外传感器检测模块能够采集到正常信号,当红外传感器检测到已超出高地边缘,红外传感器将给STM32F407相应引脚低电平信号,用以控制电机的方向,同时红外传感器模块自带指示灯,检测到高地边缘时,指示灯即点亮。

超声波测距部分使用HC-SRF05 超声波测距模块,HC-SRF05集成了超声波发射器、接收器和控制电路,具备2cm-450cm范围内的的非接触式距离感测功能,距离测量精度可达到3mm。

电机驱动模块具备双路电机接口,每路额定输出电流7A,有欠压保护和电源瞬态干扰抑制功能,每路支持三线控制使能、正反转及制动,使能信号可外接PWM进行调速。

3 软件设计

在主函数中完成时钟、GPIO及TIM2、TIM3、TIM4、TIM5通用定时器的初始化,当四个红外检测信号未触发,且前、后、左、右四个超声波传感器在检测范围内未发现攻击物体,小车在电机的作用下向前运动。当前方红外检测信号触发,其它三个方向红外检测信号正常,且前、后、左、右四个超声波传感器在检测范围内未发现攻击物体,小车在电机的作用下向后运动2S后改为向左运动,当左边红外检测信号触发,其它三个方向红外检测信号正常,且前、后、左、右四个超声波传感器在检测范围内未发现攻击物体,小车在电机的作用下向右运动2S后改为向后运动,当后方红外检测信号触发,其它三个方向红外检测信号正常,且前、后、左、右四个超声波传感器在检测范围内未发现攻击物体,小车在电机的作用下向前运动2S后改为向右运动,如此循环完成四个方向的行走。一但出现对向红外线检测信号同时触发,或三个以上红外检测信号同时触发,系统报警。当任意一方向超声波传感器距离值小于150cm(距离可根据场地情况进行调节),小车即向此方向行驶,遇到边缘后向后方退2S后,进行原地旋转寻找攻击物体,并报警。

3.1 电机控制

首先定义电机控制端口,电机1控制信号对应PC1、PC2,电机2控制信号对应PA3、PA4,电机3控制信号对应PB1、PB2,电机4控制信号对应PB13、PB14,八个引脚连接至电机控制模块。

进行IO口的初始化:

3.1.1 使能时钟

需要使用STM32F407的GPIOA、GPIOB、GPIOC、GPIOD、GPIOE的I/O端口,在使用前需要使能时钟,才可使端口正常工作,可调用RCC_AHB1PeriphClockCmd函数进行时钟使能。

3.1.2 I/O口的初始化

配置上述I/O口模式为上拉推挽输出、引脚速率为100MHz。

3.1.3 电机控制函数

定义5个电机控制子函数,分别控制电机的前进、后退、左行、右行、旋转、停止。

void front_move(void);//小车前进

void left_move(void);//小车左行

void right_move(void);//小车右行

void back_move(void);//小车后退

void rotate_move(void);//小车旋转

void stop_move(void);//小车停止

其中,可通过对PC1、PC2、PA3、PA4、PB1、PB2、PB13、PB14的端口0/1状态的改变来实现电机运动状态的改变,如前进时,PC1、PB1为高电平,PC2、PB2为低电平,且另外四个引脚应为低电平。同时设置三个端口连接电机驱动模块使能端,通过使能端的PWM信号进行电机调速。

3.2 红外线检测

红外线检测信号为数字量信号,定义4个红外线检测信号对应的STM32F407的引脚PE5、PE6、PE7、PE8,当相应引脚检测到低电平信号时,即为处于边缘状态,需要向反方向行使,是控制电机运动的条件之一。

#define Edge1 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_5)

#define Edge2 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_6)

#define Edge3 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_7)

#define Edge4 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_8)

红外线检测子函数:

u8 IN_Scan()

{

if(Edge2==1&& Edge3==1)

{

if(Edge1==0&& Edge4==1)return2;

else if(Edge1==1&& Edge4==0)return1;

else return4;

}

else if(Edge2==0&& Edge3==1)return2;

else if(Edge2==1&& Edge3==0)return1;

else return3;

}

3.3 超声波检测

超声波传感器采用IO口TRIG触发测距,分别定义PA1、PA2、PA5、PD0为超聲波触发信号控制端口,给相应端口15us的高电平信号,例如其中一个端口控制信号程序如下:

GPIO_SetBits(GPIOA,GPIO_Pin_5);//引脚置为高电平

delay_us(15);//延时15us

GPIO_ResetBits(GPIOA,GPIO_Pin_5);//引脚置为低电平

STM32F407的上述相应引脚给出15μs的高电平后,超声波测距模块的发射器会向前方发送8个40khz的方波,同时测距模块检测返回信号,若有信号返回,STM32F407的PD3、PD4、PD5、PD9端口会接收到高电平;分别使用TIM2、TIM3、TIM4、TIM5中断来计算每个超声波传感器的高电平信号所持续的时间,即超声波从发射到返回的时间,(高电平时间*声速)/2即为超声波传感器到物体之间的距离。

4 结论

本文设计了一款可用于规则高台巡查的智能小车,小车外形为正方形,采用全向轮,四边各一个轮胎,直角转向方便。小车具有高台边缘检测功能,车底安装红外线检测装置,检测到小车行走至边缘后切换行驶方向。小车车体四边安装四个超声波检测传感器,检测四个方向的进攻障碍物,可通过开关设置和调节2cm-450cm范围内的检测距离。检测到障碍物后,小车发出报警声音,并可手动调整电机速度,小车减速缓慢行驶并对移动障碍物攻击,小车结构轻便,功能全面,在规则性高台环境下能够起到较好的巡逻、报警、和攻击作用。

参考文献:

[1]吕闪,金巳婷,沈巍.基于STM32的循迹避障智能小车的设计[J].计算机与数字工程,2017(03):549-552.

[2]苏元楷,季磊,聂嘉欣,蔚国将,关玉琴.基于STM32F407的路径识别智能小车设计[J].信息通信,2017(08):31-33.

[3]李帅男.基于STM32的循迹避障智能小车的设计[J].数字技术与应用,2018(8):163-164.

[4]李亚巨,李战胜,熊碧涛,樊东.基于stm32f103zet6的智能小车的制作[J].电子制作,2013(11):52-53.

猜你喜欢

微控制器
TASKING针对英飞凌第三代AURIX微控制器推出多核开发环境
LwIP在微控制系统中的移植与应用
嵌入式软件开发的关键技术
基于微控制器的多电机同步控制算法与系统设计
一种手机智能控制的烟道防灭火装置
电磁导向智能车设计探讨
基于PIC18单片机的弹载电源控制系统设计
基于MC9S08QG8低端微控制器的无线控制器设计