数据线使您可以使用来自程序中其他模块的输出值,为编程模块提供输入值。这使您可以在模块之间创建交互,并为机器人创建更复杂的行为。
示例
此程序使用数据线将来自颜色传感器模块的“光线”输出连接到移动转向模块的“功率”输入。这会使机器人驱动的速度由颜色传感器检测到的光线强度确定。该过程在循环中重复执行,以便基于新传感器读数持续更新功率。
提示和技巧
如果尝试对颜色传感器向下指向地面附近的机器人执行上面的程序,则机器人的速度会随其驱动通过不同颜色而更改。
数据线类型
数据线将值从一个模块承载至另一个模块。每条数据线都具有类型,该类型由数据线开始处模块的输出类型确定。这也是数据线承载的值的类型。
数据线、模块输入和模块输出根据其类型具有不同外观,如下图所示。
创建数据线
要创建数据线,请从某个编程模块的输出拖动到另一个编程模块的输入,如以下步骤所示。
步骤 | 动作 | 示例 |
---|---|---|
1 | 从某个模块输出开始 | ![]() |
2 | 从左向右拖动 | ![]() |
3 | 在某个模块输入结束。 | ![]() |
提示和技巧
具有输出(数据线的起始)的模块必须在程序中位于具有输入(数据线的结束)的模块之前。模块输出和模块输入必须具有相同数据类型,或对于数据线转换兼容。
数据线会替换直接输入到模块中的输入值。在上面的示例中,“功率”输入值 50 由数据线替换。移动转向模块现在从数据线获取“功率”输入。
删除数据线
要删除数据线,请单击数据线结束处的模块输入。会删除数据线,并会还原直接输入到模块中的输入值。再次单击模块输入可输入新输入值。
对多条数据线使用模块输出
可以使用模块的输出作为多条数据线的起始点,如下图所示。要再次使用输出,只需拖动另一条数据线。
提示和技巧
不能将多条输入数据线连接到相同输入。
数据线转换
数据线必须连接相同类型的模块输出和模块输入,或是类型必须对于下面允许的自动转换之一兼容。
起始类型 | 结束类型 | 结果 |
---|---|---|
逻辑 | 数字 | 伪 = 0 真 = 1 |
逻辑 | 文本 | 伪 = "0" 真 = "1" |
逻辑 | 逻辑排列 | 包含一个元素的排列 |
逻辑 | 数字排列 | 包含一个元素(0 或 1)的排列 |
数字 | 文本 | 代表数字的文本 (例如,"3.5") |
数字 | 数字排列 | 包含一个元素的排列 |
逻辑排列 | 数字排列 | 具有相同大小并且元素等于 0 或 1 的排列 |
显示数据线值
如果在程序运行时 EV3 程序块连接到计算机(通过 USB、蓝牙或 Wi-Fi),则可以在程序运行时显示数据线的值。要显示数据线值,只需将鼠标光标置于数据线上。值会显示在数据线附近的小窗口中。
示例
在下面的程序中,数据线在获取图像时的值为 30。在此示例中,因为模块处于循环中,所以每当颜色传感器模块执行时,数据线的值都可能更改。显示会持续更新以显示最新值。
提示和技巧
显示数据线值可以帮助了解程序的运行方式。查找与期望不同的值有助于查找程序中的问题原因。例如,如果创建上面的程序但是意外地使用了颜色传感器的“测量 - 颜色”模式而不是“测量 - 反射光线强度”模式,则数据线仅显示范围 0-7 中的值,而不会按预期显示范围 0-100。