1、wwwele169com|27智能应用随着电子工业的发展,智能技术广泛应用于各种领域,智能小车也因此快速发展起来,目前,国外已经开始研发无人驾驶汽车,并取得了明显的进展;相比于国外,我国对于智能车的研究开发起步较晚,但是随着这些年的不断努力,我们也取得了显著的成果。基于 STM32 的无线智能小车更是我们以后研究智能车过程中的基础,我们要结合我国国情,在这一方面,对智能小车进行深入研究,为它今后的发展和应用打下坚实的基础。本设计研究的无线视频监控防疫智能小车是一种最新的设计理念,其主要功能是视频监控,口罩识别,货物的运输等。它相对于其他智能小车具有无线操控的优点,可以靠WiFi来进行操控,便于
2、工作开展,同时,它具有的视频监控功能也可以做一个实时监控使用,能够极大方便防疫工作者,它还可以在突发情况下执行危险任务,可以极大地减少人力成本,并且降低了受伤的风险。总的来说,无线视频监控防疫智能小车人们的现代化生活起着不可缺失的作用16。1 系统总体设计方案本文研究设计的智能小车以 STM32C8T6 单片机为主控芯片,其具备强大的数据运算和控制能力。小车系统主要由以下几大模块组成:STM32 最小系统、K210 视觉模块、无线通讯模块、电机驱动模块和循迹模块,可以实现视频监控,口罩识别等功能。通过摄像头采集小车前方信息,把采集到的信息反馈给用户。同时,用户也可以发送指令信息给小车,控制小车
3、的移动。本文设计的基于 STM32 的智能小车能够实现的功能如下:(1)自动循迹:通过三路红外采集场景的最大值和最小值,红外传感器的值与最大值和最小值做差比和算法作为偏差 PID 的输入值,开始循迹,通过手柄与 NRFL2G4 模块输入与输出的转换来自动循迹。(2)口罩识别:通过 K210 视觉模块实现口罩的佩戴检测,K210能够捕捉每一帧画面,通过对人脸的检测与分析,从而判断客人是否戴口罩,并进行进一步处理。(3)移动控制:控制手柄控制小车的前进、后退、左转弯和右转弯等功能。(4)视频监控:采用 K210 作为视频信息的采集模块,通过小车前面的摄像头采集视频信息,传送到上位机端,从而使用户可
4、以清晰地获取视频信息。该小车系统总体设计分为两大类,硬件设计和软件设计。其设计的总体框架图如图 1 所示。1.1 自动循迹功能的实现用户到达指定位置按下开关按键无人小车将会从起点出发到达指定位置,到达指定位置将会在小车的 OLED 屏幕进行提示,此时用户可以通过 OLED 提示将所需运输的物品放置于小车中,完成后拨动手柄的操作按键,小车便可以自动返回起始位置。开始时手柄的 NRFL2G4 模块为输出模式,小车的NRFL2G4 模块为输入模式,小车收到手柄发来的开始信号时小车的 NRFL2G4 模块转为输出模式,手柄转为输入模式,小车开始扫描环境,通过三路红外采集场景的最大值和最小值,红外传感器
5、的值与最大值和最小值做差比和算法作为偏差 PID 的输入值,开始循迹,小车速度闭环以编码器的采集的值与目标速度做差作为速度闭环 PID 的输入,偏差 PID基于 STM32 的无线视频监控防疫智能小车刘鹏,王雅欣,李晟尧,罗元泽,于梦龙(天津职业技术师范大学 电子工程学院,天津,300222)基金项目:天津职业技术师范大学市级大学生创新创业训练计划项目(202110066074)。摘要:为了降低交叉感染的风险和降低防疫成本,研究设计一款智能小车。该小车系统使用C语言和Python语言共同开发。小车系统采用STM32C8T6为主控芯片,配合K210视觉模块,无线通讯模块,电源电路模块等可以实现自
6、动循迹,口罩识别,视频监控等功能。经过最终测试,小车可以实现口罩识别功能,能够准确识别是否佩戴口罩,也可以在复杂环境中实现移动控制和视频监控,达到预期设计要求。关键词:智能小车;STM32;防疫;口罩识别;无线通讯图 1 无线视频监控防疫智能小车总体设计DOI:10.16589/11-3571/tn.2023.03.02728|电子制作 2023 年 2 月智能应用的输出值与速度闭环 PID 的输出值相加作为电机的 PWM 值发给进电机,当小车达到目标位置时电机速度值为零停转,并向手柄发送信号,手柄与小车NRFL2G4模块输入输出转换,等用户物品放置完成后,小车转动再次开始循迹返回原点。1.2
7、 口罩识别功能的实现本文采用了 K210 模组来进行口罩识别。K210 拥有强大的功能,智能小车可以在公共场所,比如药店、菜市场门口、医院入口等人员密集的地方使用,提醒人们佩戴口罩。首先打开摄像头,摄像头捕捉每一帧画面,从而检测出人脸,在单个人脸区域的基础上通过分析人脸属性,进行区域剪裁,识别对比,从而判断人脸是否佩戴口罩。如果未戴口罩,则反馈信息给 STM32。经 STM32 处理后,通过语音来提示客人佩戴口罩。1.3 移动控制功能的实现手柄的设计如图 2 所示,通过手柄来实现小车的移动控制,摄像头实时获取路况,通过无线通讯模块把信息发送到手柄,手柄接收到信息后,用户通过操控手柄的方向键来实
8、现小车的基本移动功能。图 2 遥控手柄的设计 1.4 视频监控功能的实现摄像头的基本工作原理为:摄像头把采集到的物体景象生成光学图像投射到图像传感器表面上,从而转化为电信号,将此模拟电信号经过数模转换为数字图像信号,再对此信号进行数字信号处理和加工,即可在显示器上看到相应的图像了7。文献8-10采用单片机分析人脸特征点,检测其与头部姿态的关系,实现了摄像头的自动追踪,但程序较为复杂。本文小车采用 K210 作为视频信息的采集模块,简化了设计过程。当主控制器发出采集视频指令,摄像头便开始实时采集视频信息,并且通过无线通讯模块把采集到的信息传输到上位机端。从而使用户可以清晰地获取视频信息。2 硬件
9、电路设计 2.1 电源模块电源模块的作用主要是为控制系统提供稳定的工作电压。LM2596 是降压型电源管理单片集成电路的开关电压调节器,能够输出 3A 的驱动电流,而且它还具有很好的线性和负载调节特性。可以输出多种电压,比如 3.3V、5V、12V,可调节版本可以输出小于 37V 的各种电压值。本次设计采用 LM2596 作为稳压电路,该芯片可以通过电路设计实现多电压输出,与线性稳压电路相比,虽然电压转换效率相对低一些,但是产热却要低得多,防止主板被烧坏。LM2596 电路原理图如图 3 所示。C1680UFC2220UFL133012IN5824GND12V5VVIN1VOUT2GND3FB
10、/ADJ4ON/OFF5GND6LM2596 图 3 LM2596 电路图 2.2 电机驱动模块本设计采用的电机驱动模块是 TB6612,它是一款新型驱动器件,能独立双向控制 2 个直流电机。它占用体积小,发热也少,输出 PWM 也很简单。TB6612 电路原理图如图4 所示。VM1VCC2GND3AO14AO25BO17BO26GND8GND9PWMB10BIN211BIN112STBY13AIN114AIN215PWMA16U3TB6612 MODULEGNDGNDGND+12V+5VPWMAAIN2AIN1STBYBIN1BIN2PWMBMOTORB1MOTORB2MOTORA1MOTO
11、RA2 图 4 TB6612 电路原理图引脚功能描述,VM:最大可接+15V 电源,本文采用+12V。VCC 采用 5V 供电。板子上的三个 GND、电源以及 STM32 的 GND 都要接在一起(共地)。STBY:使能端口,加 3.3V 或者 5V 电压(高电平)。AIN1、AIN2、BIN1、BIN2:单片机对驱动模块的输入。AO1、AO2、BO1、BO2:驱动模块对电机的输入。PWMA、PWMB:对A 和 B 口输出 PWM,通过 PWM 来调节电机的转速。假如要驱动一个直流电机,那么 PWMA 口接单片机的 PWM 口,A01,A02 接电机的两个脚。STBY 置 1,通过 AIN1
12、AIN2,wwwele169com|29智能应用BIN1,BIN2 来控制正反转。驱动一个直流电机的真值表如表 1 所示。表1 真值表AIN1AIN2电机状态00停止01正转10反转 2.3 视觉模块小车采用了以 K210 为控制器的摄像头模组,如图 5 所示,该处理器使用 Python 语言来开发。Python 的强大之处是封装了大量的库,用户通过调用库函数就可以高效地完成大量复杂的开发工作,零基础的用户也可以快速上手。K210 集成了 24P 摄像头接口,可以直接连接标准 OV2640等 24P 摄像头模块,排线接线方式均为下接(排线金手指朝下)。由于摄像头的排针均没有电气连接,所以可以根
13、据自己需要任意摆放位置。大大增强了我们使用的灵活性。图 5 摄像头模组 2.4 无线通讯模块随着时代的进步,无线通讯技术也在快速地发展。WiFi作为一种无线局域网运用技术,组网方便、传输速度快以及易于扩展,应用十分广泛11。与传统通信方式相比,该通信方式覆盖面积更大,传输速度高,适用于远程操控和一些危险环境中使用。本设计无线模块选择的是 NRF24L01,它是一款工作2.42.5GHz 世界通用 ISM 频段的单片收发芯片,无线收发器包括:频率发生器、模式控制器、功率放大器、晶体放大器、调制器、解调器。输出功率频道选择和协议的设置可以通过 SPI 接口进行设置极低的电流消耗,通过单片机软件模拟
14、 SPI 与其通信调整输入输出模式,以及数据位。小车初始为接收模式,手柄调为发送模式。3 软件设计 3.1 人脸识别与口罩识别软件设计K210 作为识别模块,主要实现口罩识别的功能,并将识别到的信息通过串口传递给 STM32。首先通过 MaixHub训练一个口罩模型。准备至少 100 张戴口罩的图片和至少100 张不戴口罩的图片。然后对这些图片进行大小处理,建议设置为 224*224,如果太大了训练起来时间比较久。再对这些图片进行标注,最后让机器去学习,图片越多识别率越高,当然训练时间也越长。然后使用 KFlash 软件,将模型下载到 K210 的 flash 中。口罩检测流程图如图 6 所示
15、。首先摄像头读取图片,如果检测到鼻子,则说明没有佩戴口罩。如果没有检测到鼻子,则接着检测眼睛,如果没有检测到眼睛,则结束。如果检测到眼睛,则把RGB 颜色空间转为 HSV 颜色空间,进行口罩区域的检测。最后,在知道口罩区域后,然后对像素点进行判断就可以得出是否佩戴口罩。3.2 电机驱动与红外程序的设计红外采用三路模拟输出模块,通过三路红外采集场景的最大值和最小值,红外传感器的值与最大值和最小值做差比和算法作为偏差 PID 的输入值,小车速度闭环以编码器采集的值与目标速度做差作为速度闭环 PID 的输入,偏差 PID的输出值与速度闭环 PID 的输出值相加作为电机的 PWM 值给步进电机。移动控
16、制系统流程图如图 7 所示。图 7 移动控制系统流程图 4 系统测试首先把编写好的程序烧录到开发板中,通过对 Kp进行调整通过串口向主机发送数据通过 VOFA 的软件观察速度变化图像,在 Kp确定后引入 Ki在消除稳态误差后引入 Kd,使抖动减小至系统稳定来调试参数,调参过程和结果分别如图图 6 口罩检测流程图图 8 PID 控制原理30|电子制作 2023 年 2 月智能应用8,表 2,图 9 所示。表2 不同Kp、Ki、Kd所对应的状态输出口KpKiKd稳态误差超调量调节时间PWM12.60.40.5018%50msPWM24.50.51.2042%152msPWM31.20.20.50.50%80ms通过 PID 控制系统来对电机进行控制,数据结果如表3 所示,然后对小车各个功能进行终测。小车可以正常扫描场地,可以从起始位置完整地运行到目标位置,通信方面在100m 外仍然可以正常接收与发送信息,发送与接收模式的转化也没有问题。其中 ad3 为 P0.2 的检测值,ad1 为 P0.0的检测值,adelast 为上一次的 ade。表3电机偏差KpKdPWM左电机ade=(ab3-a