647|2

42

帖子

0

资源

一粒金砂(中级)

做个树莓派“口罩检测仪”吧 [复制链接]

目前,“新冠”病毒仍在全世界范围内肆虐,而“戴口罩”已是安全出行最基本的有效“标配”措施。人群中,我们几乎可以“一眼”就识别出某人是否“戴口罩”,计算机的“人脸识别”技术是否可以呢?其实,利用手中的树莓派和摄像头等设备进行开源硬件编程,完全可以设计制作出一个“口罩检测仪”,实现对人脸拍照进行是否“戴口罩”的检测并做出对应反馈的功能。

1.实验器材及连接

所需的实验器材包括:树莓派及古德微扩展板各一块,摄像头一个,超声波传感器一个,OLED显示屏一块,有源音箱一个,红色和绿色LED灯各一支。

首先,将摄像头的数据线穿过扩展板后插入树莓派标注有“CAMERA”字样的卡槽中,注意二者的“金手指”一面要对应并锁好卡扣;接着,将扩展板正确安装于树莓派上,注意四周均匀小心用力;然后,将超声波传感器插入20、21并排的四个插孔中,注意“双孔”的方向要朝外,引脚的标注要正确对应;OLED显示屏按照四个引脚的标注,插入扩展板的I2C插孔;红色和绿色LED灯分别插入5号和6号插孔,注意“长腿为正极、短腿为负极”;最后,将音箱信号线插入树莓派的音频输出圆孔,再通过数据线给树莓派通电,启动操作系统(如图1)。

640?wx_fmt=jpeg

2.古德微机器人的“积木”式编程

通过浏览器访问古德微机器人网站(http://www.gdwrobot.cn/),登录账号后点击“设备控制”进入“积木”编程区开始编写程序:

(1)编写两个“LED灯闪烁”函数

实验器材中的绿色和红色LED是用来进行光信号报警的:当检测到人脸是“戴口罩”状态时,绿色LED灯闪烁;反之,则控制红色LED灯闪烁。

从左侧“函数”中新建一个名为“绿灯闪烁”的函数,先建立一个“重复‘3’次…执行…”循环结构;接着,从“智能硬件”-“常用”中选择“控制‘6’号小灯‘亮’”模块语句,因为绿色LED是连接在6号GPIO中;然后是一条“等待0.1秒”模块语句,控制6号绿色LED灯持续亮0.1秒;最后再控制让它熄灭,并且持续0.05秒;实现绿色LED灯快速闪烁三次的效果。

将“绿灯闪烁”函数复制并粘贴,为新生成的函数重命名为“红灯闪烁”,将其中的两处“6号小灯”均修改为“5号小灯”,因为红色LED灯是连接在5号GPIO中(如图2)。

640?wx_fmt=png

(2)对OLED显示屏进行“初始化”

从“智能硬件”-“显示屏”中选择“初始化OLED显示屏”模块语句,保持其默认的设备型号、使用接口、宽度及高度值不变;接着,建立一个变量,命名为“图片对象”,并为其赋值为“多媒体”-“图片”中的“新建图片模式”,同样也是保持默认的“RGB模式”、宽度、高度值等不变(如图3)。

640?wx_fmt=png

(3)使用循环结构完成人脸是否“戴口罩”的检测

建立“重复当真…执行…”的循环结构,其中的第一条模块语句是建立变量“超声波测距”,并且为其赋值为“智能硬件”-“常用”中的“超声波测距”;接着是一个“如果…执行…”选择分支结构,对变量“超声波测距”的值是否小于30(单位为cm)进行判断,条件成立的话则建新一个名为“拍照”的变量,其值为“智能硬件”-“摄像头”中的“拍一张照片”;然后建立一个“如果…执行…否则…”二分支选择结构,判断条件是“人工智能”-“人脸识别”中的“检测图片‘/home/pi/imageTemp/facemask.jpg’中的人是否戴口罩”,注意需要将图片的文件名设置为“/home/pi/imageTemp/image.jpg”,因为上面的“拍一张照片”模块语句生成的图片文件是同目录中的“image.jpg”。

条件成立的话,说明抓拍到的人脸是“正常”的“戴口罩”状态,则先在屏幕LOG调试区显示输出“已经戴口罩!”,然后调用执行“绿灯闪烁”函数,接着控制音箱播放语音提示“已经戴口罩!”,最后是为变量“图片对象”添加“已经戴口罩!”文字信息,文字大小和位置的XY坐标均保持默认即可;

条件不成立,说明抓拍到的人脸是“不正常”的非“戴口罩”状态,则先在屏幕LOG调试区显示输出“马上戴口罩!”,然后调用执行“红灯闪烁”函数,接着控制音箱播放语音提示“马上戴口罩!”,最后是为变量“图片对象”添加“马上戴口罩!”文字信息。

在选择分支结构执行完毕之后,添加一条“把图片‘图片对象’显示到OLED显示屏”模块语句,作用是在OLED显示屏显示输出“已经戴口罩!”或“马上戴口罩!”;然后是“关闭摄像头”,还有循环体最后要添加“等待0.5秒”模块语句,防止程序占用过多系统资源而造成“死机”(如图4)。

640?wx_fmt=png

3.测试树莓派“口罩检测仪”

程序编写完毕后点击“保存”按钮,将程序保存为“口罩检测仪”;接着点击“连接设备”按钮,出现五个对勾说明与树莓派已经成功连接;然后点击“运行”按钮,开始进行测试:

当有人进入超声波的有效检测区时,就会“自动”触发摄像头的拍照。如果测试者没戴口罩,树莓派的红色LED就会闪烁,程序LOG区和OLED显示屏均会显示输出“马上戴口罩!”,而且音箱也会播放“马上戴口罩!”语音提醒;如果测试戴了口罩,树莓派的动作就是:绿色LED闪烁,程序LOG区和OLED显示屏均会显示输出“已经戴口罩!”,音箱播放“已经戴口罩!”语音提醒(如图5)。

640?wx_fmt=png

山东省招远第一中学新校微机组  牟晓东


回复

9738

帖子

2

资源

管理员

这个创意和想法真棒!


回复

2万

帖子

71

资源

管理员

好奇口罩检测仪是啥,我以为是看看口罩上菌群超标不超标,哈哈

个人签名

不管是哪年,都要加油!继续为中国电子行业做出小小的贡献吧! 扣扣 1206973913


回复
您需要登录后才可以回帖 登录 | 注册

最新文章 更多>>
    关闭
    站长推荐上一条 1/9 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2021 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表