APP下载

基于OpenMV与STM32防疫消杀机器人设计

2022-04-22刘腾飞吕偿潘光焕王廷轩

河南科技 2022年6期

刘腾飞 吕偿 潘光焕 王廷轩

摘 要:自新冠疫情暴发以来,疫情对生命、财产和社会带来了极大的挑战。病毒极强的感染能力使公共场所的防疫消杀工作面临着极大的挑战。同时,对公共场所进行消杀工作的醫务人员而言,其面临着极大的压力。为了实现全自动智能防疫消杀,且要满足适应性强、反应迅速、结构紧密等技术要求,本研究基于OpenMV与STM32设计出一款智能视觉防疫消杀机器人,该机器人采用STM32F427的OpenMV模块作为视觉识别与处理模块,实现对信息的识别、读取与传输。STM32F407芯片作为防疫消杀机器人的控制核心,与OpenMV传输信息进行结合,实现对四个大功率电机的精准预定控制,通过继电器的供电来实现对机械臂与液压泵的控制,且机械臂旋转喷洒操作可以通过蓝牙模块实现远程控制。经过试验测试,该研究设计的防疫消杀机器人具有稳定可靠、调节方便、低功耗等特点,根据预定图像进行视觉循迹与遥控控制,并且能够实现机械臂旋转大规模喷洒。可实现对相距0.7 m的10 cm×10 cm的图形进行识别判断,并可进行准确循迹,完全满足在视觉循迹的条件下进行防疫消杀工作。

关键词:STM32;OpenMV;防疫消杀

中图分类号:TP391.41;TP23   文献标志码:A 文章编号:1003-5168(2022)6-0024-04

DOI:10.19968/j.cnki.hnkj.1003-5168.2022.06.005

Based on OpenMV and STM32 Epidemic Prevention and Elimination Car Design

LIU Tengfei    LYU Chang    PAN Guanghuan    WANG Tingxuan

(School of Mechanical and Electrical Engineering,Guangdong Baiyun University,Guangzhou 510450,China)

Abstract:Since the outbreak of COVID-19,lives,property and society have been greatly challenged.The strong infection capacity of the virus makes the epidemic prevention and elimination of public places a great challenge.At the same time,for medical personnel who kill in public places,they are facing great pressure.In order to realize automatic intelligent epidemic prevention and elimination,and make it meet the technical requirements of strong adaptation,rapid response,compact structure.In this study,an intelligent visual epidemic prevention and elimination robot based on OpenMV and STM32 is designed.The robot uses OpenMV of STM32F427 as a visual recognition and processing module to recognize,read and transmit information.As the control core of the epidemic prevention and elimination car,STM32F407 chip combined with OpenMV transmission information to achieve precise predetermined control of four high-power motors.Moreover,mechanical arm rotation spraying control can be realized through relay power supply,and Bluetooth control can be realized through Bluetooth module.Experimental tests show that the vehicle is stable,reliable,easy to adjust,low power consumption and other characteristics,and can achieve visual tracking and remote control according to the predetermined image and achieve large-scale spraying with mechanical arm rotation.It can recognize and judge the graphics of 10 cm×10 cm at a distance of 0.7 m and accurately track them,which can fully meet the requirements of epidemic prevention and elimination under the condition of visual tracking.

Keywords:STM32;OpenMV;epidemic prevention and elimination

0 引言

新冠疫情是全球突發性公共卫生事件,具有威胁范围广、感染性强的特点。为了能够更好地进行防疫消杀,世界各国都在积极进行防疫消杀机器人的研究。在国外,印度学者设计出自动切换紫外线消毒的机器人,用于检测人体与物体,在检测到人体时就自动停止,检测到物体时自动进行防疫消杀。马来西亚学者设计出喷雾消毒机器人,以Arduino作为其控制核心,并且结合相机、超声波传感器、电机、蓝牙等装置进行防疫消杀。在国内,北京达闼科技有限公司研发一款消毒机器人,可以实现对室内环境的建图,并且在运行时可以自主避障[1]。北京中部战区疾病预防控制中心成功研制出雾炮型履带式防疫机器人,可以实现喷射超低容量的雾状药剂,对白蚁群进行消杀。综上所述,可以发现世界各国虽然对防疫机器人有着多样化的设计,但无论是国内还是国外的研究,由于消杀环境的复杂性,导致防疫消杀机器人都存在着一定的功能缺陷,很难满足防疫消杀的需求。

