单元三

第10课 颜色检测

任务场景:颜色检测
任务场景:颜色检测

一、任务目标

用颜色检测统计画面里红色块的个数,有块就发声,完整程序再按个数点亮彩灯。

二、我们要学什么

  • 学习要点:颜色检测|范围内的色块个数
  • 本课过关:能完成:说出颜色检测是登记一种颜色范围,再数画面里有几块;载入编程体验,指出有红色块时串口打印个数,蜂鸣器响约 200 毫秒;再运行完整程序,指出还会先清彩灯,再按个数(最多 4 颗)点亮白色。
  • 示例对齐:编程体验对应 「十学期兴趣课程/学期5/3-3-1 图像识别-颜色检测」;完整程序对应 「十学期兴趣课程/学期5/3-3-2 图像识别-颜色检测改进」。

三、本节要点

本课要认识颜色检测:先登记红色范围,再数色块。重难点是分清两套——编程体验有块就打印并发声;完整程序再按个数点亮最多 4 颗彩灯。要点对齐「颜色检测|范围内的色块个数」。

1读场景明确真实任务
2对要点颜色检测|范围内的色块个数
3载入运行官方积木/代码

四、解题思路

任务:用两套程序认识颜色检测。编程体验有红块就打印、发声;完整程序再按个数点亮彩灯。请对照串口、喇叭和彩灯。

本课主要用到:摄像头;喇叭;板载彩灯(完整程序);串口。

  1. 1创建摄像头,并建立颜色检测模型。
  2. 2登记红色范围,名称写成 red。
  3. 3循环检测,得到色块个数 x。
  4. 4有块时打印「红色块个数」并发声约 200 毫秒。
  5. 5完整程序再按 min(x,4) 点亮白色彩灯。

流程示意

创建摄像头和模型登记红色范围循环检测个数有块则打印发声完整按个数点彩灯

五、图形块功能讲解

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

图形块分类作用本课用法
AI 摄像头初始化(简易)
板载智能简化参数初始化摄像头 AI。两套都按摄像头宽高建立 ColorDetector。
固定区域色块(简易)
板载智能简化固定区域色块登记。登记红色范围,名称 red。后面都数这个范围里的块。
色块检测数量
板载智能检测到的色块个数。循环得到红色块个数 x。有块才进入打印、发声。
打印输出
文本在控制台打印一行信息,便于调试。有块时打印「红色块个数:」加上 x。
蜂鸣器发声
板载执行按音调与时长播放一声。有块时音调 659、时长约 200 毫秒。
打印
输入/输出把内容显示到输出区。把「红色块个数:」这段文字送到串口。
math max min
其它本课程序中用到的积木,载入后可在工具箱中对照名称查看。完整程序用 min(x,4),彩灯最多点 4 颗。
设置一颗彩灯颜色
板载执行为板载 RGB 灯带中某一颗指定颜色。完整程序按下标点亮前 min(x,4) 颗白色。体验不用。

六、知识点讲解

颜色检测先登记一种颜色范围,再问画面里有几块落在这个范围内。它数的是色块个数,不是物体名称。
知识点本课怎么理解
颜色范围register_color 写下限、上限和名称 red。光线一变,同样的实物可能数不准,要对照现场。
检测个数simple_run 的结果 x 为真时表示检测到块;打印的是个数。
发声提示两套在有块时都 pitch_time(659, 200),用短声提示「看到了」。
个数映射到灯完整程序先 fill 白色再按 min(x,4) 点亮前几颗,最多 4 颗。

先看串口个数和短声,再看完整程序的彩灯颗数是否跟着个数变。

七、编程练习

点「载入」打开 MixVM(board=sant_design)。默认图形化积木;起步程序与积木优先来自 MixGo Sant「十学期兴趣课程/学期5」。语音/视觉在仿真中可能需真机或按键近似;在 Mixly 工具栏点「运行 / 停止」。请先读本页「四、解题思路」与「五、图形块功能讲解」,再点载入。

官方示例:3-3-1 图像识别-颜色检测.mix。载入后运行。

八、课堂练习

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

  1. 判断:编程体验检测到红色块时会打印个数,并让蜂鸣器响约 200 毫秒。

  2. 判断:编程体验也会按红色块个数点亮最多 4 颗彩灯。

  3. 本课「颜色检测」统计的是?

  4. 完整程序点亮彩灯的颗数上限是?

  5. 两套程序在有红色块时都会?

九、本节小结

本课认识颜色检测。编程体验有红块就打印、发声;完整程序再按个数点亮最多 4 颗彩灯。