三、数字公交
第12课 实时公交车辆端

一、任务目标
车辆端:分享码连上后,T2 站号加 1 并发布车辆信息(路线编号 ABCD),T3 减 1 且不小于 0;定时器每 20 秒 ping。完整代码是站台端:订阅车辆信息,用站台位置减站号得到距离并滚动。
二、我们要学什么
- 学习要点:车辆端负责改站号并发布;站台端负责收报文算距离
- 本课过关:能指出体验是车辆端按键发布;订阅算距离是完整代码。
- 示例对齐:体验题对应 「3-4-1 实时公交车辆端」;完整代码对应 「3-4-2 实时公交站台端」。
三、本节要点
不要把体验改成订阅。完整代码字典里 ABCD 对应 11。
1读场景明确真实任务
2对要点按键改站号并发布车辆信息
3载入运行本课积木/代码
四、解题思路
- 输入:体验 T2/T3。完整代码 MQTT 车辆信息。
- 输出:体验点阵站号;完整代码滚动路线+距离。
- 生活对照:车上报站,站台屏显示还有几站。
- 验证现象:T2 站号加 1,屏上数字变大。
本课主要用到:分享码 MixIO、点阵、定时器;完整代码另用 JSON。
- 1分享码初始化。
- 2T2/T3 改站号并 publish。
- 3shows(站号)。
- 4完整代码 subscribe 后算 站台位置-站号。
流程示意(可对照左侧文字)
五、图形块功能讲解
下面只列出本课首次出现的 Mixly 图形块(真积木截图)。已在前面课讲过的不再重复;先认新块,再点「载入」对照拖搭。
| 图形块 | 分类 | 作用 | 本课用法 |
|---|---|---|---|
![]() | 数学 | 取两个数中的较大或较小值。 | 体验 T3 后 站号 = max(站号, 0)。 |
![]() | MixIO | 保持 MQTT 连接活跃。 | 定时器 pingSync,1 号灯指示。 |
![]() | 字典 | 用若干键值对组成字典。 | 发布路线编号和站号。 |
六、知识点讲解
本课核心是车辆端上报。体验不计算距离;站台位置字典在完整代码。
路线编号
'ABCD'。
心跳
20 秒 Timer 调 pingSync。
距离
完整代码 站台位置[路线]-站号。
- 过关:能说出哪一题才是站台屏。
先弄清本课输入与输出,再进编程练习对照现象。
七、编程练习
点「载入」打开 MixVM(board=mixgo_zero_design)。在 Mixly 工具栏点「运行 / 停止」,「检查」做关键字核对。请先读本页「四、解题思路」与「五、图形块功能讲解」,再点载入。
3-4-1 实时公交车辆端.mix。载入后运行。
正在载入编程环境
正在载入 MixGo ZERO 仿真编程环境…
八、课堂练习
先完成两道判断题,再完成选择题;全部选定后点「检查」。
判断:体验会订阅「车辆信息」并滚动距离。
判断:T3 会把站号减 1,并且不小于 0。
定时器周期是?
完整代码 ABCD 的站台位置是?
九、本节小结
记住:体验是车辆端上报;站台端是完整代码。


