二、刷卡开门
第7课 刷卡开门

一、任务目标
理解刷卡开门,能说出体验与完整代码在「谁可以开」上的差别。
二、我们要学什么
- 学习要点:开门可以先「有卡就开」,再升级成「名单里才开」
- 本课过关:能指出体验无白名单;完整代码集合含 991377439。
- 示例对齐:体验题对应 「2-3-1 刷卡开门」;完整代码对应 「2-3-2 安全刷卡开门」。
三、本节要点
官方 mix 使用 mixgo_sant 彩屏门图。奋斗板仿真没有这块屏时,仍应听到蜂鸣、看到读卡逻辑。不要改官方 mix 去删彩屏。
四、解题思路
- 输入:刷卡模块的卡号;完整代码对照名单集合。
- 输出:蜂鸣;官方示例还有关门、开门中、开门图。
- 生活对照:小区门:先感应,后查名单。
- 验证现象:有卡应蜂鸣;完整代码名单外的卡不应走开门分支。
本课主要用到:刷卡模块、蜂鸣器;官方示例另含彩屏开门动画(仿真可能无图)。
- 1明确任务「刷卡开门」:读到卡先提示,再决定是否开门。
- 2读到卡号则短促蜂鸣,表示已感应到卡。
- 3体验:感应后随即播放开门动画。
- 4完整代码:只有卡号在名单集合里才开门;无卡时回到关门图。
- 5载入后用名单内、外的卡对照是否开门。
流程示意(可对照左侧文字)
五、图形块功能讲解
下面只列出本课首次出现的 Mixly 图形块(真积木截图)。已在前面课讲过的不再重复;先认新块,再点「载入」对照拖搭。
| 图形块 | 分类 | 作用 | 本课用法 |
|---|---|---|---|
![]() | 集合 | 创建不重复元素集合。 | 完整代码:名单集合 = {991377439}。 |
![]() | 逻辑 | 判断某值是否在列表/字符串中。 | 完整代码:卡号 in 名单集合 才开门。 |
六、知识点讲解
刷卡开门。体验先演示「有卡就开」,完整代码加上白名单。白名单:集合里的卡号才合法。示例写了 991377439。彩屏:官方用 SANT 显示门图。MINI 仿真看不到图时,仍以蜂鸣和 if 为准。不要改 mix:不要为了仿真删掉 onboard_tft / DOOR_*。
对照与过关:能说出体验与完整代码在「谁可以开」上的差别。先对蜂鸣,再看完整代码的 in 名单集合。
七、编程练习
点「载入」打开 MixVM(board=mini_design)。默认图形化积木;起步程序与积木均来自 MixGo MINI 兴趣课程/学期3。在 Mixly 工具栏点「运行 / 停止」,「检查」做关键字核对。请先读本页「四、解题思路」与「五、图形块功能讲解」,再点载入。
兴趣课程:2-3-1 刷卡开门.mix。载入后运行。
正在载入编程环境
正在载入 MixGo MINI 仿真编程环境…
八、课堂练习
先完成两道判断题,再完成选择题;全部选定后点「检查」。
判断:体验题已经用白名单,名单外的卡也会蜂鸣但不开门。
判断:完整代码只有卡号属于集合 名单集合 才走开门分支。
奋斗板仿真看不到开门图时,应优先对照?
完整代码白名单示例里的卡号是?
九、本节小结
本课主题是刷卡开门:开门可以先有卡就开,再升级成名单里才开。体验程序无白名单;完整程序编号在名单里才给开门反馈。

