回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

行空板K10评测项目之基于二维码识别的作业收集神器 简单

头像 孙洪尧1985 2024.08.31 88 0

一、研究背景

交作业是每个学生每天到校做的第一件事情,由于学生到校时间不同,导致每次收作业时,课代表总会花费一定的时间按学号整理顺序,统计出谁谁谁没有交作业,并将相关未交名单提交给任课老师。这样的方式,费时费力。

二、研究方案

为了实现基于二维码识别的作业收集,我们首先从二维码识别的工作原理、二维码的种类、二维码标签的价格研究了项目的可能性。然后确定了基于二维码识别的作业收集系统的硬件结构、软件功能。接着研究摄像头的识别功能和二维码标签数据的读写方法、调试行空板K10和mind+软件代码。最后按照制定的软硬件功能,设计二维码数据库、完成程序编写。

三、研究过程

步骤1 (一)、研究思路 基于二维码识别的作业收集系统实现方法是在每个作业本上贴上写有学生信息的二维码标签,通过摄像头读取作业本的二维码基本信息,并将读取的信息通过语音合成实现交作业的同时通报该学生已上交某学科作业。之后等K10具有物联网功能,就利用物联网设计教师接收端,教师直接接收作业上交情况。

步骤2 (二)二维码制作 根据收集作业的需求,我们的二维码中需包括学生姓名和学科信息,同时为了降低成本,我们采用草料二维码来完成。首先,登录官网,首页主菜单切换至“批量生码”页面,点击页面左侧的“已有系统数据,批量生成标签”下方的“选择标签样式,批量制作”按钮;进入二维码编辑页面,在线表格批量制作中修改二维码的标题,对应修改为“科目”和“姓名”。字段“二维码内容”0101,其中第一个“01”表示科目,第二个“01”代表学生姓名。例如0302就代表“英语+李四”,并选择样式,完成上述操作后,点击保存样式生码。接下来,选择要打印的样式,并下载保存到电脑,二维码标签的打印有多种方式,由于我们自己手头只有A4普通打印机,所以选取了这种最简单的打印方式。打印出来,贴到学生的作业本上。

步骤3 (三)程序设计 行空板K10内置摄像头,通过上传程序识别作业本上的二维码,并搜索相应的二维码数据信息,搜索到后,匹配学生和学科信息,通过语音合成播放某生某作业已上交的内容,比如识别到“0101”数据,表明张三的语文作业已上交,即播放”张三语文作业已上交"语音内容。

四、功能实现

当学生把贴有二维码的作业本,放置到摄像头下边,摄像头开始识别,当识别到二维码的数据后,搜索预设的数据是否与之相符;如果相符的话,播放语音内容。

五、未来展望

由于拿到的K10属于测试版,功能不完整,相信在不久的将来,当具备物联网功能的K10出现后,这个收集作业神器可以功能更加完善,可以使用两块K10,一块作为发送端,一块作为接收端,发射端向物联网平台相应学科的主题发送消息;接收端接收到发送端的消息后,与UI界面所设置的学生学科信息进行匹配,当信息一致时,该生的UI界面学科颜色由红变为绿色,即表明该生已上交作业,方便老师快速查询。

六、研究结论

(当K10具备物联网功能,且有两块行空板)本系统的创新点是学生自助快速上交作业,教师无需进入班级就可以及时了解班级作业上交情况,大大提高了教师和课代表每日统计作业的效率。

材料清单

代码
/*!
 * MindPlus
 * esp32s3bit
 *
 */
#include "asr.h"
#include "unihiker_k10.h"
#include "AIRecognition.h"
// 创建对象
UNIHIKER_K10  k10;
uint8_t       screen_dir=2;
AIRecognition ai;
ASR           asr;


// 主程序开始
void setup() {
	k10.begin();
	k10.initScreen(screen_dir);
	ai.initAi();
	k10.initBgCamerImage();
	k10.setBgCamerImage(false);
	k10.creatCanvas();
	ai.switchAiMode(ai.NoMode);
	asr.setAsrSpeed(2);
	k10.setBgCamerImage(true);
	ai.switchAiMode(ai.Code);
}
void loop() {
	if (ai.isDetectContent(AIRecognition::Code)) {
		k10.canvas->canvasText((String("二维码") + String(ai.getQrCodeContent())), 0, 0, 0x0000FF, k10.canvas->eCNAndENFont24, 50, true);
		k10.canvas->updateCanvas();
		if ((ai.getQrCodeContent()=="0101")) {
			asr.speak("张三语文作业已上交");
		}
		if ((ai.getQrCodeContent()=="0203")) {
			asr.speak("王五数学作业已上交");
		}
		if ((ai.getQrCodeContent()=="0303")) {
			asr.speak("王五英语作业已上交");
		}
	}
}

评论

user-avatar