侦测和辨识颜色
这篇教学会介绍 micro:bit 自走车 ( MoonCar 登月小车 ) 的颜色感测器,透过颜色感测器侦测颜色,并使用变数和逻辑积木,记录与辨识颜色。
- 操作 MoonCar 需要加载对应的扩充积木,请先参考:加载 MoonCar 的程序积木
- 更多信息:ICShop MoonCar 官方网站
认识色光三原色
颜色感测器所读取到的颜色,是由 R、G、B 三个颜色所组成,这三个颜色也就是所谓的“色光三原色”,这三种颜色无法被分解,也不能由其他色光所混合,在数字色彩领域,通常会将三个颜色分别拆分成 0~255 共 256 个阶层,数字越小当中包含该色彩的成分越少,将三个颜色组合成数组后,就会成为常见的“数字色码”,例如红色是 [255,0,0],绿色是 [0,255,0],蓝色是 [0,0,255],数组中三个数值分别代表红色绿色与蓝色的阶层数字。
侦测并读取颜色数值
要使用 MoonCar 的颜色感测器,必须在使用前将感测器初始化并打开补光灯,完成就能透过重复无限次循环,不断侦测颜色并回传数值,下方的程序码使用 red、green 和 blue 变数记录颜色数值,再透过序列显示数值。
将需要侦测的颜色卡牌 ( 或其他物体 ) 放在 MoonCar 的颜色感测器下方,就可以序列显示对应的数值。
侦测并判断颜色
如果已经能读取颜色数值,可以透过逻辑的方式,判断侦测到数值的“范围”,就能知道目前出现的是什么颜色,下方的范例会根据侦测到的颜色范围 ( 该范围是黄色卡片 ),改变 micro:bit 的 LED 图案。
参考:逻辑积木。
使用颜色记录积木,记录并判断颜色
除了自行记录颜色并判断色彩范围,也可以使用 MoonCar 内建的“颜色记录积木”记录颜色范围,使用的方法如下:
- 使用“颜色感测器读取颜色数值”积木侦测颜色。
- 使用“颜色感测器记录数值”积木,使用一个特定的“名称”,记录侦测到的颜色 ( 名称只是一个代号,例如“红色”名称的内容数值可以是真正的红色,也可以是蓝色或其他颜色 )
下方的范例,按下 micro:bit 的 A 按钮时,会记录当下的颜色,并赋予一个名称“红色”,接着在重复无限次循环里如果侦测到颜色符合“红色”,就会让 LED 显示爱心的图案。
记录并判断多组颜色
透过变数增加数值的方式,当按下按钮时将变数不断增加 1,就能记录多组颜色,并根据不同颜色,产生不同的动作,例如下方的范例,每次按下 A 按钮会记录一组颜色数值,总共记录红色、绿色和蓝色三组,接着透过无线重复次的逻辑判断,当侦测到红色就显示 R,侦测到绿色就显示 G,侦测到蓝色就显示 B。
范例解答
- 范例解答:MoonCar 侦测并辨识颜色
- 范例解答:MoonCar 侦测并辨识多组颜色
延伸练习
如果已经熟悉了 MoonCar 读取和辨识颜色的原理,还可以尝试更多好玩的作法:
- 让 MoonCar 可以记录与辨识更多组颜色 ( 额外辨识紫色、黄色、白色...等 )。
- 搭配魔幻 LED,让 MoonCar 侦测到颜色后,车身也会亮起特定的颜色 ( 解答 )
微信扫码关注
抖音扫码关注