首页 百科知识 学习与探究一·程序模块

学习与探究一·程序模块

时间:2022-10-04 百科知识 版权反馈
【摘要】:电机会一直运行,直到由程序后面部分中的另一个模块停止或更改,或是直到程序结束。当希望程序中的其他模块控制电机保持开启状态的时间长度时可使用“开启”模式。程序块状态灯模块控制程序块状态灯。此程序使机器人向前驱动,直至按压了触动传感器或颜色传感器检测到黑色。逻辑运算模块的输出用于循环的直到输入,当循环完成时,机器人会停止。仅在循环序列结束时测试传感器阈值。

一、大型电机模块

大型电机模块控制大型电机,可以开启或关闭电机、控制其功率级别或是将电机开启指定时间量或圈数。

▲选择电机端口和控制模式

使用模块顶部的端口选择器可选择希望大型电机模块控制的电机(A、B、C 或 D)。

使用模式选择器可选择要如何控制电机。选择模式之后,可以为输入选择值,可用输入会因模式而异。下面介绍模式和输入。

(一)模式

模式:开启、关闭、开启指定秒数、开启指定度数、开启指定圈数。

1.“开启”模式

“开启”模式会打开电机,然后立即继续执行到程序中的下一个模块,可以使用功率输入控制电机的速度和方向。电机会一直运行,直到由程序后面部分中的另一个模块停止或更改,或是直到程序结束。

使用的输入:功率。

示例

当希望程序中的其他模块控制电机保持开启状态的时间长度时可使用“开启”模式。在此程序中,电机会一直运行,直到按压了触动传感器,然后它会停止。

2.“关闭”模式

“关闭”模式会关闭电机。它通常用于停止通过开启模式启动的电机。请参见上面的示例。如果结束时制动为“真”,则会立即停止电机。电机会保持在停止位置,直到另一个电机模块启动该电机,或是直到程序结束。如果结束时制动为“伪”,则仅仅关闭电机的电源。电机会使用所有剩余动量惯性滑行,直到停止,或是直到另一个电机模块启动。

使用的输入:结束时制动。

提示和技巧

可以在结束时制动设置为“伪”的情况下使用“关闭”模式来“松开”保持在停止位置处的电机。例如,这可以允许您在程序运行中途手动调整电机位置。

3.开启指定秒数

“开启指定秒数”将电机开启秒数输入中的秒数,然后关闭。模块会等到这段时间经过,然后程序才继续执行到下一个模块。可以使用功率输入控制电机的速度和方向。对结束时制动使用“真”可在恰好达到指定秒数之后停止电机。

使用的输入:功率、秒数、结束时制动。

提示和技巧

可以在秒数输入中使用小数点获取精确时间量,如用于三秒半的 3.5 秒以及用于四分之一秒的 0.25 秒。

4.开启指定度数

“开启指定度数”将电机开启度数输入中的旋转度数,然后关闭。360 度旋转会将电机转动一整圈。可以使用功率输入控制电机的速度和方向。对结束时制动使用“真”可在恰好达到指定度数之后停止电机。

使用的输入:功率、度数、结束时制动。

示例

此程序会使端口 D 上的电机以 50%功率恰好运行 900 度(两圈半),然后停止它。

提示和技巧

大型电机的内部转动传感器会测量旋转度数。使用“开启指定度数”时,模块会等到电机恰好转动了指定度数,然后程序才继续执行到下一个模块。如果电机因遇到阻力或物理限制而无法完成指定度数,则模块会继续等待。在消除阻力之前,程序中的任何其他模块都不会执行。

5.开启指定圈数

“开启指定圈数”将电机开启圈数输入中的圈数,然后关闭。

可以使用功率输入控制电机的速度和方向。对结束时制动使用“真”可在恰好达到指定圈数之后停止电机。

使用的输入:功率、圈数、结束时制动。

提示和技巧

开启指定圈数模式与开启指定度数模式完全相同,只不过它使用不同的旋转单位;也可以在圈数输入中使用小数点来指定不完整的圈。下表显示获取相同旋转量的两种不同方式。

6.电机功率和方向

功率输入接受介于-100 至 100 之间的数字。正数和负数使大型电机以不同方向转动,如下图所示。

可以使用反转电机模块更改电机的正常旋转方向。如果反转了电机方向,则正和负功率级别的效果会与上面显示的效果相反。

提示和技巧

电机的旋转速度与指定功率级别大致成比例,尽管旋转速度也受电机所承受的负载量影响。

(二)输入

大型电机模块的输入控制着具体的电机运行方式。可以将输入值直接输入到模块中;或者,可以通过数据线从其他编程模块的输出提供值。可用输入及其功能取决于选择的控制模式。

二、程序状态灯模块

程序块状态灯模块控制程序块状态灯。程序块状态灯围绕 EV3 程序块正面的程序块按钮。可以按绿色、橙色或红色开启程序块状态灯、将其关闭或使其闪烁开启和关闭。

▲选择控制模式

使用模式选择器可选择要如何控制程序块状态灯。如果选择“开启”模式,则可以使用输入选择颜色和闪烁选项。下面介绍了模式和输入。

(一)模式

模式:开启、关闭、重置。

1.“开启”模式

“开启”模式开启程序块状态灯。

可以使用颜色输入选择灯的颜色。

如果闪烁为“真”,则灯会以重复模式闪烁开启和关闭。在使用“开启”模式之后,灯会保持开启或闪烁,直至执行另一个程序块状态灯模块,或直至程序结束。

使用的输入:颜色、闪烁。

示例

此程序会在机器人向后驱动期间使程序块状态灯按橙色闪烁,然后关闭灯。

2.“关闭”模式

“关闭”模式关闭程序块状态灯。

3.“重置”模式

“重置”模式使程序块状态灯恢复为标准绿色闪烁模式,该模式指示程序正在 EV3 程序块上运行。

提示和技巧

标准绿色闪烁模式与使用闪烁选项的结果不同。

(二)输入

在“开启”模式中,程序块状态灯模块的输入控制程序块状态灯的工作方式。可以将输入值直接输入到模块中;或者,可以通过数据线从其他编程模块的输出提供值。

三、循环模块

循环模块是可以容纳编程模块序列的容器,它会使所含的模块序列重复执行。可以选择不断重复执行模块、重复特定次数或是直至传感器测试或其他条件为“真”。

只有循环内的模块会重复执行。在循环结束后,程序会继续执行循环之后的模块。

提示和技巧

拖动模块可在循环内移动它们,循环模块会扩展以便为内部的模块腾出空间。

▲选择循环模式

使用模式选择器可控制循环的重复方式。不同模式指定使循环结束的条件。例如,可以使循环重复特定次数、重复到传感器数据值达到特定阈值或不断重复。可用输入会因模式而异。下面介绍了模式。

可以在循环模块顶部的“循环名称”字段中为循环输入名称。此名称由循环中断模块用于提供另一种结束循环的方式。

循环中的模块可以使用计数输出得知循环已重复的次数。有关更多信息,请参见使用“计数”输出。

(一)模式

模式:无限制、计数、时间、逻辑、传感器模式。

1.“无限制”模式

在“无限制”模式中,循环内的模块会不断重复执行,永远不会到达放置在循环之后的任何模块。

示例1

此程序使机器人反复按交替的直行/转弯顺序驱动,直至程序停止。

提示和技巧

使用 EV3 上的“返回”按钮可停止程序。

示例2

此程序会在每次按压触动传感器时在 EV3 显示上显示闭合的嘴,否则会显示张开的嘴。循环使切换模块中的传感器测试持续重复。

2.“计数”模式

在“计数”模式中,计数输入指定循环中重复模块的次数。

示例

此程序使机器人说一次“Hello”,说六次“Go”,然后说一次“Bravo”。循环模块包含一个声音模块,配置为重复六次。

3.“时间”模式

在“时间”模式中,可以在秒数输入中指定使循环重复的时间量。从循环开始时测量时间。

仅在循环序列结束时才测试时间限制。循环序列会始终至少执行一次,仅当当时经过的时间少于秒数时,循环会继续返回到开头。

4.“逻辑”模式

在“逻辑”模式中,循环会一直重复,直至直到输入在循环序列结束时为“真”。循环序列会始终至少执行一次,在每个循环迭代结束时会测试“直到”输入。

使用数据线可将直到输入连接到循环内编程模块的逻辑输出。需要循环结束时,此输出应为“真”。

示例

此程序使机器人向前驱动,直至按压了触动传感器或颜色传感器检测到黑色(先发生的情况起作用)。逻辑运算模块的输出用于循环的直到输入,当循环完成时,机器人会停止。

提示和技巧

可以使用下面介绍的传感器模式,通过循环模块直接测试许多仅涉及一个传感器的传感器测试。

5.“传感器”模式

循环模块包含读取传感器数据并将其与输入值进行比较的几个模式。每种传感器类型具有不同模式。某些类型的传感器数据可以与阈值进行比较,其他类型可以与某些特定值进行比较。

6.将传感器数据与阈值进行比较

在具有阈值输入的模式中,循环模块会重复循环内的模块序列,直至阈值比较为“真”。例如,可以使循环重复,直至颜色传感器检测到小于指定阈值的反射光线强度值。

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

从比较类型列表中选择要使用的比较类型,然后输入阈值。

每当循环内的模块序列完成时,循环模块会读取传感器数据并测试阈值。如果测试在当时为“伪”,则循环会重复。如果测试为“真”,则循环会结束,并且程序会继续执行循环之后的下一个模块。

有关使用不同传感器类型及它们提供的数据的更多信息,请参见“使用传感器”帮助文章。

示例

此程序使机器人向前驱动,同时重复三种不同声音,直至颜色传感器检测到小于 50 的反射光线强度,然后停止机器人。

提示和技巧

仅在循环序列结束时测试传感器阈值。在上面的示例中,如果颜色传感器在循环中短暂通过深色,则机器人可能不会看到它并且不会停止。

