
3.5 数据操作模块组
3.5.1 变量
使用前单击右上角可以新建变量。使用变量模块可以更好地管理数据变化,例如触碰传感器被按了几次,从右下角的数据出(入)口可以输出或输入数据,数据也可以在一开始时直接写入。变量有很多种类型,包括:文本、数字、逻辑、数组。

3.5.2 画图程序
使用变量、程序块按钮、触碰传感器实现的画图程序如下。


画图程序在EV3屏幕上写的6字。

书中所配的资源中有EV3源程序。
用点清屏,设定逻辑变量CLEAN(设置颜色:白色为擦除,黑色为划线),设定变量STEP步长。
设定X的初始坐标为80,Y的初始坐标为60,位置大约在EV3屏幕的中间。把数值给第二个显示模块。用程序块按钮控制圆点的移动,实现画图功能。用触碰按钮改变CLEAN变量为真(白色擦除)。
3.5.3 常量、阵列运算
此程序使用常量模块为三个不同的移动转向模块提供“功率”输入。通过在常量模块中更改单个值,所有三个移动转向模块都会获得更新的功率级别。


常量模块
常量模块允许输入在程序中几个不同位置使用的值。如果更改常量值,则使用常量的所有位置都会获得更新的值。



阵列运算(数组)模块
阵列运算模块对数字排列和逻辑排列数据类型执行运算。可以创建排列、添加元素、读取和写入单个元素,以及获取排列的长度。

5种数据线类型,5种数据线。

3.5.4 阵列实例程序
使用EV3程序块内存中存储的多个值(阵列)驱动基座。


为机器人编写程序,通过识别不同的颜色,选择不同的运动轨迹,通过触动激活机器人运动。
3.5.5 逻辑运算


逻辑运算模块
逻辑运算模块是对其输入的数值进行逻辑运算,然后输出结果。逻辑运算采用为“真”或“伪”的输入,生成“真/伪”输出。可用的逻辑运算有AND、OR、XOR和NOT。


此程序使机器人向前驱动,直至触发了触动传感器或颜色传感器从而检测到黑色。它使用逻辑OR模式将两个传感器模块的输出合并为单个“真”或“伪”结果。“真”结果告知循环结束,然后机器人停止。

直行,当超声波传感器检测的距离为6~25厘米,颜色传感器检测到黑色。都为真,退出循环,电机制动。
3.5.6 数学运算

请使用英文输入法输入公式和字母。
如果使用中文输入法输入公式和字母,输入的公式和字母会无法在程序中运行。因为EV3编程软件不支持中文的字符参数。

比例巡线使用了数学模块的高级模式。
3.5.7 舍入

取整到最接近的整数(四舍五入)
向上取整到最近的整数
向下取整到最近的整数
去尾舍位

舍入模块

4种舍入模式的运行结果。

6.66的向上舍入和向下舍入的运行结果。
3.5.8 比较


比较模块
判断a(选项卡中所选内容)、b是否与实际情况相同,相同为真,不同为伪。


开始后,进入循环。在EV3屏幕上实时显示超声波传感器测量的距离。当距离小于60厘米时,退出循环。说Hello。
3.5.9 范围


范围模块
填好下限(例:0)和上限(例:10)后,选择内部是将测试值在0-10间判定为真,外部是将测试值在0-10间判定为伪,反之也生效。

超声波传感器测量的距离显示在EV3屏幕上,如果数值在20~200之外,则退出循环说Hello。

超声波传感器测量的距离显示在EV3屏幕上,如果数值在20~60之内,则退出循环说Hello。

超声波传感器测量的距离值在10~20之内,基础车向前直走,否则制动。
3.5.10 文本
文本模块可以将多达三个文本字符串合并为一个文本字符串。


文本模块

使用文本合并,在EV3屏幕上同时显示陀螺仪传感器测量的角度,超声波传感器测量的距离,颜色传感器测量的反射光线强度。

3.5.11 随机
随机模块可以输出随机数字或逻辑值。可以使用随机模块的结果,使机器人从不同的动作中随机进行选择。


随机模块

此程序在500至5000Hz的范围内生成一系列连续的随机频率。

此程序使机器人随机选择向左转和向右转(各为50)。