一种应对多障碍路况的智能小车自动寻迹控制系统

作者: 王传才 张笑恒 李继东 朱红永 赵长超

一种应对多障碍路况的智能小车自动寻迹控制系统0

关键词:智能小车;STC8;STM32;寻迹;避障

中图分类号:G242 文献标识码:A

文章编号:1009-3044(2024)28-0020-03

1 总体设计

系统总体设计框图如图1所示,分为路径障碍识别和行车驱动两个部分,均采用嵌入式控制技术[1-4]。路径障碍识别部分的核心控制器件为STC8系列单片机。该单片机首先通过串口获取循迹模块、避障模块、摄像头及无线通信模块中的路径障碍信息,然后根据获取的信息通过串口发送相应指令至行车驱动部分。行车驱动部分的核心控制器件为STM32系列单片机,该单片机通过串口接收来自STC8单片机的指令,并根据指令控制驱动电路,以实现对电机和舵机的控制,从而实现对整个小车行进状态的控制。

2 系统硬件设计

2.1 循迹模块

智能小车的行走区域固定在由专用磁条围成的12宫格中,如图2所示。循迹模块通过磁循迹来确定小车的行走路线,共采用8路霍尔传感器来检测磁场信息[5-7]。这些霍尔传感器按照一定的物理间隔排列(如图3所示),分别感应所在位置的磁条信息。小车的控制核心器件STC8单片机依据各路霍尔传感器反馈的信号,能获知磁条与小车中心位置的偏差信息以及12宫格中磁条相交的路口信息,从而发送相应指令给行车驱动核心器件STM32单片机,确保小车沿着磁条的路径行进,并在预定的12宫格某一特定路口改变行车方向,从而实现智能小车的自动寻迹功能。

模块中附有8路霍尔传感器电位器,用于调节霍尔传感器的电阻值,以调节其灵敏度。为方便现场调试,模块还配有8路循迹指示灯,用以显示霍尔传感器检测到的磁场信息。当未检测到正确的磁场时,指示灯常亮;检测到磁场时,指示灯熄灭。

霍尔传感器检测磁场信息的原理图如图4所示。系统中使用的霍尔传感器型号为1302E,共有3个接口,其中2个用于接电源和地,剩下1个为输出信号接口,通过1个上拉电阻连接至5V电压,从而形成开关脉冲信号。

2.2 避障模块

智能小车在行进过程中仅对正前方的障碍物进行检测。当障碍物距离小车小于40 cm时,小车会通过横移到相邻磁条来避开障碍物。避障模块采用超声波传感器,正前方固定有两路超声波传感器,通过对这两路超声波数据的融合处理来检测障碍物。超声波测距的原理是利用超声波在空气中的传播速度已知,通过测量声波在发射后遇到障碍物反射回来的时间,根据发射和接收的时间差计算出发射点到障碍物的实际距离[8-10]。

系统采用HC-SR04超声波测距模块,模块共有4 个接口,其中2个为电源和地,另外2个为接收触发控制口和输出回响口。具体的测距流程如下:STC8单片机向超声波测距模块发送1个持续10 μs以上的触发高电平信号,测距模块接收到触发信号后会发出40 kHz 的超声波,回响口随后输出高电平信号给STC8单片机。当单片机检测到高电平后,启动定时器计时。当超声波遇到障碍物并被反射回时,回响口的输出电平变低,定时器停止计时。通过读取定时器的值可以计算出测距时间,从而测出小车与障碍物的距离。当距离小于40 cm时,小车会通过横移来进行避障。超声波测距的时序图如图5所示。

2.3 无线通信模块

小车行走区域设有道闸,道闸内部配备有从Lora 无线通信模块。小车启动后,会根据行走路线推算出道闸的位置。当识别到道闸后,小车通过内部的主Lora无线通信模块依次发送开启和关闭命令给道闸的从模块,以实现小车行进过程中对道闸的控制。

