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

学习与探究四·程序模块

时间:2022-10-04 百科知识 版权反馈
【摘要】:当在 EV3 程序块上运行程序时,会显示此屏幕,直至程序中的第一个显示模块执行。此程序使用等待模块在程序结束时设置 3 秒延迟。这会使圆圈保持显示,直至通过按压 EV3 程序块上的“返回”按钮来停止程序。显示模块的输入指定要显示的文本或图形以及显示方式。在程序运行期间,可以更改变量的值。每次机器人检测到较高值时,可以将新值写入“Max Light”变量。此程序对按压触动传感器的次数进行计数,并在 EV3 显示屏上显示计数。

一、显示模块

显示模块可以在 EV3 程序块显示屏上显示文本或图形。

▲选择显示模式

使用模式选择器选择要显示的文本或图形的类型。选择模式之后,可以为输入选择值。可用输入会因模式而异。下面介绍了模式和输入。

可以单击“显示预览”按钮以查看显示模块将在 EV3 显示上显示的内容预览。为模块选择输入值时,可以保持预览处于打开状态。

模式:文本—像素、文本—网格、形状—线、形状—圆圈、形状—矩形、形状—点、图像、重置屏幕。

(一)显示坐标

许多显示模块模式使用 X 和 Y 坐标指定要绘制项目的位置。坐标指定 EV3 程序块显示屏上的像素位置。位置 (0, 0) 处于显示屏左上角,如下图所示。

显示屏为 178 像素宽,128 像素高。X 坐标值范围从显示屏左侧的 0 到右侧的 177。Y 坐标值范围从顶部的 0 到底部的 127 。

提示和技巧

可以使用显示模块左上角的“显示预览”按钮帮助查找正确的显示坐标。

(二)模式

1.“文本—像素”模式

“文本-像素”模式可以在 EV3 程序块显示屏上的任何位置显示文本。

如果清除屏幕为“真”,则会在绘制文本之前清除显示屏内容。

文本输入位于模块顶部。它包含要显示的文本字符串。选择“连线”可显示可以接受数据线的文本输入。

文本可以包含支持的文本字符集中的任何字符。

X 和 Y 输入指定文本起始点的显示坐标,这是所显示文本的左上角。

使用颜色输入选择文本的颜色。如果选择“黑色”,则文本会以黑色显示在白色背景上,如果选择“白色”,则文本会以白色显示在黑色背景上。

可以使用字体输入在三种不同字型中选择:“常规”、“粗体”和“大”。

使用的输入:清除屏幕、文本、X、Y、颜色、字体。

示例

此程序使用“大”字体在显示屏中心显示“Hello!”。

2.“文本—网格”模式

“文本—网格”模式显示与行和列组成的网格对齐的文本。这样可以轻松显示和对齐多行文本。行的高度具有足够空间采用“常规”或“粗体”字体显示一行文本,采用这两种字体的每个字符的宽度都是一列。

如果清除屏幕为“真”,则会在绘制文本之前清除显示。

文本输入位于模块顶部。它包含要显示的文本字符串。选择“连线”可显示可以接受数据线的文本输入。文本可以包含支持的文本字符集中的任何字符。

列输入指定文本的起始列(水平位置)。每列都是 8 像素宽。列的编号从左侧的 0 到右侧的 21。

行输入指定文本的行或“行号”(垂直位置)。每行都是 10 像素高。行 0 处于显示顶部,行 11 靠近显示底部。

使用的输入:清除屏幕、文本、列、行、颜色、字体。

提示和技巧

列的宽度与“常规”和“粗体”字体的字符的宽度相同,因此在使用这两种字体时向列加 1 会使文本起始位置向右移动一个字符。“大”字体的字符的宽度和高度分别是“常规”字体的两倍,因此每个字符占用两列和两行。

使用颜色输入选择文本的颜色。如果选择“黑色”,则文本会以黑色显示在白色背景上。如果选择“白色”,则文本会以白色显示在黑色背景上。

可以使用字体输入在三种不同字型中选择:“常规”、“粗体”和“大”。

使用的输入:清除屏幕、文本、列、行、颜色、字体。

示例

此程序显示两行文本。第二个显示模块对清除屏幕输入使用“伪”来添加第二行,而不擦除第一行。

