创作缘由
大三上学期,我们的专业开设了一门物联网的课程,用到的教材是由刘伟善编著的《Arduino创客之路(智能感知技术基础)》以及使用的软件是国产青少年编程软件Mind+。为了记录和分享我的学习成果,我将编写且分享本学期此课程的全部实验作业。
实验目的及要求
实现掌控板抢答器功能
实验原理与内容
基于TinywebDB实现云数据库出题
基于掌控板实现按键抢答和判题
基于MQTT实现多端同步通讯
实验软硬件环境
硬件:掌控板
软件:Mind+
实验过程(实验步骤、记录、数据、分析)
本次实验以小组为单位进行,我们的选择是三人为一个小组合作进行。
-
实验步骤
① 在Mind+上连接掌控板,电脑连接上个人热点,在mind+上拓展中选择主控板为掌控板,网络服务为MQTT、WI-FI和TinyWebDB。
② 随后,主要是根据需要实现的内容在Mind+上进行图形化编程。首先是连接WIFI热点、MQTT初始化参数配置,设置5个topic用于接收掌控板发送的消息指令,以及相关变量初始化。
③ 出题操作。设置当按下A键时,进行出题。题目存储在TinyWebDB上,题目随机抽取,利用MQTT实现多端同步通讯,将题目显示到三人的掌控板上。
④ 抢答操作。当触摸按键Y(代表是)被接通,把变量ans赋值为“y”,当触摸按键N(代表否)被接通,把变量ans赋值为“n“,如果变量ans与正确答案相同时,则把该答题人的分数加10。
⑤ 判断题目对错操作。将答题人所做的触摸按键操作与存储在TinyWebDB中的正确答案对比。
⑥ 判断获胜者。当某个答题者的分数达到100分,将在掌控板显示获胜者名字以及显示下一步操作,表明结束本轮答题。
⑦ 计算抢答时间。当出题后,把此时的系统时间记录下来赋给一个变量。当答题者作答后再用系统时间减去这个变量,就可以得到答题者的作答时间。 -
核心代码
已上传至github,可自行下载查看。代码资源地址:实验4_掌控板抢答器实验 -
实验效果图
出题
答题
获胜
测试、调试及结果分析
在实现基本功能后,我们的抢答器仍然有一些小缺陷,后来被我们排查后完善代码解决了这些缺陷。出现的小缺陷有:
① 按下的出题键“A”的掌控板,计时不清零,即累计上次的计时。
② 当某个出题者出题,只有该出题者的掌控板中有题目显示。其余两人的掌控板没有显示。
③ 答题者的答题数据缓存没有清除,即该答题者抢答本次题目时,上传的答案仍然是上次抢答的答案。
实验结论与体会
我们利用本次的实验原理和设备,还可以设计开发出更多实用的系统服务于人们。一些系统的实现并不容易。