项目介绍
如何在无人讲解的情况下,快速熟悉所在位置的信息呢?比如,新到学校建筑的功能。
可以设置二维码并利用扫码识别技术,来解决这个问题。想象一下,如果在每个校园地标处都设置一个二维码,新同学只需要扫描这个二维码,就能获取到关于这个地方的信息,这样他们就能快速且自主地熟悉学校环境。
本节课我们就使用行空板和摄像头,制作一个扫码导览装置,实现摄像头扫描二维码,然后判断识别到的内容,自动显示介绍文字。
1 项目功能
本项目将制作一个扫码导览装置,通过按下行空板A键控制摄像头识别指定二维码,然后判断识别结果,并在行空板屏幕上显示对应介绍信息。
2 硬件清单
3 软件清单
Mind+编程软件(下载地址:https://www.mindplus.cc)
识别二维码,显示信息
1 连接硬件
首先,将USB摄像头接入行空板USB接口。然后,将行空板通过USB线连接到电脑上,等待行空板屏幕亮起,并显示行空板LOGO,表示连接成功。
2 准备软件
按照下面步骤,设置Mind+软件编程方式为 Python图形化编程,并完成行空板的加载和连接。
3 编写程序
接下来,我们将从二维码识别库的加载到自动识别准备好的二维码,逐步编程实现二维码的自动识别和判断。
(1)加载二维码识别库
二维码识别库并不属于Python内置库,而是属于用户自定义库功能,所以需要第三方依赖库和用户自定义库,安装方法如下(行空板V0.3.5版固件内置了该库,不用安装)。
首先,打开本课课程资料包的“程序”文件夹,找到“安装库”文件夹,,并将文件夹拖入“行空板的文件”中。
等待上传完成后,在“行空板中的文件”里就能看到“安装库”文件夹。然后,将编程模式切换为代码模式,双击打开“安装库”文件夹中的“安装库.py”文件,出现安装代码,点击运行,自动安装依赖库。
当终端区出现“安装完成”,表示依赖库安装完成。
现在,切换回刚才我们打开的图形化模式程序,加载二维码识别图形化库。
进入“扩展库”中的“用户库”检索“二维码”,点击“二维码解码”图形化库,完成加载。
(2)识别二维码
加载完二维码识别指令后,我们就可以开始编程实现摄像头扫描识别二维码了。
编程流程为:初始化摄像头 → 读取摄像头画面图片 → 识别图片中的二维码 → 判断图片中是否存在二维码 → 显示识别窗口 。完整示例代码如下:
(3)识别成功显示介绍内容
设置按下按键A触发摄像头扫描识别二维码。
建立 识别内容变量,帮助完成识别成功的判断。开始识别时,识别内容 为””(空);当 识别内容 不为空时,表示识别成功,停止识别,即识别 重复执行直到 识别内容 不为空,关闭识别窗口和摄像头。实现程序如下图:
注意:下面程序中的引号均为英文符号,初始化时,双引号内没有任何符号。
识别成功后,跳转到介绍内容页。内容介绍页由图片和文字组成,当识别到二维码信息是指定编码时,替换显示对应的文字和图片即可。项目完整示例代码如下:
注意:行空板上显示的图片需要提前放入程序文件夹中(放入方法如下图),使用时在 显示图片 和 更新图片源 指令中填写图片名称。
4 运行程序
点击运行按钮,运行程序,行空板屏幕上显示视频画面。程序运行后,拿起摄像头对准“附录”中第一个二维码。
按下A键,摄像头打开,行空板显示摄像头画面;然后用摄像头扫描附录中ID1对应的二维码,识别成功,屏幕跳转到“综合大楼介绍界面”。
5 小试牛刀
使用附录中的“ID2”二维码,实现用装置扫描食堂二维码,获取食堂的介绍信息。
提示:食堂背景图“bg(食堂).png”在“素材”文件夹。核心程序如下所示。
附录 二维码样例
附件
QFyXUwRx2024.10.23
ID1 Traceback (most recent call last): File "/root/mindplus/cache/5二维码识别导览.mp/.cache-file.py", line 72, in <module> if (ShiBieNaRong == ID1): NameError: name 'ID1' is not defined
周x来2024.05.18
真厉害
云中鹏亦海上鲲2024.05.09
真厉害