使用程序块按钮



程序块按钮是 EV3 程序块正面上的五个按钮(左、中、右、上和下)。可以如同传感器一样使用程序块按钮检测是否按压了按钮,以及查明按压了哪个按钮。

可以使用程序块按钮使程序响应按钮按压。例如,可以在按压上和下按钮时分别使机器人手臂举起和放下。
提示和技巧
EV3 上的“返回”按钮不包含在程序块按钮中。按压“返回”按钮会中止正在运行的程序。
程序块按钮还可以跟踪在过去是否按压然后松开了某个按钮。这称为“碰撞”,其工作方式与触动传感器的“碰撞”状态相同。有关更多信息,请参见“了解碰撞”使用触动传感器
程序块按钮数据
程序块按钮可以提供以下数据:
数据类型备注
按钮 ID 数字指示当前按压的按钮:
0 = 无
1 = 左
2 = 中
3 = 右
4 = 上
5 = 下
按压 逻辑对于指定按钮 ID (1-5),如果按压了按钮,则为“真”,否则为“伪”。
松开 逻辑对于指定按钮 ID (1-5),如果按压了按钮,则为“伪”,否则为“真”。
碰撞 逻辑对于指定按钮 ID (1-5),如果在过去按压并松开了按钮,则为“真”。下一次“碰撞”发生因而需要新的按压和松开。
提示和技巧
程序块按钮无法检测同时按压了多个按钮的情况。如果同时按压两个按钮,则一个按钮会覆盖另一个。
程序块按钮使用示例
下面是有关在程序中如何使用程序块按钮的一些示例。
示例 1:按压按钮以继续
此程序使机器人向前驱动一秒,然后显示“Press a Button…”。接下来等待程序块按钮之一受到按压,再向后驱动一秒。此程序将等待模块与“程序块按钮 - 更改”模式结合使用来等待任何程序块按钮受到按压。
示例 2:程序块按钮控制面板
此程序使机器人在左按钮受到按压时向左转弯,在右按钮受到按压时向右转弯。此程序将切换模块与“程序块按钮 - 测量”模式结合使用来查明受到按压的程序块按钮。切换中的三种不同情况使机器人执行以下动作:在左按钮受到按压时向左转弯,在右按钮受到按压时向右转弯,在没有按钮受到按压时停止。会在循环中连续重复进行测试。
提示和技巧
可尝试对切换使用“+”按钮来添加更多情况。例如,可以使机器人在您按压上和下按钮时分别向前和向后驱动。
示例 3:使用程序块按钮控制程序块状态灯颜色
此程序在您按下左按钮时以绿色开启程序块状态灯,在按下中按钮时以橙色开启,在按下右按钮时以红色开启。首先,它使用“程序块按钮 - 比较”模式的切换模块测试左、中或右按钮是否受到按压。如果未受到按压,则程序块状态灯模块会关闭灯。如果这三个按钮中的一个按钮受到按压,则“测量”模式的程序块按钮模块会通过数据线获取受按压按钮的按钮 ID (1-3)。数学模块随后会将此值减去 1,以便可以用作程序块状态灯模块的“颜色”输入 (0-2)。
程序块按钮模块和模式
下表显示可以与程序块按钮一起使用的所有编程模块和模式。
模块模式用途
等待程序块按钮 - 比较等待所选程序块按钮之一受到按压、松开或碰撞。
等待程序块按钮 - 更改等待受按压程序块按钮(按钮 ID)更改。如果在模块开始时未按压任何程序块按钮,则这会等待任何程序块按钮受到按压。
循环程序块按钮重复模块序列,直至所选程序块按钮之一受到按压、松开或碰撞。
切换程序块按钮 - 测量根据按压的程序块按钮在两个或更多模块序列之间进行选择。
切换程序块按钮 - 比较根据是按压、松开还是碰撞了所选程序块按钮之一,在两个模块序列之间进行选择。
程序块按钮测量通过数字数据线获取当前按压的程序块按钮的按钮 ID(如果未按压任何按钮,则为 0)。
程序块按钮比较测试所选程序块按钮之一是否受到按压、松开或碰撞,并通过逻辑数据线获取结果。
程序块按钮
快速链接