您好, 访客   登录/注册

基于STM32的智能循迹避障小车

来源:用户上传      作者:

  摘 要:智能小车综合利用传感器、人工智能、自动控制、视觉计算、体系结构设计等多项技术,是计算机科学、模式识别和智能控制技术发展到一定高度的产物,也是未来智能汽车的发展趋势。本文介绍了一种基于STM32单片机的智能循迹避障小车硬件系统和软件系统的设计。该智能小车以STM32单片机为主控芯片,采用红外对管和超声波传感器作为检测元件,使小车能按预定的轨道稳定行驶,能正确地识别路径、避障。
  关键词:循迹避障;STM32F103ZET6;红外对管传感器;超声波传感器;舵机
  智能小车是一种可以进行自主信息检测、自主决策以及自主行驶的高度智能化设备,涉及的学科主要包括单片机原理、软件编程、电机自动控制、数字电路、模拟电路,以及硬件设计、信息采集、信号处理技术和人工智能技术等等。本文基于STM32主控芯片设计的智能小车包括两个单元,其一是循迹单元,其二是避障单元。主要利用循迹单元、避障单元的外围硬件设备结合软件控制,设计出一个较为完整的自主控制系统,使智能小车分别能够按预设标线完成循迹行驶和自主避障行驶。
  1 工作原理
  智能循迹避障小车的控制系统主要由以下四个模块组成:红外对管模塊、超声波模块、舵机模块、电机驱动模块。循迹小车的控制原理是将红外对管传感器固定在小车前端,实时采集道路信息,将采集到的信息传输到STM32处理器,处理器根据预设的程序调整小车电机的转速进而使小车可以按照预先规划好的路线行驶实现循迹。避障小车的控制原理是将超声波传感器固定在舵机上并置于小车前端,由STM32处理器根据设定的程序调整超声波测量角度,测量小车与障碍物的距离,从而实现避障功能。
  2 硬件设计
  (1)主控制器单元。该智能循迹小车的主控制器单元采用STM32F103ZET6单片机,使用的是时钟频率为72MHz的ARM Cortex系列处理器。单片机的PB1、PB2端口用于循迹时红外传感器的输入;PA2、PA3端口分别用于避障时超声波传感器的输入和输出;PB0端口用于舵机的输入控制;PA4、PA5、PA6、PA7分别用于电机的正反转控制。
  (2)循迹单元。循迹单元是智能小车的重要组成部分,本设计采用的是具有反射功能的单光束红外传感器。传感器两个探头分别为红外线发射管和红外线接收管。发射管发出红外光线,传感器根据接收管接收到红外线的多少判断黑线的位置。根据黑色吸光原理,当照射到黑线时,反射回来的光线较少,接收管不导通,输出端输出高电平。当照射到白色表面时,反射回来的光线较多,接收管导通,输出端输出低电平。单片机根据红外对管传感器输出的信号来控制车轮转向,从而实现小车的循迹功能。此小车循迹模块由一个STM32主控板和两个红外传感器模块板组成,通过杜邦线将红外传感器模块板与主控板板连接,实现信号传入。两个传感器独立工作,互不干扰,传感器的数量与安装位置没有固定限制,可结合现场调试效果确定,以能使小车自主顺畅运行为准,红外传感器模块板工作电压为3.3-5V。两个红外端口分别对应单片机的PB1、PB2口。
  (3)避障单元。①超声波模块。本设计采用的是超声测距波避障,其测距过程如下。首先,与TRIG相连的IO输出一个不少于10us高电平触发测距;紧接着,模块自动向某一方向发射8个 40khz的方波;发射的同时,打开程序中所用的定时器并检测与ECHO相连的IO口电位,当有信号返回时,ECHO输出高电平,此时关闭定时器,读取定时器的计时时间即为超声波从发出信号到在空中传播,再到接收到返回信号的总时间。
  小车与障碍物的距离:
  式中,d为超声波避障模块与物体之间的距离,c为空气中超声波沿直线传播的速度,t总为五次传感器测量的时间和,n为测量次数。本设计中采取连续测量5次求平均值的方法来减小测量误差。
  ②舵机模块。从PB0端口输入舵机的控制信号,并产生周期为20ms的脉宽调制信号,0.5ms-2.5ms的脉冲宽度变化对应舵机0-180°的偏转角变化,两者变化基本上呈线性关系。通过控制单片机I/O输入端,产生具有一定脉宽的信号并发送至舵机,使舵机输出对应偏角直到处理器提供另一个脉宽信号再改变输出的转角。在此过程中无论外界对对舵机施加的力矩如何改变,舵机转角都不会改变,直至主控模块所发送下一个脉冲信号,舵机角度才会发生相应改变。
  3 软件设计
  通过完成各模块的初始化来实现智能小车软件的设计,并实现运行过程中的自主控制。传感器将采集到的信息以数字信号的形式传递到单片机输入引脚。单片机依据此信号进行判断处理,以实现智能车的正常行驶。这些过程均需要通过软件设计来实现。本设计的控制系统软件设计基于Keil μVision 5编译环境,使用C语言完成程序编写。
  其中,传感器对应小车的运动形式如下表:
  4 结语
  本设计通过采用STM32F103Z6芯片的A/D转换、GPIO口、串行口通信等内部集成的一些功能完成了硬件的设计及软件的开发,成功地实现了智能小车的循迹、避障功能。本文提出的基于STM32的智能循迹小车可应用在中小学生的兴趣教育等领域。通过制作循迹避障的智能小车,可以很好地掌握STM32开发板的编程原理,同时锻炼了大学生将综合理论知识应用到实践中的能力和团队协作的能力。
  参考文献:
  [1]李帅男.基于STM32的循迹避障智能小车的设计[J].数字技术与应用,2018,36(08):163-164.
  [2]王楠,查志敏.基于STM32单片机的智能搬运小车设计[J].大庆师范学院学报,2017,37(06):14-17.
  [3]骆第含,赵子豪,岳有山.智能小车的发展现状与趋势[J].河南科技,2017(23):92-93.
转载注明来源:https://www.xzbu.com/1/view-14937116.htm