第三课:认识RGB车灯和色彩奥秘

1、编程知识点(循环逻辑、变量、表达式、随机数)

2、模块知识点(车灯模块)

3、科学知识点(光的奥秘)

环境:网络及手机/电脑

准备:小龟小车主控板

第三课:认识RGB车灯和色彩奥秘



第一节:认识RGB车灯和图形编程控制彩灯开关和颜色(约15分钟)


课程内容

1、认识RGB车灯

2、体验车灯模块的开关、设置色彩


1、认识RGB车灯

首先我们先来认识一下主控板上的炫彩灯,小龟标记的这两个位置就是RGB炫彩灯。


2、体验车灯模块的开关、设置色彩

接下来,我们可以通过图形编程,更深入的了解一下这个模块。

车灯模块的开关:

点击打开车灯积木块,点击执行车灯就会亮起。

<xml xmlns="https://developers.google.com/blockly/xml"><block type="led_on" id="4=a[}E%F__u(,8EFid.S" x="173" y="108"></block></xml>

点击关闭车灯积木块,点击执行车灯就会关闭。

<xml xmlns="https://developers.google.com/blockly/xml"><block type="ws2812_close" id="*P@BH=0Jk5Vi@rQ4Aej%" x="93" y="98"></block></xml>

设置色彩:

接下来我们用图形编程设置炫彩灯的色彩,执行这个模块,我们会发现炫彩灯的颜色是蓝色。

<xml xmlns="https://developers.google.com/blockly/xml"><block type="ws2812_write" id="Y_r_tf!Wq+=@{MoZu@hu" x="133" y="97"><field name="color">#0000ff</field></block></xml>

这个颜色的区域,是可以更改的。小伙伴们可以选择自己喜欢的颜色尝试一下!


【趣味挑战】

FOR循环闪三下彩灯

1、首先需要点击循环模块,把框内的数字改成3。

2、然后把打开车灯、关闭车灯这两个积木块,拖到循环积木块的里面。

3、两个积木块都需要间隔一秒,不然速度太快人眼会无法识别!

4、点击执行,这样就挑战成功了~


<xml xmlns="https://developers.google.com/blockly/xml"><block type="controls_repeat_ext" id="JuDmpC;bEimAatT@Z-zu" x="76" y="79"><value name="TIMES"><shadow type="math_number" id="C`xBxgcn3?^1//Gu*Ivq"><field name="NUM">3</field></shadow></value><statement name="DO"><block type="led_on" id="1!CuUzdpTY(,PE.hBqFn"><next><block type="sleep_var" id="FvrAQgDP.g?q,;kr;TRB"><value name="keep"><shadow type="math_number" id="j-a4UTiZgGRo?op*,iTr"><field name="NUM">1</field></shadow></value><next><block type="led_off" id="1|dU$GI;=%_pP=pJFCt1"><next><block type="sleep_var" id="*FDMOC:UubQiPkCGF*+9"><value name="keep"><shadow type="math_number" id="Q+|p0zArDYo;Ti}imTeH"><field name="NUM">1</field></shadow></value></block></next></block></next></block></next></block></statement></block></xml>



第二节:认识三原色和图形编程感受三原色的合成(约40分钟)


课程内容

1、认识色彩的组成

2、认识色彩的计算机表达,实现指定颜色的显示

3、随机生成三原色值来生成随机色


1、认识色彩的组成

色彩当中最基本的三种颜色,就是红(Red)、绿(Green)、蓝(Blue),我们称这三个颜色为三原色。



2、认识色彩的计算机表达,实现指定颜色的显示

所有的颜色,都由三原色混合而成,小龟为大家整理了部分RGB颜色对照表。

接下来我们可以根据这个表格,来体验小车控制色彩。


以绿色为例,点击这个积木块我们来试一下绿色,将G的值改为255,炫彩灯就显示了绿色。

大家也可以百度自己喜欢的颜色~通过调整积木块的RGB值,让炫彩灯显示想要的颜色。

<xml xmlns="https://developers.google.com/blockly/xml"><block type="ws2812_rgb" id="~u3|@mEHHk7#RbN]bqW7" x="110" y="126"><value name="r"><shadow type="math_number" id="pSCQNn#;demg%$.nYqQB"><field name="NUM">0</field></shadow></value><value name="g"><shadow type="math_number" id="J??YL09:3*w903T.6-|H"><field name="NUM">255</field></shadow></value><value name="b"><shadow type="math_number" id="+Ufhpm0j3P4C+bP)W4m6"><field name="NUM">0</field></shadow></value></block></xml>


