28377浏览
查看: 28377|回复: 1

[项目] 基于LoRa+蓝牙+掌控板+AppInventor方案的无线抢答系统

[复制链接]
本帖最后由 符柏铖 于 2022-5-2 22:35 编辑

基于LoRa+蓝牙+掌控板+AppInventor方案实现的一款无线抢答系统,通过手机App下达答题命令到裁判端,再由裁判端分发命令并捕捉抢答信息。

演示视频





设计思路

详见 Day7:一款无线抢答系统的设计思路

目标实现

  • 主持人App端可以通过蓝牙与掌控板通讯;

  • 主持人掌控板端可以通过LoRa发出指令;

  • 两个选手端可以通过LoRa发送消息确定抢答方;

  • 选手端自动判断选手回答正确与否;

  • 选手端自动统计选手得分;

消息定义

因为使用了LoRa与蓝牙进行通讯,所以我们需要定义消息,用来判断程序该做什么:

蓝牙接收

s(115)开始抢答 发送C

t(116)下一题 发送D

A(65) 发送正确选项 发送A

B(66) 发送正确选项 发送B

LoRa接收

1(49)选手回答正确

0(48)选手回答错误

a(97)选手1抢答成功

b(98)选手2抢答成功

主持人App端

UI设计

基于LoRa+蓝牙+掌控板+AppInventor方案的无线抢答系统图1

程序编写

连接蓝牙

基于LoRa+蓝牙+掌控板+AppInventor方案的无线抢答系统图8

其中唯一编号为:00001101-0000-1000-8000-00805F9B34FB

发送指令

基于LoRa+蓝牙+掌控板+AppInventor方案的无线抢答系统图7

App端的程序十分简单,只需要连接上蓝牙后发送我们前面定义好的消息即可。

主持人掌控板端

初始化

基于LoRa+蓝牙+掌控板+AppInventor方案的无线抢答系统图2

首先初始化蓝牙LoRa语音合成模块

接收正确选项

在主持人手机App端,主持人会先发送正确选项到掌控板上,当掌控板上接收到正确选项后,开始抢答指令才会生效:

基于LoRa+蓝牙+掌控板+AppInventor方案的无线抢答系统图6

掌控板蓝牙接收到AB后,便开始执行清空变量发送程序接收程序三个函数,接下来我们一个一个来慢慢讲。

这里还有一个判断,如果判断模式这个变量等于0的话就一直在屏幕上显示等待出题中...字样,因为我们上面初始化的时候已经将这个变量设为0,所以现在会一直显示。

函数:清空变量

啊这...这个没有什么好讲的了,就是将所有的变量设为原始值,这样做的目的是防止第二次执行程序时变量还为第一次的值,影响程序正常运行。

基于LoRa+蓝牙+掌控板+AppInventor方案的无线抢答系统图9

函数:发送程序

基于LoRa+蓝牙+掌控板+AppInventor方案的无线抢答系统图5

首先通过LoRa发送正确选项给选手端,接着进入一个循环中,重复读取蓝牙数据,

当掌控板接收到App端发出的开始抢答指令,同时也发送这个消息到选手端,然后跳出循环。

函数:接收程序

基于LoRa+蓝牙+掌控板+AppInventor方案的无线抢答系统图4

和上面发送程序的函数一个套路,进入一个循环,同时接收蓝牙及LoRa的消息,

当选手端完成答题发送1或者0后;亦或者App端发送下一题指令后,才会跳出循环。

接着判断收到的消息,如果LoRa收到选手端发来的1,代表选手回答正确;反之,如果收到的是0,代表选手回答错误,进入完成答题函数。

如果接收到蓝牙发来的t,代表无人抢答*,主持人手动进入下一题。

*因为考虑到一种情况,即发出开始抢答指令后,可能会出现无人抢答的局面,这时程序也无法继续运行下去,所以我们设定了可以由主持人通过App端手动进入下一题。

函数:完成答题

基于LoRa+蓝牙+掌控板+AppInventor方案的无线抢答系统图10

同时显示正确选项与选手的回答情况在掌控板屏幕上。

函数:下一题程序

基于LoRa+蓝牙+掌控板+AppInventor方案的无线抢答系统图11

很简单,就是发送下一题指令给选手端。

基于LoRa+蓝牙+掌控板+AppInventor方案的无线抢答系统图12

选手端

整体代码

基于LoRa+蓝牙+掌控板+AppInventor方案的无线抢答系统图3

这部分代码由岭南师范学院的吴兆明老师编写,我在其代码上加了一点小注释方便理解,这里不进行详细阐述了。

改进方向

  • [ ] 选手端抢答后反馈选手编号到主持人掌控板端;
    (本来测试的时候一点问题没有,一录视频这个功能就出bug了,无奈只能阉割掉...)
  • [ ] 统计选手得分及答题情况上物联网平台(SIoT);
  • [ ] 通过数据库随机抽题发送到选手端;
  • [x] 加入语音合成模块,播报指令和答题情况;

End


rzyzzxw  版主

发表于 2022-5-6 17:02:53

赞一下。
回复

使用道具 举报

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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail