EV3 Lab 指南

EV3 Lab 指南 > 编程模块 > 流程模块 > 切换模块

切换模块

切换模块

切换模块是可以包含两个或更多编程模块序列的容器。每个序列都称为一种 “情况”。切换开头处的测试确定将运行的情况。每当执行切换时, 只会运 行一种情况。

此处显示的切换测试可以基于传感器数据值或来自数据线的值,决定要运行的情况。在选择并运行一 种情况之后,程序会继续执行切换之后的任何模块。

切换模块


示例

下面的程序使机器人说“Touch”,然后测试是否按压了触动传感器。如果是这样, 则“真”(顶部)情 况执行,机器人会显示“Thumbs up”(拇指向上)并说“Yes”。如果未按压触动传感器, 则“伪”(底 部)情况执行,机器人会显示“Thumbs down”(拇指向下)并说“No”。在切换之后,机器人会说“Thank you”。

示例

切换模块

在机器人说完“Touch”之后,会立即测试触动传感器。如果在该瞬间按下了传感器,则切换会运行“真” 情况,否则会运行“伪”情况。

【提示和技巧】

• 切换不等待传感器数据值或数据线达到特定值。测试在切换模块开始之后立即运行, 并在测试之后 立即选择和运行一种情况。

• 在上面的程序中,可以在测试之前(甚至是在程序开始之前)按压触动传感器并在测试过程中按住, 以确保切换执行“真”情况。尝试了解在按压传感器之前可以等待并仍使机器人说“Yes”的时间  长度。

• 如果不希望机器人在该情况下执行任何操作,则可以将切换中的任何情况保留为空。尝试从上面程 序中的“伪”情况中删除两个模块,然后观察发生的情况。

 

选项卡视图

切换可以在平面视图中显示(如上面的示例所示),或是在选项卡视图中显示(如下所示)。在平面 视图中,所有情况都显示在不同行中。在选项卡视图中,一次只能看到一种情况。

可以使用选项卡视图减少程序在屏幕上占用的空间。视图不影响切换的执行方式。

 切换模块

要使切换在平面和选项卡视图之间进行切换,请单击平面/选项卡选择器。

要在选项卡视图中显示切换内的另一种情况,请单击切换边框顶部的不同选项卡。

【提示和技巧】

选项卡切换的所有情况中的模块都是程序的一部分,即使一次只能看到其中的某些模块。

 

选择切换测试

切换模块

使用模式选择器选择切换将用于选择要运行的情况的测试类型。可以测试传感器值或数据线值。

如果选择使用端口的模式,则使用端口选择器确保端口与传感器或电机连接到的 EV3 程序块上的端 口匹配。

可用输入会因模式而异。在某些模式中,可以将传感器值与阈值进行比较,在其他模式中,可以测试 特定传感器值。下面介绍了模式。

 

测试传感器阈值

切换模块包含读取数字传感器数据值并将其与阈值进行比较以获取“真”或“伪”结果的几种模式。例  如,在“颜色传感器 - 比较 - 反射光线强度”模式中,可以测试来自颜色传感器的反射光线强度是 否小于 50。

在这些模式中,切换模块包含两种情况。如果测试的结果为“真”,则“真”情况会执行,否则“伪”情况 会执行。

【提示和技巧】

“真”情况是“平面”视图中顶部的情况(由钩形符号标记)。“伪”情况是底部的情况(由 "X" 标记)。

要使用具有传感器阈值的模式,请选择比较类型(例如“小于” ),然后输入要将传感器数据与之进行 比较的阈值。切换模块会读取单个传感器读数并将其与阈值进行比较以获取“真”或“伪”结果。

示例

 切换模块

在此程序中, 切换模块使用 “颜色传感器  - 比较 -反射光线强度”模式测试  反射光线强度 是否小于50。如果是这 样,则它显示 “Low”,否则显示“High”。切换在循环中重复执行,以便基于新传感器测试持续更新显示。

【提示和技巧】

传感器测试的进行速度非常快。如果上面的示例中没有循环,则程序仅测试传感器一次并会快速完成, 以致您甚至不会注意到。


测试特定传感器值

以下模式允许切换测试特定传感器值。可以在切换中创建一种或多种与要测试的不同值对应的情况,

切换会选择匹配情况。

模式

用途

请参见

程序块按钮 - 测量

根据按压的程序块按钮在两种或更多情况之间进行选择。

使用程序块按钮

程序块按钮 - 比较

根据是按压、松开还是碰撞了所选程序块按钮之一,在两 种情况之间进行选择。

使用程序块按钮

颜色传感器 - 测量 - 颜色

根据检测到的颜色在两种或更多情况之间进行选择。