7.将传感器数据与特定值进行比较

以下传感器模式允许循环将传感器数据与特定输入值进行比较。循环会重复,直至传感器数据等于指定输入值。

提示和技巧

仅在循环序列结束时测试传感器。如果传感器数据在循环序列执行期间仅短暂地与指定输入值匹配,则循环可能不会停止。

8.使用“计数”输出

循环模块开头处的计数输出告知循环序列已执行的次数。可以在循环内使用“计数”,使循环序列在每次循环重复时执行不同操作。

“计数”在首次执行循环期间为 0,并在每次循环重复时增加 1。

示例

此程序在 EV3 显示屏上显示碰撞(按压然后松开)触动传感器的次数计数。循环中的等待模块使循环在重复之前等待每次触动传感器碰撞,计数用于显示模块的“文本”输入。

9.调整循环大小

循环模块通常会自动扩展以便为拖动到其中的新编程模块腾出空间,还可以在需要时手动调整循环模块大小。要调整循环大小,请选择循环模块,然后拖动外侧周围出现的大小调整手柄。

示例

此循环模块正在调整大小,以便为其中的第二个模块序列腾出空间。

(二)输入与输出

可用于循环模块的输入取决于所选模式。可以将输入值直接输入到模块中。或者,可以通过数据线从其他编程模块的输出提供输入值。

循环模块的输出是循环已重复的次数。要使用该输出,请使用数据线将其连接到循环内部或之后的编程模块。

四、切换模块

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

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

示例

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

示例

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

提示和技巧

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

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

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

(一)选项卡视图

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

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

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

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

提示和技巧

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

(二)选择切换测试

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

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

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

(三)测试传感器阈值

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

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

提示和技巧

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

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

示例

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

提示和技巧

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

(四)测试特定传感器值

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

(五)测试多个值

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

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

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

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

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

(六)测试来自数据线的值

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

模式:逻辑、文本、数字。

1.“逻辑”模式

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

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

2.“文本”模式

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

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

示例

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

3.“数字”模式

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

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

示例

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

(七)调整切换大小

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

提示和技巧

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

(八)输入

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

五、颜色传感器模块

颜色传感器模块从颜色传感器获取数据。可以测量光线的颜色或强度并获取数字输出。还可以将传感器数据与输入值进行比较并获取逻辑(“真”或“伪”)输出。

有关颜色传感器工作原理、不同模式、提供的数据以及编程示例的更多信息,请参见使用颜色传感器。

提示和技巧

颜色传感器模块使用数据线输出数据。有关无需数据线的其他使用颜色传感器的方式,请参见使用颜色传感器。

▲选择传感器端口和模式

(一)输出

使用模块顶部的端口选择器可确保传感器端口号(1、2、3 或 4)与颜色传感器连接的 EV3 程序块上的端口匹配。

使用模式选择器可为模块选择模式。可用输入和输出会因模式而异。

(二)模式

1.“测量-颜色”模式

“测量-颜色”模式在颜色中输出检测到的颜色编号。

2.“测量-反射光线强度”模式

“测量-反射光线强度”模式在测量值中输出光线强度。

请参见使用颜色传感器中的编程示例 5。

3.“测量-环境光强度”模式

“测量-环境光强度”模式在测量值中输出光线强度。

4.“比较-颜色”模式

在“比较-颜色”模式中,可以在颜色集合中选择一个或多个颜色。

如果检测到的颜色与任何所选颜色匹配,则比较结果输出会是“真”。

检测的颜色会输出到测量值。

5.“比较-光线强度”模式

“比较-反射光线强度”和“比较-环境光强度”模式使用所选比较类型,将检测到的光线强度与阈值进行比较。“真/伪”结果在比较结果中输出,检测到的光线强度在测量值中输出。

示例1

此程序将程序块状态灯以橙色打开,如果颜色传感器检测到大于 50 的环境光强度,便使其闪烁。

示例2

此程序使机器人驱动,直至颜色传感器检测到小于 50 的反射光线强度,或直至电机 B 转动了 2000 度(先发生的情况起作用)。

6.“校准”模式

校准模式使您可以在程序中校准颜色传感器。也可以手动键入传感器应使用的最小和最大值。

7.“校准-最小值”模式

“校准-最小值”模式使您可以在值输入中指定最小光线强度。校准之后,颜色传感器会将此光线强度报告为 0 或指定值。

8.“校准-最大值”模式

“校准-最大值”模式使您可以在值输入中指定最大光线强度。校准之后,颜色传感器会将此光线强度报告为 100 或指定值。

9.“校准-重置”模式

“校准-重置”模式将颜色传感器校准还原为其默认状态。

(二)输入与输出

可用于颜色传感器模块的输入取决于所选模式。可以将输入值直接输入到模块中;或者,可以通过数据线从其他编程模块的输出提供输入值。

可用输出取决于所选模式。要使用某个输出,请使用数据线将该输出连接到另一个编程模块。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