提示和技巧

以“大”字体显示多行文本时,请在换行时向行输入加 2,以避免行重叠。

3.“形状—线”模式

“形状-线”模式在显示屏上的任何两个点之间绘制一条直线。

如果清除屏幕为“真”,则会在绘制线之前清除显示。

X1 和 Y1 输入指定线上第一个点的显示坐标。

X2 和 Y2 输入指定第二个点的坐标。

可以使用颜色输入选择黑色或白色线。仅当清除屏幕为“伪”并且线在上一个显示模块显示某些黑色内容的区域上绘制时,白色线才可见。

使用的输入:清除屏幕、X1、Y1、X2、Y2、颜色。

示例

此程序会在 EV3 程序块显示屏上绘制对角线。

4.“形状—圆圈”模式

“形状-圆圈”模式在显示屏上绘制圆圈。

如果清除屏幕为“真”,则会在绘制圆圈之前清除显示。

X 和 Y 输入指定圆心的显示坐标,半径输入以像素为单位指定圆的半径。

如果填充为“真”,则会填充圆的内部。如果填充为“伪”,则仅绘制圆的轮廓。

可以使用颜色输入选择黑色或白色圆圈。仅当清除屏幕为“伪”并且圆圈在上一个显示模块显示某些黑色内容的区域上绘制时,白色圆圈才可见。

使用的输入:清除屏幕、X、Y、半径、填充、颜色。

示例

此程序连续显示一个实心圆,该圆的半径是来自颜色传感器的环境光强度值。显示每十分之一秒更新一次。

5.“形状—矩形”模式

“形状-矩形”模式在显示屏上绘制矩形。

如果清除屏幕为“真”,则会在绘制矩形之前清除显示。

X 和 Y 输入指定矩形左上角的显示坐标。宽度和高度输入以像素为单位指定矩形的大小。

如果填充为“真”,则会填充矩形的内部。如果填充为“伪”,则仅绘制矩形的轮廓。

可以使用颜色输入选择黑色或白色矩形。仅当清除屏幕为“伪”并且上一个显示模块在显示屏的同一区域中显示了某些黑色内容时,白色矩形才可见。

使用的输入:清除屏幕、X、Y、宽度、高度、填充、颜色。

示例

此程序通过一个较大实心矩形,来使用黑色填充整个显示。然后在该矩形上绘制一个较小的白色矩形轮廓。

提示和技巧

可以使用实心白色矩形清除显示的一部分,而不影响显示的其他部分。

6.“形状—点”模式

“形状—点”模式在显示屏上绘制点。

如果清除屏幕为“真”,则会在绘制像素之前清除显示。

X 和 Y 输入指定要绘制的像素的显示坐标。

可以使用颜色输入选择要以黑色还是白色绘制像素。采用白色绘制可以用于清除以前的显示模块绘制的黑色像素。

使用的输入:清除屏幕、X、Y、颜色。

7.“图像”模式

“图像”模式绘制图形图像文件。

文件名称输入位于模块顶部。它使您可以在图像文件的列表中进行选择。“LEGO图像”类别中的图像是随 EV3 软件包含的图像文件。“项目图像”类别中列出的图像是已在项目中使用的图像。这样可以在程序或项目中方便地多次使用相同图像。如果清除屏幕为“真”,则会在绘制图像之前清除显示。

X 和 Y 输入指定图像左上角的显示坐标。将使用绘制整个图像所需的空间大小,在下面及此点右侧绘制图像。对于大小适合填充整个显示屏的图像文件,请使用 X = 0 和 Y = 0。

使用的输入:清除屏幕、文件名称、X、Y。

8.“重置屏幕”模式

“重置屏幕”模式使 EV3 程序块显示屏返回运行程序时显示的常规信息屏幕。此屏幕显示程序名称和其他反馈。当在 EV3 程序块上运行程序时,会显示此屏幕,直至程序中的第一个显示模块执行。

9.使显示的项目保持可见

当 EV3 程序结束时,EV3 程序块上的显示屏会清除并返回 EV3 程序块菜单显示。这会擦除程序显示的任何文本或图形。例如,如果程序包含单个显示模块并且其后没有任何内容,则会在程序结束时快速清除显示,这样您便无法查看显示模块的结果。