Lora无线通信模块是一款将工业级单片机和高性能射频收发器集成在一起的半双工无线数据传输模块,具有体积小、工作稳定的特点。模块内置的MCU负责对数据进行包装和处理,系统开发中只需通过UART接口即可实现无线通信。在通信过程中,主从Lora模块分别设有不同的固定地址。通信过程首先由STC8单片机按照通信协议通过串口发送数据到主模块,然后主模块与从模块建立通信,从而实现对道闸开关的控制。具体发送的数据如表1所示,其中校验和是从字头开始到数据的累加和,数据0x01表示打开道闸命令,数据0x02表示关闭道闸命令。

2.4 摄像头

智能小车的行走路线中设有交通信号灯,小车通过摄像头持续获取信号灯信息,并通过串口将其发送至STC8单片机。STC8单片机根据获取的信息发送相应指令给行车驱动部分的STM32单片机,再通过驱动电路控制电机,实现小车行进过程中对交通信号灯的自动识别。小车使用的是OpenMV摄像头,OpenMV 是一款开源、低成本、功能强大的机器视觉模块,以STM32F427 CPU为核心,并集成了OV7725摄像头芯片。在系统开发中,利用OpenMV上的寻找色块开源算法来识别交通信号灯。摄像头模块自带UART接口,可直接连接至STC8单片机,通过该串口完成信号灯信息的读取[11-12]。

2.5 电机驱动模块

系统采用L298N芯片作为驱动电机的核心元件。L298N 是一款专用驱动集成电路,属于H 桥集成电路,单个芯片可驱动两路二相电机。驱动电路原理图如图6所示。芯片的输入端直接连接至单片机,单片机通过控制IN1-IN2和IN3-IN4两组输入脚的逻辑电平,实现对两路二相电机的正向和反向控制。OUT1-OUT2和OUT3-OUT4两组输出脚分别连接至被控电机。ENA和ENB为使能控制脚,只有当其输入为高电平时,单片机的输入控制信号才能起作用。智能小车采用2个L298N芯片以驱动4路二相电机。

3 系统软件设计

系统软件开发采用Keil5平台。由于Keil5没有自带STC型号的MCU,因此需要先手动将STC型号的MCU添加到Keil5设备库中,随后新建工程并添加目标芯片,最后完成相关工程配置后进行系统软件开发[13-15]。系统需实现的功能是智能小车在多种障碍路况下按照规定路线完成自动寻迹。障碍路况包括路障、道闸和交通信号灯。

按照图7所示的小车行驶路线图,系统功能实现的具体过程如下:

1) 小车从起点出发,在第2个路口左转,在第6个路口左转,并在第9个路口左转,此时发送打开道闸的命令。

2) 在第10个路口左转,并发送关闭道闸的命令。

3) 在第11个路口进入路障检测,判断超声波是否检测到路障。如果检测到路障,小车则进入平移状态,直行一段后往下平移一格至12S路口处绕过路障,并在第13个路口右转。如果没有检测到路障,则在第12个路口右转。

4) 在第14 个路口右转进入交通信号灯检测区域。此时小车会降低速度前进,以增加摄像头识别时间。如果检测到绿灯,小车继续前进;如果检测到红灯,小车则停止等待,直到绿灯出现再继续行进。

5) 在第15个路口左转,第16个路口左转,回到起点并停车。

软件程序流程图如图8所示。程序通过逻辑判断和传感器反馈来实现上述功能,确保小车能在不同的路况和指令下正确运行。

4 结束语

该智能小车自动控制系统以STC8系列单片机为控制核心,配合相应的外围电路模块。经过测试与验证,该系统在自动寻迹过程中能够成功避开红灯、道闸和路障等障碍物。这表明系统在实际应用中具备良好的稳定性和可靠性,能够有效地完成预定的任务。

上一篇 点击页面呼出菜单 下一篇