使用颜色传感器

颜色传感器 - 比较 - 颜色

根据是否检测到所选颜色之一在两种情况之间进行选择

使用颜色传感器

红外传感器 - 测量 - 远程

根据在 IR 信标上按压的按钮,从两种或更多情况中进行 选择。

使用红外传感器 “远程”模式

红外传感器 - 比较 - 远程

根据是否在 IR 信标上按压了指定按钮(或是否按压了指 定按钮集合中的一个),在两种情况之间进行选择。

使用红外传感器 “远程”模式

触动传感器

根据是否按压、松开或碰撞了触动传感器,在两种情况之 间进行选择。

使用触动传感器

超声波传感器 - 比较 - 存在

基于是否在“仅侦听”模式中检测到超声波信号,在两种情况之间进行选择。

使用超声波传感器

消息传递

基于消息值在两种情况之间进行选择。

消息传递

 

测试多个值

切换模块的传感器测量模式使您可以指定几个(两个或 更多)要测试的传感器值。可以在切换中为每个值提供 同情况。例如,在“颜色传感器 - 测量 - 颜色”模 式中,可以测试黑色、白色和红色,并创建三种不同情 况(每种颜色对应一种情况)

切换模块

要在传感器测量模式中使用多种情况,请单击“添加情  况”按钮以创建所需数量的情况。对于每种情况,单击“情 况值”可从列表中为传感器选择值。可以单击“删除情况” 按钮以删除情况。

单击“默认情况”按钮可将一种情况标记为默认情况。当 传感器检测到与切换中任何情况都不匹配的值时,会执 行默认情况。

请参见编程示例:检测到时说出“Red” 、“Green”和 “Blue”(使用颜色传感器中)。

请参见编程示例:程序块按钮控制面板(使用程序块按 钮中)。

 

测试来自数据线的值

在“逻辑” 、“文本”和“数字”模式中,切换可以基于来自数据线的值,选择要执行的情况。

 

模式

逻辑模式

在“逻辑”模式中,切换基于逻辑输入在“真”情况与“伪”情况之间进行选择。可以使用数据线将来自任 何编程模块的“逻辑”输出连接到“逻辑”输入。

编程示例:请参见比较模块。

文本模式

在“文本”模式中,切换会将文本输入的值与指定的两个或更多文本值进行比较(每个值对应一种情 况)。具有与“文本”输入匹配的值的情况会执行。如果无值匹配,则默认情况会执行。

有关创建多种情况的信息,请参见上面的测试多个值。“文本”模式中的每种情况都具有可以直接键入 到“情况值” 中的文本值。

示例

 切换模块

在此示例中,“文本”模式中的切换使用消息传递模块的输出,根据收到的消息在三种不同模式之间进 行选择。

数字模式

在“数字”模式中,切换会将数字输入的值与指定的两个或更多数字值进行比较(每个值对应一种情 况)。具有与数字输入匹配的值的情况会执行。如果无值匹配,则默认情况会执行。

有关创建多种情况的信息,请参见上面的测试多个值。“数字”模式中的每种情况都具有可以直接输入 到“情况值” 中的数字值。

示例

切换模块

在此示例中,“数字”模式中 的切换使用变量模块的输

出,在三种不同模式之间进 行选择。切换的默认情况为 空,因此如果“动作”变量的 值为 1、2 或 3 之外的任 何值,则切换不会执行任何 操作。


调整切换大小

切换模块通常会自动扩展以便为拖动到情况内的新编程模块腾出空间。还可以在需要时手动调整情况 大小。要在平面视图中调整切换内某个情况的大小, 请单击要调整其大小的情况旁的左侧或右侧切换 边框,然后拖动在外侧周围出现的大小调整手柄。

切换模块

在选项卡视图中,所有情况都显示相同大小。调整一种情况的大小以使其更大会使所有情况都同样以 更大空间进行显示。


输入

可用于切换模块的输入取决于所选模式。可以将输入值直接输入到模块中。或者, 可以通过数据线从

其他编程模块的输出提供输入值。

输入

类型

备注

逻辑

逻辑

用于在“逻辑”模式中选择情况

数字

数字

用于在“数字”模式中选择情况。

文本

文本

用于在“文本”模式中选择情况。

比较类型

数字

具有阈值输入的模式比较类型。 
0:=(等于)
1:≠(不等于) 
2:>(大于)
3:≥(大于或等于) 
4:<(小于)
5:≤(小于或等于)

阈值

数字

要将传感器数据与之进行比较的值
(用于基于数字传感器值选择 “真”情况或“伪”情况)。

(各种传感器类型 的输入)

 

有关传感器数据的更多信息,
请参见各种传感器类型的帮助。