疫情防控机器人
2022-07-23西北民族大学电气工程学院尹锦山尤振勇兰昌漩
西北民族大学电气工程学院 尹锦山 尤振勇 冉 梯 潘 阳 兰昌漩
本文设计的疫情防控机器人由两部分组成。第一部分为疫情防控装置,其由芯片和相应模块组装而成,具有基本疫情防控措施。装置测量人体温度并进行分析,装置主控芯片通过对温度分析的结果控制警报装置、酒精喷洒装置、门禁的工作,各个模块功能的配合实现疫情防控的目的。第二部分为信息采集小程序,使用微信提供的视图层描述语言WXML和WXSS以及基于JavaScript的逻辑层框架制作的采集个人信息的微信小程序。本装置可以减少人力资源的消耗,降低人与人之间接触导致疫情传播的风险,也可以在疫情发生后排查相关人员。通过此次疫情敲响的警钟,常态防疫成为我们日常生活的一部分,此装置可以有更大的用武之地。
1 总体方案设计
1.1 疫情防控机器人设计
(1)疫情防控装置设计
在疫情防控装置的控制上,使用处理速度更强、硬件资源更丰富的Cortex-M4内核的STM32系列芯片。Cortex-M4内核的芯片使用ARM架构,该架构设计合理,其让微控制器的功能非常强大,同时还可以满足功耗低的要求;在供电上STM32微控制器只需要5V电源便可以进行驱动,使用非常方便;同时还需用到其它模块,比如:舵机模块、红外测温模块、语言播报模块等,模块的相互配合实现预期的功能。另外,还需要应用电路、机械知识,设计疫情防控机器人的电路以及内部的机械结构,使疫情防控机器人可以在不同的环境都可以安装使用。
(2)信息采集小程序设计
通过微信小程序与ID卡、人脸识别等采集人员信息方式进行比较后,决定采用微信小程序作为信息采集的方式。因为微信小程序在我国几乎所有区域已普及,便于疫情防控机器人可以大面积推广。人们使用微信扫描小程序二维码,填写姓名以及联系方式便可完成信息采集,简单易操作。
1.2 疫情防控机器人制作难点
(1)疫情防控装置难点
疫情防空装置难点在于供电电路的设计,人们使用时装置供电工作,非使用时装置进入睡眠模式。由于本项目中使用了多个模块,对于不同模块使用了不同的通讯协议,所以在电路设计上,必须根据不同的IO口所具有的硬件资源将不同的模块与合适的IO口连接到一起,以达到硬件资源利用最大化。
(2)信息采集小程序设计难点
信息采集小程序难点在于将采集到的人员信息与疫情防空装置采集到的温度信息相匹配,以便达到记录每个人体温的效果。
1.3 疫情防控机器人的设计目标
疫情防控装置底层代码的设计,并不断修复底层代码漏洞,使其完美驱动疫情防控机器人。此外,搭建好疫情防控装置的各个模块、电路和内部机械结构。信息采集小程序在不同年龄段的人中都可以简易操作,并且稳定运行。最终设计出代码逻辑自洽、外表美观,具有基本疫情防控措施的疫情防控装置和简洁易操作的信息采集小程序。
1.4 疫情防控机器人预期成果
疫情发生后,疫情防控机器人代替人力对疫情进行监测,可以减少人力资源的压力。人们进出日常生活、工作场所时,对人们体温进行检测并对手部进行酒精消毒,达到降低人与人之间的接触而导致传染的可能性。另外,收集进出各个场所的人员信息与体温数据,可以找到感染者接触到的人进行排查避免二次传染,也可以通过地区的整体信息分析出地区疫情趋势从而采取相应措施。
2 疫情防控装置硬件设计与实现
2.1 各个模块功能的实现
为了项目功能的实现,需要使主要装置达到相应的功能,主要装置有温度检测装置、酒精喷洒装置、门禁装置、语音播报装置等。防控装置所需模块如图1所示。
图1 防控装置所需模块
(1)温度检测装置
采用温度传感器GY-906,采集到人体温度数据后,将其以电压形式传输到芯片,通过AD转换为相应数字信息得到人体温度信息。人体温度信息经过主控芯片分析作为其他模块运行的标志。
(2)酒精喷砂装置
通过红外传感器控制继电器,再通过继电器控制水泵,当人们将手伸入工作区域,红外传感器向继电器输出电压到继电器,当继电器的输入电压达到吸合电压就会吸合,则系统会为水泵供电使其工作。水泵工作抽取酒精通过花洒喷洒到手部,达到手部消毒。
(3)门禁装置
主控芯片完成温度检测且温度正常,再经过酒精消毒后,就会控制舵机运行,打开门禁达到控制人员进出的功能。
(4)语音播报装置
本设计使用SYN6288语音合成模块。在人们使用装置时,主控芯片通过进入人员的身体信息,让语音模块能够发出一定的声音。在温度检测正常时,语音模块发出“温度正常”的语句,反之发出“温度异常”的语句。可以根据场景和需求加入自己所需的语句。
2.2 系统电路设计
由于不同模块的工作电压不同,舵机驱动需要的最好电压为11V左右,所以使用12V的电池作为总的电源输入,并且直接对舵机驱动供电。对STM32F4主控芯片需要5V的电压,所以需要在电路中加入可调降压模块,整个系统需要使用到多个可调降压模块使锂电池电源提供调节电压,以满足系统需要。另外,保证能够为MCU及所用到的模块提供其所需电压使它们正常工作,这是完成疫情防空装置工作的前提。
2.3 MCU硬件资源的分配
根据MCU不同I/O口所具有的硬件资源将不同模块接在合适的I/O口上,以实现硬件资源的合理使用。此外,大多数模块采用到串口通信,为了满足模块能够实现其功能并能够进行相互间的通信从而满足项目需要,需要将MCU的串口资源进行分配,使其不存在冲突顺利完成项目所需要的功能。
2.4 整体硬件的构造
本项目的整体构造采用椴木层板进行搭建,首先在稿纸上设计出来利于项目完成的门禁外箱的整体构造,然后使用AutoCAD软件根据设计纸画出来对木板需要切割的形状及长度,然后再使用激光雕刻机进行切割,最后通过钉子热熔胶等进行搭建,从而得到符合要求的自制门禁。
3 疫情防控机器人软件设计
3.1 防控装置软件设计
图2是程序执行流程图。本项目中使用的编程语言是C语言,使用的编译器为MDK。MDK编译器支持使用C语言对STM32 系列芯片的驱动,该编译器功能非常强大,支持在线仿真功能,可以更加直观的看到程序设计时出现的错误并及时改正,对于程序的调试非常有帮助的。程序编写时使用模块化编程,把不同模块的初始化及驱动过程封装在不同的.c文件中,在main.c文件中只实现调用的过程,不同文件中函数的调用通过对相应.h文件的文件调用来实现。模块化编程最大的好处就是程序的可阅读力比较强,编程思路的体现的引更加清晰,对于程序的分模块调试以及程序修改也非常方便。通过代码编写控制各个模块相互协调以实现项目所需功能。此外,本项目中使用到IO口复用、IIC通讯、SPI通讯、串口通讯、定时器、定时器中断等,这些功能的正确使用也是项目功能完成的前提,其中特别注意串口资源的分配与使用。因为大多数模块都会用到串口通信,解决好这一问题是模块功能顺利实现的基础。
图2 程序执行流程图
疫情防控机器人在开始程序启动后,完成各个模块初始化,当人进出场所使用该装置时,首先人将手部伸入温度检测区域内,检测温度,正常则酒精喷洒装置对手部进行消毒,人们可通过扫描二维码获得个人信息,最后门禁打开人员进入。如果人体温度异常则装置发出警报,通知工作人员进行处理。
3.2 信息采集小程序软件设计
微信小程序开发框架可以让开发者们能够通过简便、高效的方式开发具有原生App体验的服务。一个微信小程序结构主要由主体文件和页面文件两部分组成,主体文件部分主要由app.json、app.wxss和app.js三个文件构成。app.json文件用来对微信小程序进行全局配置,它决定了页面文件的路径、设置网络超时时间、窗口表现,http请求跳转、设置多个tab等,注意app.json是不可以添加注释的。app.wxss文件是小程序的全局样式文件,作用于每一个页面,用于描述WXML的组件样式。app.js文件使用系统的方法处理全局文件,在整个小程序中,每一个框架页面和文件都可以使用this获取app.js文件中规定的数据和函数,每一个小程序都会有一个app.js文件,有且只有一个,位于项目的根目录中。
4 项目研究中遇到的部分问题及应对思路与措施
4.1 酒精喷洒装置的水泵工作问题
酒精喷洒装置如何在人们伸手进入装置工作区域的时候水泵工作,水泵运作将酒精抽出喷洒出来,非工作时水泵停止工作,进入休眠状态。针对其供电做出设计,在伸手的时候供电,其他情况下不供电。针对这一思路采用继电器来解决这一问题,而如何达到继电器运作的条件,便由红外传感器控制。在红外传感器检测到人们把手伸入装置便让继电器工作来给水泵供电,把酒精喷洒出来。
4.2 各个模块的协同合作问题
本项目使用多个模块,模块的工作协议不同,如何让各个模块合理运作达到预期的工作效果。
系统使用模块为Cortex-M4内核的STM32系列芯片,各个模块被主控芯片集中控制,通过程序控制相应的硬件资源输出各个模块可以识别的信号。通过以上信息,可以通过芯片内部时钟来控制各个模块的运行时机,以达到各个模块的配合实现预期功能。
4.3 信息采集小程序与人员温度匹配问题
信息采集小程序为微信小程序,而温度传感器采集到的温度存储到主控芯片中,如何将两个不同系统的信息匹配起来?虽然两个系统无法连接,但是可以通过标号的办法分别将信息采集小程序和主控芯片中的数据进行标号,信息采集小程序中的一号数据对应主控信号中的一号数据。
总结与展望:本项目研究的是“疫情防控机器人”,该装置具有基本的疫情防控功能,可以进行温度检测、酒精消毒、人流量的控制等;也可以采集到进出各个场所的人员的个人信息,可以通过与温度信息匹配,在疫情感染者出现后避免二次传染。最重要的是采用的芯片模块,具备模型搭建材料价格上相对便宜且装置易安装操作,适合普遍推广,达到疫情防控常态化,全面化。
在实现项目的基本功能后,排除如环境、气候、温度等干扰因素后,根据实验情况对所做项目的安全性等进行评估,后期继续进行思考研究,以增加项目的更多功能去实现项目扩展,从而去更好的提升项目的实用性。