如果要使显示在程序结束时保持显示,则需要将一个模块添加到程序结束,以避免程序立即结束,如以下示例显示。

示例1

此程序使用等待模块在程序结束时设置 3 秒延迟。这会在程序结束时清除显示之前,使圆圈保持显示 3 秒。

示例2

此程序在程序结束时使用循环使程序永远保持运行。这会使圆圈保持显示,直至通过按压 EV3 程序块上的“返回”按钮来停止程序。

10.显示多个项目

如果要在显示屏上同时显示多个文本或图形项目,请务必不要在各个项目之间清除 EV3 程序块显示。每个显示模块模式都具有清除屏幕输入。如果清除屏幕为“真”,则会在显示项目之前清除整个显示屏。这表示要显示多个项目,必须为每个显示模块(除了第一个)将清除屏幕设置为“伪”。

请参见文本-网格和形状-矩形模式中的编程示例。

11.显示数字

可以通过将数据线连接到显示文本模块的文本输入,在程序中显示数字值。数字数据会由数据线类型转换自动转换为文本(有关更多信息,请参见数据线)。

提示和技巧

从模块顶部的文本输入中选择“连线”可显示可以接受数据线的文本输入。

示例

此程序会在显示屏上连续显示来自颜色传感器的反射光线强度,每四分之一秒更新一次显示。

(二)输入

显示模块的输入指定要显示的文本或图形以及显示方式。可以将输入值直接输入到模块中;或者,可以通过数据线从其他编程模块的输出提供值。

二、变量模块

“变量模块”使您可以在程序中读取或写入变量,还可以创建新变量并进行命名。变量是 EV3 程序块内存中可以存储数据值的位置,可以写入变量以存储数据值。在程序后面部分中,可以从变量进行读取以访问存储的值。

每个变量都具有类型和名称。这些不同类型有数字、逻辑、文本、数字排列和逻辑排列。可以选择变量的名称,这用于标识变量。

有关变量的不同类型的更多信息,请参见数据类型。

在程序运行期间,可以更改变量的值。每次写入变量时,任何以前的值都会擦除并替换为新值。例如,可以使用名为“Max Light”的变量跟踪机器人迄今为止从颜色传感器测量的最高光线强度。每次机器人检测到较高值时,可以将新值写入“Max Light”变量。

(一)添加新变量

要将新变量添加到项目,请执行以下操作:

(1)插入或选择变量模块。

(2)使用模式选择器选择“写入”模式。

(3)选择变量类型(数字、逻辑、文本、数字排列或逻辑排列)。

(4)单击模块顶部的模块文本字段并选择“添加变量”。“新变量”对话框会出现,如下所示。

(5)在“新变量”对话框中,为变量输入名称并单击“确定”。变量名称可以是单个字母、一个单词、几个单词或任何字母和数字序列。

提示和技巧

选择较短变量名称可以在程序中使用变量时更方便地查看整个变量名称。

选择的名称应有助于记住变量含义以及与程序中其他变量的不同之处。

添加了某个变量之后,该变量可在项目中的任何程序中使用。

(6)添加了变量之后,可以在“写入”模式中使用变量模块为变量输入初始值。

(二)写入变量

1.“写入”模式

“写入”模式使您可以选择已添加到程序的变量(请参见添加新变量)并在其中存储值。

要写入变量,请执行以下操作:

(1)使用模式选择器选择“写入”模式。

(2)选择变量的类型。

(3)单击模块文本字段可显示弹出菜单。

(4)选择要使用的变量的名称。

提示和技巧

在从弹出菜单选择变量名称之前,必须从模式选择器选择变量类型。弹出菜单仅列出与所选类型匹配的变量。

(5)现在可以使用值输入将值存储到变量中。可以将值直接输入到值输入中,也可以使用数据线。

提示和技巧

可以按所需次数写入变量,但是只会保留最后一个值。写入变量会擦除以前的变量值并将其替换为新值。

(三)读取变量

1.“读取”模式

“读取”模式使您可以选择已添加到程序的变量(请参见添加新变量 )并获取其中存储的值。

要读取变量,请执行以下操作:

(1)使用模式选择器选择“读取”模式和变量的类型。

(2)单击模块顶部的文本字段以显示弹出菜单,并选择要使用的变量的名称。

提示和技巧

在从弹出菜单选择变量名称之前,必须从模式选择器选择变量类型。弹出菜单仅列出与所选类型匹配的变量。

(3)现在可以从值输出获取变量的值,并通过数据线在程序中使用此值。

提示和技巧

如果读取从未向其写入值的变量,则结果对于数字变量会为 0,对于逻辑变量为“伪”,对于文本变量为空文本,对于数字排列或逻辑排列变量为空排列。

(四)变量使用示例

示例 存储值并在以后使用它

此程序在“写入”模式中使用变量模块将来自颜色传感器的数据值存储在名为“Light”的变量中,然后在“读取”模式中使用变量获取该值并在程序的后面部分中使用它。

此程序旨在使机器人向外驱动并后退。在后退过程中,机器人会在至少与启动时所处的颜色一样深的颜色上停止。

提示和技巧

上面的程序还可以使用较长数据线而不是变量来执行,不过对于较长程序,通过使用变量存储值可以更方便地处理程序。

示例 对触动传感器按压进行计数

此程序对按压触动传感器的次数进行计数,并在 EV3 显示屏上显示计数。它使用名为“Presses”的数字变量跟踪按压触动传感器的次数。

“写入”模式中的变量模块在程序开始时将“Presses”的初始值设置为 0。在循环中,程序在每次触动传感器受到碰撞时将变量中存储的值加 1。实现方式是使用“读取”模式中的变量模块获取当前值,使用数学模块和数据线加 1,然后使用“写入”模式中的变量模块将结果写入回变量。最后,使用另一个“读取”模式中的变量模块获取当前值并进行显示。

(五)输入与输出

在“写入”模式中,变量模块具有单个输入。可以将输入值直接输入到模块中。或者,可以通过数据线从其他编程模块的输出提供值。

在“读取”模式中,变量模块具有单个输出。要使用该输出,请使用数据线将其连接到另一个编程模块。

三、数学模块

数学模块对其输入进行数学计算,然后输出结果。可以对一个或两个输入进行简单数学运算,或输入具有多达四个输入的公式。

▲选择数学运算

通过使用模式选择器选择模式,来选择要使用的数学运算。选择模式之后,可以为输入选择值。可用输入会因模式而异。

(一)简单数学运算模式

简单数学运算模式使用一个或两个输入,通过简单数学运算计算结果。下表中显示了这些模式。

提示和技巧

如果数学运算的输入值形成非法运算(如除以零或是负数的平方根),则输出结果会是错误值。当用作另一个编程模块的输入时,错误值可能解释为零。

示例

此程序从颜色传感器模块的“反射光线强度”输出中减去 50,并使用结果作为电机的“功率”输入。这会使电机在颜色传感器看到深色内容时向后转动,在传感器看到浅色内容时向前转动。

(二)“高级”模式

在“高级”模式中,数学模块可以通过在一个步骤中使用高达四个输入和几个数学运算,来计算数学表达式。

使用数据线将多达四个数字值连接到A 、B 、C 和 D 输入。不需要的输入可以保留为空白或 0。

单击模块顶部的模块文本字段可以文本方式输入要计算的数学表达式。表达式可以包括名为“A”、“B”、“C”和“D”的输入、数字常量(如“50”)和数学符号(如“+”)。还可以使用所显示列表中的函数和附加括号更改运算的顺序。

表达式计算的结果在结果中输出。

示例

在此程序中,数学模块使用来自颜色传感器的输入和两个变量计算电机功率。来自颜色传感器的反射光线强度连线到 A 输入,而名为“Gain”和“Power”的变量用于 B 和 C。数学模块中的表达式“(A-50)×B+C”将光线强度减去 50,将结果乘以“Gain”的值,然后加上“Power”的值。

(三)输入与输出

数学模块的输入提供用于数学计算的值。可以将输入值直接输入到模块中;或者,可以通过数据线从其他编程模块的输出提供输入值。

数学模块的输出提供计算的结果。要使用该输出,请使用数据线将其连接到另一个编程模块。

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

我要反馈