单元三

第10课 遥相呼应-防丢测试

任务场景:遥相呼应-防丢测试
任务场景:遥相呼应-防丢测试

一、任务目标

用时刻差判断无线还在不在,收得到屏上打勾,大约十秒没收打叉。

二、我们要学什么

  • 学习要点:超时断联|超过一段时间没收新消息就判定离开
  • 本课过关:能完成:说出超时断联就是用全局量记住上次收到的时刻,间隔大于 10000 毫秒就判定离开;载入编程体验,指出约每 2 秒互发一次,收到就显示对勾并更新时刻,超时显示叉;再运行完整程序,指出还多了按 B1 发送 BEEP,对端收到这句会短促发声。
  • 示例对齐:编程体验对应 「3-2-1 遥相呼应-防丢测试」;完整程序对应 「3-2-2 遥相呼应-带查找防丢测试」。

三、本节要点

本课要利用无线通讯认识超时断联:用全局量记住上次收到消息的时刻,间隔大于 10000 毫秒就显示叉。重难点是分清两套——收发心跳和对勾/叉相同;完整程序还按 B1 发送 BEEP 让对端短促发声。要点对齐「超时断联|超过一段时间没收新消息就判定离开」。

1读场景两台设备一直联络,离开太久要提醒
2对要点超时断联|超过一段时间没收新消息就判定离开
3载入运行十学期兴趣课程积木/代码

四、解题思路

任务:利用无线通讯,用两套程序认识超时断联——约每 2 秒发一次,收到就更新时刻并显示对勾。超过 10000 毫秒没更新就显示叉。完整程序再加按 B1 发送 BEEP。请对照彩屏对勾、叉和对端发声。

本课主要用到:两块主板(同一频道);按键 B1;彩屏 TFT;蜂鸣器。

  1. 1利用无线通讯,观察对端离开后,叉什么时候出现。
  2. 2打开电台,用全局量记住上次收到消息的时刻。
  3. 3约每 2 秒发送一次当前毫秒数。
  4. 4收到任意消息:显示对勾,并更新上次收到的时刻。间隔大于 10000 毫秒显示叉。完整程序按 B1 再发送 BEEP。
  5. 5完成补全与从头编写,并对照现象。

流程示意

记住上次收到时刻约每2秒发一次收到就显示对勾超时显示叉完整B1发送BEEP完成补全与从头编写并对照现象

五、图形块功能讲解

下面只列出本课首次出现的 Mixly 图形块(真积木截图)。已在前面课讲过的不再重复;先认新块,再点「载入」对照拖搭。

图形块分类作用本课用法
全局变量
变量声明在函数内外都能用的变量。回调里声明 lastmsgtime 是全局量,才能改主循环用来比较的同一个时刻。两套都要;完整程序回调里还先判断是不是 BEEP。

六、知识点讲解

超时断联用全局量记住上次收到消息的时刻。当前时刻减去它,大于 10000 毫秒就判定对端离开。

先弄清:对勾表示刚收到,叉表示太久没收到;再进编程练习对照查找发声。

七、编程练习

点「载入」打开 MixVM(board=sant_design)。默认图形化积木;起步程序与积木均来自 MixGo SANT 十学期兴趣课程/学期3。若题目带外设 design,载入时会自动导入接线。在 Mixly 工具栏点「运行 / 停止」,「检查」做关键字核对。请先读本页「四、解题思路」与「五、图形块功能讲解」,再点载入。

十学期兴趣课程:3-2-1 遥相呼应-防丢测试.mix。载入后运行。

八、课堂练习

先完成两道正误判断,再做其余题目;选出后点「检查」。

  1. 判断:编程体验超过 2 秒没收到新消息,就会在彩屏显示叉。

  2. 判断:完整程序按 B1 会发送 BEEP,对端收到这句会短促发声。

  3. 本课说的「超时断联」指的是?

  4. 编程体验和完整程序的主要差别是?

  5. 运行编程体验,对端一直在、消息正常时,彩屏应看到?

九、本节小结

本课认识超时断联:超过 10000 毫秒没收新消息就显示叉。两套都用对勾表示刚收到;完整程序还按 B1 发送 BEEP 让对端发声。