本研究针对公共环境消杀的需求,在对现有消杀方法研究后,设计出基于OpenMV与STM32防疫的消杀机器人,其采用STM32F407作为核心处理器,配合OpenMV可以实现远距离识别AprilTagc,并跟随AprilTagc行驶。为了能够实现在多种环境中完成工作,又为其添加了蓝牙模块,可以实现蓝牙控制,并配合机械臂、液压水泵喷洒杆,实现视觉跟随防疫消杀与蓝牙控制防疫消杀。

1 总体设计方案

本研究设计的防疫消杀机器人由STM32F407ZGT6(控制核心)、机械臂、电机、电机驱动模块、蓝牙模块、OpenMV4、电池模组、喷洒杆、药箱、底盘、继电器组成。可以通过手机蓝牙实现对防疫消杀机器人的控制。防疫消杀机器人的整体设计如图1所示。

2 关键技术

2.1 机械设计

防疫消杀机器人的机械结构由3个部分组成,分别是载重部分、驱动部分以及机械臂。在底盘载重设计方面,为了增强其承载能力,用四根工字形铝型材采用打孔穿钉方式进行组装,采用这种方式可以增加其承重能力,最大可以承受45 kg的重物。在驱动设计方面,采用四轮差速驱动式轮式机构,每个轮子都有独立的执行机构,可以独立进行驱动。当机器人前进或后退时,四个轮子采取同样的转速与方向进行驱动;当机器人进行转弯时,通过改变相应车轮的转速及转向来实现。这样可以降低机器人转弯的复杂性,使其变得灵活精准,可以在更多路径上行驶[2]。在机械臂设计方面,由于机械臂需要控制喷杆,从而实现多角度喷洒。为了能够更好地实现喷洒,核心控制器(STM32F407)控制继电器,采用对水泵间接供电的方式,实现控制喷洒。水泵的一端通过水管与喷洒杆件连接,另一端则接至水箱中,从而实现供水。在机械臂控制方面,采用LDX-218舵机对其进行控制。在多次测试试验中发现,若使用两个以上的舵机对机械臂进行控制,水管容易发生缠绕现象。

2.2 驱动部分

本研究采用直流减速电机作为防疫消杀机器人的动力装置,直流减速电机的驱动选用H桥大功率驱动模块BTS796模块。在机器人行驶过程中,为了减少车轮与地面的摩擦,采用PWM脉冲进行调速,通过改变输出高低电平的频率,从而实现对电机转速的控制。由于机器人采取四驱控制的方式,所以需要定义五个子函数,对机器人的前进、后退、左转、右转、停止进行控制。其中,定义左前轮控制信号为PA1、PC2,右前轮控制信号为PA2、PC3,左后轮控制信号为PA3、PC4,右后轮控制信号为PA4、PC5,通过改变四个电机端口I/O状态,实现对电机运动状态进行改变,从而实现电机的相对运动[3]。

2.3 OpenMV4

OpenMV4作为防疫消杀机器人的视觉模块,其核心处理器是STM32H743VI ARM Cortex M7处理器,感光元件为OV7725的 OPENMV4 H7摄像头,使用Python语言进行编程 [4]。在OpenMV IDE平台上进行编写,为了能够实现较远距离的精准识别,采用AprilTagc中的TAG16H5,由于OpenMV能识别AprilTagc标签,可以根据其3D定位功能,实现空间中的精准定位。当OpenMV识别到AprilTagc标签后,程序会先调用img.find_apriltags()函数,获取相应的6个坐标轴信息,然后进行输出。为了能够更加贴近现实环境,实现精准识别,即调用X、Y坐标轴值,然后将其转化为相应的角度与距离数据[5]。随后将获取到的信息反馈传输到STM32单片机上,STM32单片机发出相应指令,驱动电机对转速和转向进行调节,程序流程见图2。

2.4 机械臂控制

在机械臂控制程序方面,为了能够更好地实现消杀效果,所以仅选用一个底层舵机进行驱动。为了使舵机能够实现准确地控制,采用TIM4定时器的PWM波控制[6]。PWM信号由接收通道进入信号解调电路进行解调,从而获得一个直流偏置电压。通过对该直流偏置电压与电位器的电压进行比较,实现电压差输出的获取。随后将信号从PD12口输出,送入到电机驱动电路中,实现对电机相应的正反转。当电机转动时,通过级联减速齿轮带动电位器进行旋转运动,直到电压差为0 V,电机停止转动[7]。为了能够实现循环旋转,定义一个PWM波周期为2 500 ms,分为五个阶段进行转动控制,每个阶段转动45°,每个阶段转动后延迟500 ms,如此执行5次,一个周期结束。如此往复循环执行,直至机器人停止运行 [8]。

2.5 蓝牙控制

