单元八

第30课 刷脸开锁——身份与权限

任务场景:刷脸开锁——身份与权限
任务场景:刷脸开锁——身份与权限

一、任务目标

做成能分清身份与权限的门锁:先认出是谁,权限够了才完成开门操作。

二、我们要学什么

  • 学习要点:身份与权限|先认出是谁,权限够了才开锁
  • 本课过关:能完成:说出身份是消息里的 id(是谁),权限是概率够不够才开门;载入体验程序,指出输入是「face」主题的 JSON,输出是串口打印 id 和 faceProbability,概率大于0.8时完成开门操作;再运行完整程序,指出它多打印 name,不再根据概率开门。
  • 示例对齐:体验题对应 教育部教学指南改进版/八年级/15-3 刷脸开锁.mix;完整代码对应 教育部教学指南改进版/八年级/15-2 利用摄像头实现人脸识别.mix。

三、本节要点

前课先把人脸消息里的字段打印出来核对。本课做成门锁:身份回答「是谁」,权限回答「能不能开」。体验程序认出 id 后,权限够了才完成开门操作;完整程序把 id、name 和可信度都打印出来,方便核对身份。人脸消息只是例子;0.8 只是体验里权限够不够的门槛。要点对齐「身份与权限|先认出是谁,权限够了才开锁」。

1读场景明确真实任务
2对要点身份与权限|先认出是谁,权限够了才开锁
3载入运行官方积木/代码

四、解题思路

任务:用两套程序认识身份与权限——都订阅「face」并解析 JSON;体验程序在人脸概率大于0.8时彩屏开门再关门,完整程序多打印 name。请先分清每套的输入和输出,对照打印与是否开门。

本课主要用到:两套都用 MQTT 订阅「face」并在串口打印字段;体验程序在可信度够了时完成开门操作。

  1. 1明确任务「刷脸开锁——身份与权限」:人脸消息只是例子,要观察的是身份字段和开锁条件。
  2. 2连网并订阅「face」,循环检查消息。
  3. 3把消息解析成字典,打印 id 和 faceProbability。
  4. 4体验程序:概率大于 0.8 时完成开门操作,延时约 2 秒再关门。
  5. 5完整程序:打印 id、name、faceProbability,对照字段是否齐全。

流程示意(可对照左侧文字)

身份与权限:可信度才开锁订阅 face,循环检查消息解析 JSON,打印 id 和概率概率大于0.8则彩屏开门再关完整多打印 name,不显示门

五、图形块功能讲解

本课用到的 Mixly 图形块均已在前面的课讲过。请直接对照编程练习搭积木;若有遗忘,回到该积木首次出现的课页复习。

六、知识点讲解

身份与权限是门锁要分清的两件事:身份回答「是谁」,本课对应消息里的 id(完整程序还有 name);权限回答「能不能开」,本课体验程序用可信度够不够来决定。前课先打印人脸字段,本课把字段用成刷脸门锁:体验程序权限够了才完成开门操作;完整程序把 id、name、faceProbability 打印出来,便于核对身份。人脸识别消息只是例子。

先弄清:人脸消息是例子,要认识的是身份与权限;再进编程练习对照现象。

七、编程练习

点「载入」打开 MixVM(board=sant_design)。默认图形化积木;起步程序与积木优先来自 MixGo Sant 官方示例「教育部教学指南改进版/八年级」。在 Mixly 工具栏点「运行 / 停止」,「检查」做关键字核对。请先读本页「四、解题思路」与「五、图形块功能讲解」,再点载入。

官方示例:15-3 刷脸开锁.mix。载入后运行。

八、课堂练习

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

  1. 判断:体验程序在 faceProbability 大于0.8时,会在彩屏显示开门图,约2秒后再显示关门图。

  2. 判断:完整程序也会根据 faceProbability 大于0.8在彩屏显示开门图。

  3. 本课说的「身份与权限」分别对应?

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

  5. 运行体验程序并收到 faceProbability 为0.9的消息,应看到?

九、本节小结

前课核对人脸字段,本课做成能分清身份与权限的门锁:先认出是谁,权限够了才开锁。体验程序订阅「face」,打印 id 和可信度,权限够了才完成开门操作,约 2 秒后再关门。完整程序同样订阅「face」,打印 id、name、faceProbability,用来核对身份。