三、智慧停车
第9课 单入口空余车位显示

一、任务目标
同一入口:卡不在集合则入库并发布,已在则出库并发布;点阵显示 总车位-len(s1)。完整代码刷卡时先滚动 NTP 时间。
二、我们要学什么
- 学习要点:单入口用「在不在集合里」切换入/出库
- 本课过关:能指出空余 = 99 - 集合大小;完整代码另滚 strtime。
- 示例对齐:体验题对应 「3-1-1 单入口空余车位显示」;完整代码对应 「3-1-2 单入口空余车位显示含时间」。
三、本节要点
体验 3-1-1 不显示时钟。滚动对时是 3-1-2。
1读场景明确真实任务
2对要点集合记账,屏上看空余
3载入运行本课积木/代码
四、解题思路
- 输入:RFID 卡号。
- 输出:MQTT 入库/出库车辆;点阵空余数。
- 生活对照:同一道闸,进一次记入、再刷一次记出。
- 验证现象:刷入空余减一,再刷同一张空余加一。
本课主要用到:RFID、集合、点阵、MixIO;完整代码另用 NTP/RTC。
- 1总车位=99,s1=set()。
- 2不在则 add 并发入库。
- 3已在则 discard 并发出库。
- 4shows(总车位-len(s1))。
流程示意(可对照左侧文字)
五、图形块功能讲解
下面只列出本课首次出现的 Mixly 图形块(真积木截图)。已在前面课讲过的不再重复;先认新块,再点「载入」对照拖搭。
| 图形块 | 分类 | 作用 | 本课用法 |
|---|---|---|---|
![]() | 集合 | 创建不重复元素集合。 | s1 记场内车辆。 |
![]() | 逻辑 | 判断某值是否在列表/字符串中。 | 载入后可在工具箱对照本课用法。 |
![]() | 集合 | 向集合添加或丢弃元素。 | 载入后可在工具箱对照本课用法。 |
![]() | 板载显示 | 按设定时间显示图案或字符串。 | 点阵显示空余数。 |
![]() | 数学 | 加、减、乘、除等运算。 | 载入后可在工具箱对照本课用法。 |
![]() | 集合 | 元素个数。 | 空余 = 总车位 - len(s1)。 |
六、知识点讲解
本课核心是用集合表示场内车辆。空余不是另计一个变量,而是 99 减人数。
入库/出库主题
add 发入库车辆,discard 发出库车辆。
心跳灯
定时 ping 失败则 1 号灯亮。
时间
完整代码刷卡先滚 strtime。
- 过关:能口述空余怎么算。
先看空余数字,再对照完整代码的时钟。
七、编程练习
点「载入」打开 MixVM(board=mixgo_zero_design)。在 Mixly 工具栏点「运行 / 停止」,「检查」做关键字核对。请先读本页「四、解题思路」与「五、图形块功能讲解」,再点载入。
3-1-1 单入口空余车位显示.mix。载入后运行。
正在载入编程环境
正在载入 MixGo ZERO 仿真编程环境…
八、课堂练习
先完成两道判断题,再完成选择题;全部选定后点「检查」。
判断:体验题每次刷卡都只入库,不会出库。
判断:点阵显示的是 总车位 减集合大小。
官方示例总车位是?
完整代码刷卡时还会?
九、本节小结
记住:同一入口靠集合切换入/出;时钟是 3-1-2。