选择BT08蓝牙模块与手机端进行通信,从而实现蓝牙控制。工作时有命令响应与自动连接两种模式。在命令响应模式下,用户可以向模块发送相应的AT命令,包括模块的控制参数以及控制自动连接模式下的有主(Master)、从(Slave)和回环(Loopback)三种工作模式[9]。本研究设计的防疫消杀机器人工作时,先进行系统初始化,再初始化蓝牙与串口,串口检测蓝牙端是否发出指令,若未检测到指令,则重新检测。若检测到指令,则将向相应的电机驱动器发送指令,进行驱动。控制流程见图3。

2.6 通信程序设定

整个机器人中最重要的程序部分就是STM32F407与OpenMV之间的串口通信,这直接决定机器人能否实现视觉跟随消杀的功能,对此本系统采用USART进行串口通信。首先对串口与GPIO的时钟进行使能,其次对引脚复用器映射进行相应设置,接着使用GPIO_InitStructure()函数,将GPIO端口设置为推挽复用输出,使其具有输出功能。为了满足串口的通信功能,调用USART_InitStructure()函数对串口的波特率、字长、收发模式等进行设置。再次开启中断初始化NVIC(为了能够更好地实现功能,对串口接收信息时采用触发中断事件,配置相应串口的中断优先级),使能中断,随后对串口进行使能。最后编写相应的中断处理函数,并命名为USART_IRQHandler[10]。

3 实物测试

试验设置两个主要任务:一是机器人(见图4)使用OpenMV识别AprilTag,进行视觉跟随;二是机器人通过蓝牙控制实现相应的运动。布置试验场地并进行清空,保证光源情况良好。第一项测试,先启动机器人,在距离机器人0.7 m处,设置一块10 cm×10 cm AprilTagc标签,并且为了保证试验的成功率,保证AprilTagc标签与机器人OpenMV的高度相等。在直道与弯道内,机器人随着 AprilTagc标签位置的不断变换而移动,OpenMV 不断更新数据,同时调整对应的车速与差速,并且机械臂在开启后能够正常喷洒,得到的结果符合试验预期,见图5。第二项测试,在同等条件下,尽可能地使试验場地空旷,减少电子仪器的出现。先开启机器人,手机APP与蓝牙进行连接,手机APP操控相应的动作按钮,机器人可以完美地实现前进、后退、左转、右转的动作,且机械臂运转正常,试验结果达到预期目标。

4 结语

通过STM32F407与OpenMV等多个模块的结合,实现对防疫消杀机器人的设计,可实现在光源条件良好,且场地开阔的条件下,实现视觉跟随消杀、蓝牙遥控消杀。经过试验测试,机器人消杀效果良好可靠。但在本设计中尚存在一定的不足之处,即在光源条件较差或是场地较为杂乱时,视觉跟随消杀将会受到一定影响,机器人的视觉跟随能力下降,消杀效果较差。在蓝牙遥控下,机器人虽然有着不错的消杀效果,但由于蓝牙控制的操作距离较短,不利于远距离防疫消杀,且蓝牙操控易受到环境的干扰。接下来,将会对基于OpenMV与STM32防疫消杀机器人的缺陷进行改进与完善,以满足多场景下的防疫消杀工作。

参考文献:

[1] 袁鹏.防疫消毒机器人的设计与开发研究[D].济南:山东大学,2021.

[2] 曹建平,丁坦,杨辉.基于STM32的WIFI控制金属探测小车系统设计[J].实验室研究与探索,2020(9):79-83.

[3] 李萌,于洋.基于STM32F407的巡防智能小车设计[J].科技风,2019(20):8-9.

[4] 张文青,龙奕帆.基于OpenMV视觉模块的智能小车巡线系统设计[J].集成电路应用,2021(10):232-233.

[5] 梅妍玭,傅荣.基于OpenMV的3D定位识别系统[J].新技术新工艺,2018(2):50-52.

[6] 欧雪霞.基于STM32的智能扫地小车的设计与实现[J].电子制作,2021(21):27-30.

[7] 何苗,吴永刚,陈金花.基于STM32的数字舵机控制系统[J].水雷战与舰船防护,2015(1):52-54.

[8] 宁春雷,刘凡齐,孙在尚.基于STM32的多自由度机械臂设计[J].电子世界,2017(9):118.

[9] 崔承毅,王开宇,高庆华,等.基于智能小车的模块化教学系统设计[J].实验技术与管理,2018(8):192-195.

[10] 张洋,刘军,严汉宇.原子教你玩STM32(库函数版)[M].北京:北京航空航天大学出版社,2013.