基于
STM32
小型
智能
运输
小车
第 13 期2023 年 7 月无线互联科技Wireless Internet TechnologyNo.13July,2023作者简介:陈家熙(2001),男,广东茂名人,本科生;研究方向:硬件开发。通信作者:李振华(1988),男,湖北黄冈人,讲师,博士;研究方向:机器视觉与智能系统。基于 STM32 的小型智能运输小车陈家熙,刘建豪,张海博,范洁润,李乐怡,李振华(广东海洋大学,广东 湛江 524088)摘要:目前,市场上已经出现较多功能各异的无人智能运输小车,如餐厅中的智能上菜小车、小区内的智能快递小车,均可以实现无人运输功能,节省了人力。文章以 STM32 为主控芯片,设计出一款小型的无人运输小车,适用于楼道、走廊等相对狭窄的通道,结合人工智能,可以精准识别,达到准确派发。关键词:对门的识别;小车;精准派发中图分类号:TP273 文献标志码:A0 引言 随着科技水平的提高,科技代替人类完成许多工作。例如,当下发展比较迅猛的无人运输技术。在餐厅中,它们可以准确将菜品运送到对应客人的桌子上,减缓了餐厅服务员的工作量。在小区里,快递站使用无人运输小车派送快递,可以有效分担快递员的工作压力。无人运输小车的出现,可以有效地帮助减缓服务、运输等行业的工作人员工作压力,在夏天高温时,能有效防止工作人员中暑。但现在市面上大部分的无人运输小车外形都比较大,只适用于某些开阔的场地。针对这种现象,本文提出一种小型运输车。此款运输车体积较小,可以用于在一些相对狭小的地方运输小型物品,如在楼道内运输药品或零食等。该车具有识别门与自动避障功能,能实现精准派发与自动避障等功能,实用性较强,且成本相对较低,开发周期较短。1 小型智能运输车总体设计方案 该小型智能运输车主要由单片机主控芯片、电源模块、摄像头识别模块、电机驱动模块、避障模块 5 部分组成。考虑到小车的程序复杂程度和工作效率,该智能运输车使用 STM32F103ZET6 作为主控芯片。该芯片拥有较多功能管脚以及 5 个串口,便于后续可以对小车的功能进行升级与扩展,电源模块由 12 V 可充电电池、AMS1117 芯片和 LM2596S 芯片组成;驱动模块采用 L298N 以及普通步进电机组成;避障部分由超声波测距模块 HC-SR04 与红外对管避障模块共同组成,完成对障碍物的测距和避障工作。小车整体模型采用 3D 打印模型作为支撑。2 机器视觉模块的设计 本文的机器视觉模块设计中重点为深度神经网络模型,还含有树莓派、摄像头。深度神经网络模型采用 YOLOv5 进行训练,使用 OpenCV 部署训练得到的模型,即可用摄像头识别出门。YOLOv5 有4 个子版本分别为 s、m、l 和 x,本文选用 YOLOv5s 来训练数据集。YOLOv5s 相较于其他的版本具有更快的速度和更小的网络,AP 精度也最低的特点。在本文以门为检测的目标,追求速度,所以本文深度神经网络采用 YOLOv5s 模型进行训练。模型参考2019 年末提出的 CutMix 数据增强法的 Mosaic数据增强对数据集合随机缩放、裁剪和排布,以及自适应图像缩放、锚框计算等操作,不仅能丰富数据集,提高数据集的复杂度,减少 GPU,还能大大提高模型的分类和训练效率能力。与以往对图片进行翻转、放大、缩小进行的数据增强不同,Mosaic 数据增强是将多张图片进行随机缩放、裁剪、排布并拼接到一张图片上,减少训练过程中出现非信息像素,以及混合后图片不自然的情况,提高了模型的训练效率和分类能力1,特别是对于随机的所发性能的小目标,自适应锚框计算和自适应图像缩放以丰富数据集,提高鲁棒性和提升推理速度2;自适应锚框计算是将通过训练得到的输出预测框和真实框进行对比,求差再反向更新,迭代网络参数以得到最佳的锚框值。算法模型的 Backbone 主要采用 Focus 和 CSP 结构。Focus 结构是以 32 个卷积核的卷积操作进行关键的切片操作。本文的 YOLOv5s 模型即是由 CSP1_94第 13 期2023 年 7 月无线互联科技智能控制No.13July,2023X 的结构应用于 Backbone 主干网络,神经网络模型获取特征的能力获得了极大的提高;而 Neck 则采用了 FPN+PAN 的结构,PAN 是借鉴了图像分割领域PANet 的创新点。一般目标检测任务的损失函数分为 Classificition Loss(分类损失函数)和 Bounding Box Regeression Loss(回归损失函数)两部分。损失计算采用 GIoULoss 进行计算,GIoULoss 的计算公式为:IOU=1U=IAp+Ag-I(1)IOULoss=1-GIoU=1-IOU-AC-UAC()(2)利用 GIoULoss可以解决单纯 IOULoss计算时无法反映两个框不相交的情况。YOLO 处理流程:(1)将图像 test 到 800600 作为神经网络的输入;(2)将图像过 YOLOv5 模型;(3)进行利用 NMS,筛选 Boxes。3 智能小车的硬件模块设计3.1 小车的主控芯片选型 本小车主控芯片选取了 STM32F103ZET6,该芯片在 STM32F103 系列里配置相对较高,能很好实现本小车的基本功能,同时丰富的接口以及外设可以用于对小车现有功能进行升级完善以及后续功能增加,而且成本较低。它拥有的资源包括:64 KB SRAM、512 KB FLASH、2 个基本定时器(TIM6、TIM7)、4 个通用定时器(TIM2-TIM5)、2 个高级定时器(TIM1、TIM8)、2 个 DMA 控制器(共十二个通道)、3 个 SPI串行外围设备接口、5 个串口、1 个 USB、1 个 CAN、3 个 12 位 Analog-to-Digital Converter 模数转换器、1 个 12 位数字/模拟转换模块、1 个 SDIO 接口、1 个 FSMC 接口以及 112 个通用 GPIO 接口。3.2 小车的驱动电路 本小车驱动采用了普通步进电机,驱动步进电机采用 L298N 模块,2 个 L298N 模块分别驱动前端和后端的电机,L298N 模块内部为双 H 桥电路,含有 4 通道逻辑驱动电路,可使用 1 个模块就非常方便的驱动2 个电机。1 个 H 桥电路主要由 4 个 MOS 管组成,MOS 管的导通状态决定了电机的转动方向。电机通过单片机输出 PWM 波,再通过 L298N 的 PWM 输出通道来进行调速。一个电机由两个引脚来操控其工作状态。单片机通过操作 IO 口的输出,即可让小车实现前进、后退、转向、停车、刹车等功能。3.3 小车电源模块 因为小车各模块所需的额定电压都不相同,所以主控电路板上需要有电压转换芯片以及电压转换电路。小车的驱动模块采用 12 V 可充电锂电池供电,12 V 可以为 L298N 提供正常工作电压,但对于其他电子模块 12 V 电压过大,针对此问题主控电路板上有 12 V 转5 V 与5 V 转3.3 V 的降压电路,分别通过LM2596S-5.0 与 AMS1117-3.3V 芯片完成降压,降压完成后即可对单片机、超声波模块等电子元器件进行正常供电。3.4 小车的避障模块3.4.1 超声波避障模块 HC-SR04 测距模块可以进行 2400 cm 范围内非接触式距离测量,测量距离误差在 3 mm 左右。此模块由 3 部分组成,分别是超声波发射器、接收器与控制电路。该模块基本工作原理是首先让超声波发射器向一个特定的方向发射超声波。在超声波发射出去同一时刻开始计时,超声波通过空气传播;当超声波在传输途中碰到障碍物就马上反射回来;当超声波接收器接收到反射回来的超声波就马上停止计时。本次测试的测试距离可以由以下公式得出:测试距离=(计时时间声速)/2。对于本模块的时序分为以下几点:首先,模块采用 TRIG 管脚来触发测距功能,最少需要给模块传输 10 s 的高电平来作为触发信号。其次,模块会自动发送 8 个 40 kHz 的方波,并开始自动检测是否有接收到反射信号。若模块检测到了反射信号,会控制 ECHO 管脚输出一个高电平,而这个高电平持续的时间就是超声波从发射到接收到反射波时间。最后,测试距离通过公式:测试距离=(高电平时间声速)/2 计算可得3。3.4.2 红外对管避障模块 本小车采用的红外避障模块为 TCRT5000 模块,采用这个模块的原因是该传感器模块对环境光线适应能力比较强。此模块具有红外线发射与红外线接收管,红外线发射管可以对外发射出红外线。当红外线传播的方向遇到阻碍物(或者称为反射面)时,红外线会被反射回来然后被红外线接收管接收,经过模块内部的比较器电路处理过后,模块上的绿色指示灯会被点亮,同时信号输出接回输出数字信号(一个低电平信号)。本模块可以通过扭动电位器旋钮来调节对障碍物的测量距离大小,可调节的有效距离为 230 cm,工作电压为 3.35 V。当发射出的红外线没有被反射面反射回来或被反射回来但反射波强度不够大时,红外接收管会一直处于关断状态。此时,模块的 OUT 管脚输出为高电平,模块上的绿色指示灯不会被点亮。当障碍物(反射面)出现在模块的检测范围内时,且红外线被反射回来且强度足够大,红外接收管饱和,此时模块的管脚输出为低电平,模块上的绿色指示灯会被点亮。05第 13 期2023 年 7 月无线互联科技智能控制No.13July,20234 智能小车的功能实现 本小车的主程序主功能分为避障和识别两部分。当程序开始运行时,单片机对所用到的模块以及外设进行初始化,初始化完毕后开始运行小车的驱动程序,驱动小车开始工作,同时小车进行对门识别与避障检测两个功能。小车的识别程序实现是通过摄像头与单片机的通信。单片机通过串口与树莓派进行通信。当识别到门的出现时,树莓派会传递一个信号给单片机,单片机接收信号后,执行一个停车函数让小车停在门前,小车可通过喇叭播放提示语音提醒门外居民出门领取物品。避障程序则是在小车运行的过程中,当小车的红外避障模块检测到有障碍物时,超声波模块可以检测出小车距离障碍物的距离,然后根据距离结合小车的大小,控制小车通过左转或右转或后退进行避障4。5 配套小程序的软件设计 在设计本小车时,笔者同时设计了一个对小车功能进行扩展的小程序。该小程序可以通过二维码与小车运输的物品进行绑定,通过绑定物品信息,用户可以在手机端查看关于物品的信息以及状态,方便对小车上的物品信息进行远程观测。主程序流程如图1 所示。6 结语 本项设计基于 STM32,结合人工智能识别、软件编程、硬件设计、模型设计,最终实现小型智能运输小车。该小车不仅可以满足一般的小型运输需求,还可以实现精准派发,自动避障等功能。该小车成本相对较低,易于组装,编程难度相对较小,可以为以后智能运输车的研发提供一定的参考。参考文献1高少伟,郭磊,陈其菠,等.基于机器视觉的智能 图 1 主程序流程垃圾分拣小车的设计与实现J.现代信息科技,2022(2):180-182.2赵梦,于红,李海清,等.融合 SKNet 与 YOLOv5 深度学习的养殖鱼群检测J.大连海洋大学学报,2022(2):312-319.3洪一民,钱庆丰,章志飞.基于 STM32 的智能小车循迹避障测距的设计J.物联网技术,2022(1):12-13,17.4卢雪红,邵亚军.基于 STM32 智能小车自主循迹避障系统设计与功能实现J.世界有色金属,2021(22):165-168.(编辑 姚 鑫)Small intelligent transport vehicle based on STM32Chen Jiaxi Liu Jianhao Zhang Haibo Fan Jierun Li Leyi Li Zhenhua Guangdong Ocean University Zhanjiang 524088 China Abstract At present there are various unmanned intelligent transportation vehicles in the market such as the intelligent serving car in the restaurant and the intelligent express car in the community which can realize the unmanned transportation function and save manpower.Based on STM32 as the main control chip this paper designs a small unmanned transport vehicle which is suitable for transportation in relatively narrow passages such as corridors.At the same time combined with artificial intelligence it can accurately identify doors and achieve accurate distribution.Key words door-to-door recognition trolley accurate distribution15