3、随机生成三原色值来生成随机色

其实图形编程执行后,分为这几个阶段。

开始——分析判断——动作输出——结束处理。


随机彩色灯的原理其实就是,当某一个条件成真时,就执行该条件表达式下的结果。

我们先来观察一下效果,每点击一次执行,炫彩灯会随机产生一个颜色。

我们先来挑战随机生成三种颜色,颜色分别为蓝、红、绿。

<xml xmlns="https://developers.google.com/blockly/xml"><variables><variable id="D^4M4IG]JUGxgMeA`A9)">i</variable></variables><block type="variables_set" id="8rErf|Wl=:llHjORm!4b" x="138" y="85"><field name="VAR" id="D^4M4IG]JUGxgMeA`A9)">i</field><value name="VALUE"><block type="math_random_int" id="{qat0]ln=,6uB8pP;28x"><value name="FROM"><shadow type="math_number" id="W54#Kblf7P-qAu_]pUG9"><field name="NUM">1</field></shadow></value><value name="TO"><shadow type="math_number" id="(JvQ:aEuGwn3oA4?c$`4"><field name="NUM">3</field></shadow></value></block></value><next><block type="controls_if" id="u}Pnp{xN1Jz^((?6DJsJ"><value name="IF0"><block type="logic_compare" id="L,+sRyD};H.bCqv}Npyw"><field name="OP">EQ</field><value name="A"><block type="variables_get" id="]JoVtU19RFf7nqn$:.qW"><field name="VAR" id="D^4M4IG]JUGxgMeA`A9)">i</field></block></value><value name="B"><block type="math_number" id="e7iD4%R|5wzCi=KT[,}q"><field name="NUM">1</field></block></value></block></value><statement name="DO0"><block type="ws2812_write" id="Qd;Ay,s^mDJZMGi@|Xb7"><field name="color">#0000ff</field></block></statement><next><block type="controls_if" id="X#Ov^77M`=ikR8Iqjg3A"><value name="IF0"><block type="logic_compare" id="sFFc?]0Mp?eGnWiwyN)J"><field name="OP">EQ</field><value name="A"><block type="variables_get" id="eR|CW0kn`Ylx-OY.~RG$"><field name="VAR" id="D^4M4IG]JUGxgMeA`A9)">i</field></block></value><value name="B"><block type="math_number" id="TK((^VRkxnJDXv)w;sQc"><field name="NUM">2</field></block></value></block></value><statement name="DO0"><block type="ws2812_write" id="2U$y2~8Hn0kIB6327EU`"><field name="color">#ff0000</field></block></statement><next><block type="controls_if" id="I~RFN)H^,jTIjin`PvL8"><value name="IF0"><block type="logic_compare" id="D4{d7{0$5`]lg,}=ruTy"><field name="OP">EQ</field><value name="A"><block type="variables_get" id="@!hS+X9D9PzzaD+gUNg^"><field name="VAR" id="D^4M4IG]JUGxgMeA`A9)">i</field></block></value><value name="B"><block type="math_number" id="oz+KPTZQ]y6/$r#l^yMM"><field name="NUM">3</field></block></value></block></value><statement name="DO0"><block type="ws2812_write" id="!0PBk=-LQ:%:dL=,xOE?"><field name="color">#33ff33</field></block></statement></block></next></block></next></block></next></block></xml>

1、由于是随机生成的颜色,因此我们首先要设置一个变量,这个变量我们称它为i。


2、它有三种可能,因此我们选择这个积木块,把它的范围设置成1到3的随机整数

注意:有几个随机颜色范围就设置几个!小龟这里是3个颜色所以设置3!


3、在逻辑菜单栏,找到这个条件表达式,并给变量i设置一个条件:

如果变量i=1的时候,炫彩灯显示蓝色


4、复制这个模块,分别把条件改为:

如果变量i=2的时候,炫彩灯显示红色

如果变量i=3的时候,炫彩灯显示绿色

5、点击执行,炫彩灯就会随机生成蓝红绿中的一个颜色。

小伙伴们可以挑战更多数量的随机颜色!

实现呼吸灯,基于FOR循环实现呼吸灯效果。