第4课 让智能小车亮起来

情境描述

行驶在路上的智能小车突遇故障,需开启双跳灯,警示其他车辆及行人切勿靠近,以免发生意外事故。本课就让我们一起给智能小车开启双跳灯。

 

知识概念

要让智能小车开启双跳灯,需先在小车的两侧各安装一个LED模块。智能小车套件内的LED模块如图4-1所示。

图4-1 智能小车套件内的LED模块

 

此外,还需要使用以下新的指令:

使用这个指令可以控制LED灯的亮灭。

指令默认是连接到S0端口的,输出值为“1”。通过单击第一个参数的下拉列表,可以选择LED灯的连接端口,有S0、S1、S2、S3、A0、A1、A2、A3,共计8个端口可供选择。其中S0、S1、S2、S3为数字端口,A0、A1、A2、A3为模拟端口,模拟端口可以当成数字端口使用,而数字端口不能当成模拟端口用。通过单击第二个参数的下拉列表,可以设置LED灯的亮灭状态,输出值只有0和1。

 

试一试:

先将智能小车右侧的LED模块连接到S0端口,然后编写如图4-2所示的程序,并编译下载到智能小车中运行,观察小车的LED灯亮灭情况。

图4-2 控制LED灯亮灭的程序代码

 

作品制作

双跳灯,即智能小车两侧的LED灯同时亮起,过一段时间后一起熄灭,再过一段时间又同时亮起。像这样,两个LED灯重复不断地同时亮、灭,就形成了双跳灯。双跳灯程序的编写可以按以下步骤操作:

第一步:让两个LED灯同时亮起来

要让智能小车的两个LED灯同时亮起来,具体可以按照以下步骤操作:

首先将小车左侧的LED灯连接到A3端口,右侧的LED灯连接到S3端口;然后拖动“更多模块”中的两个“设置数字口”指令到“好好搭搭硬件程序”下方,并组合在一起;最后把两个指令的数字口分别设置为A3和S3,输出值均设为0。具体程序如下图4-3所示:

图4-3 让两个LED灯同时亮起的程序代码

 

第二步:让两个LED灯闪烁起来

通过运行图4-3所示程序,智能小车的两个LED灯可以同时亮起来了。但要让智能小车的LED灯闪烁起来,还需添加让LED灯熄灭的指令,具体可以按以下步骤操作: 首先复制图4-3所示程序中的两个“设置数字口”指令,并和原来的程序组合在一起。然后把两个输出值均设置为1。具体程序如下图4-4所示:

图4-4 让LED灯亮灭的程序代码

 

试一试:

编写如图4-4所示程序,下载到智能小车中运行,观察智能小车LED灯的亮灭状态。

 

从图4-4所示程序的指令来看,智能小车的LED灯应该先亮后灭。但由于智能小车处理器的运算速度惊人,肉眼只能看到LED灯灭的状态。因此需要拖动“控制”模块中的“等待”指令到程序的第二个“设置数字口”指令的下方,并根据需要设置等待的时间。具体程序如下图4-5所示:

图4-5 让LED灯闪烁的程序代码

 

第三步:让两个LED灯一直闪烁

通过运行图4-5所示的程序,可以发现智能小车的两个LED灯只闪烁了一次。要让LED灯一直闪烁,需添加一个“重复执行”指令,使原有的程序包含在“重复执行”指令中。具体程序如下图4-6所示:

图4-6 添加了"重复执行"指令后的程序代码

 

试一试:

编写如图4-6所示程序,编译下载到智能小车中运行,并观察LED灯的亮灭情况。

 

在 “重复执行”指令中,智能小车处理器以肉眼难以察觉的速度执行完“设置数字口S3输出为1”这条指令后,随即又从第一个指令开始逐个往下执行。因此,智能小车的LED灯看起来一直处于亮的状态。为解决这一问题,需在“重复执行”指令中添加“等待”指令。

 

想一想:

新添加的“等待”指令可以放在哪个位置呢?请把你的想法记录下来。

 

第四步:让小车闪着双跳灯前行

要让智能小车闪着双跳灯前行,需在原有程序的基础上添加两个“双电机驱动”指令,并根据双电机连接情况设置好相应的端口和电机输出值。具体程序如下图4-7所示:

图4-7 智能小车闪着双跳灯前行的程序代码

 

拓展思考

让智能小车按照一定要求走出不同形状的轨迹图。要求如下:

  1. 直行时,智能小车开启双跳灯模式。
  2. 左转弯时,智能小车只闪烁左侧LED灯;右转弯时,只闪烁右侧LED灯。