![乐高机器人:EV3与Scratch机器人基础与应用实例](https://wfqqreader-1252317822.image.myqcloud.com/cover/56/36862056/b_36862056.jpg)
3.5 数据操作模块组
3.5.1 变量
使用前单击右上角可以新建变量。使用变量模块可以更好地管理数据变化,例如触碰传感器被按了几次,从右下角的数据出(入)口可以输出或输入数据,数据也可以在一开始时直接写入。变量有很多种类型,包括:文本、数字、逻辑、数组。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/61_01.jpg?sign=1739328526-Ya4mtMt200KChXwfVNzIJo1F3Xr8hhDd-0-90184e83dbf1601977dab11189b8f636)
3.5.2 画图程序
使用变量、程序块按钮、触碰传感器实现的画图程序如下。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/62_01.jpg?sign=1739328526-PyfI3WcTSpuNGYqafVQpcnuhZGtysOP1-0-94a46f0c2e193bad3702bd72f1e294a0)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/62_02.jpg?sign=1739328526-3wDLmzmhGzts9OwHoOfCJsZ7jINEZeim-0-d5ec1e83b3992d82bbf1768adcdc04ea)
画图程序在EV3屏幕上写的6字。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/62_03.jpg?sign=1739328526-sa1H4OUHGuI4Ew0dG3wdz28Egs2MQYJc-0-9fe701c8726013737e49608cda1e8d61)
书中所配的资源中有EV3源程序。
用点清屏,设定逻辑变量CLEAN(设置颜色:白色为擦除,黑色为划线),设定变量STEP步长。
设定X的初始坐标为80,Y的初始坐标为60,位置大约在EV3屏幕的中间。把数值给第二个显示模块。用程序块按钮控制圆点的移动,实现画图功能。用触碰按钮改变CLEAN变量为真(白色擦除)。
3.5.3 常量、阵列运算
此程序使用常量模块为三个不同的移动转向模块提供“功率”输入。通过在常量模块中更改单个值,所有三个移动转向模块都会获得更新的功率级别。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/63_01.jpg?sign=1739328526-4mWr2DUFdtBNgTVdKPDSXFtgo5tzVVKY-0-da53d1136f17311eeffb40a8a0ec7fad)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/63_02.jpg?sign=1739328526-zRxjXncUMVkikSSyZ3Fg4v5eH5s52S68-0-9c84a7d8a93389f43383e26b7516093c)
常量模块
常量模块允许输入在程序中几个不同位置使用的值。如果更改常量值,则使用常量的所有位置都会获得更新的值。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/63_03.jpg?sign=1739328526-ARQlkpcW3gY2unhusQqmnqY9YvGohOD7-0-a3c394729fe04e9c71305481eebb331e)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/63_04.jpg?sign=1739328526-rLvsHol2IHU801tlk4fIWRFYYqXLDoci-0-af21477cf25cd9e6157451ea6172a724)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/63_05.jpg?sign=1739328526-1weTdcFcg7cmWGRvgLUH7x0nOucnA94b-0-d2d3c4d194c79bb3bdfaacb0fbb3777f)
阵列运算(数组)模块
阵列运算模块对数字排列和逻辑排列数据类型执行运算。可以创建排列、添加元素、读取和写入单个元素,以及获取排列的长度。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/63_06.jpg?sign=1739328526-2vjc0XrB003Yz8FO3o327006sRDJ2B5x-0-63a8863e80c844416f348df08fe9b601)
5种数据线类型,5种数据线。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/63_07.jpg?sign=1739328526-EBlPTpiT4AK7oT2aklyp9K3wojR6TOQU-0-aecf14f3932858cf1437aa2a657dd788)
3.5.4 阵列实例程序
使用EV3程序块内存中存储的多个值(阵列)驱动基座。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/64_01.jpg?sign=1739328526-4SRhqNdDnBCdIwAEueJIhTOBDpAAE4wO-0-3dc8dc97f2583513692ca8141e4e4004)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/64_02.jpg?sign=1739328526-IX0jhVMmco3CvoOBJKngaP1oxuOLOeOM-0-9db91688ea6ca198200d36d32c04ba3c)
为机器人编写程序,通过识别不同的颜色,选择不同的运动轨迹,通过触动激活机器人运动。
3.5.5 逻辑运算
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/65_01.jpg?sign=1739328526-tmwuGuWKpW8AB05ukavmnNLV1QWQX4VC-0-78c829f0a757280f395d07687cbbdb24)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/65_02.jpg?sign=1739328526-TFVsle1sGD2hNBobii07b6hupnaUmdth-0-3997b3f4b82856fbb7abb3f2dfde976f)
逻辑运算模块
逻辑运算模块是对其输入的数值进行逻辑运算,然后输出结果。逻辑运算采用为“真”或“伪”的输入,生成“真/伪”输出。可用的逻辑运算有AND、OR、XOR和NOT。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/65_03.jpg?sign=1739328526-mrT5A0BRfKLiw8dKIp7U1ruplY90S4hE-0-96d2edc65ec7c2d3c9017f6958b6d0b4)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/65_04.jpg?sign=1739328526-eIQOhVgKB97hZnFyq6RRxOfMlX6IXLFp-0-06bbe5d5ce7a7cef2ac8663eacf389c8)
此程序使机器人向前驱动,直至触发了触动传感器或颜色传感器从而检测到黑色。它使用逻辑OR模式将两个传感器模块的输出合并为单个“真”或“伪”结果。“真”结果告知循环结束,然后机器人停止。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/65_05.jpg?sign=1739328526-jktdbqopbYr71JR0GQQ5yRyfrYF8K609-0-aececfb89f5b9603684e1ca695fcbc1e)
直行,当超声波传感器检测的距离为6~25厘米,颜色传感器检测到黑色。都为真,退出循环,电机制动。
3.5.6 数学运算
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/66_01.jpg?sign=1739328526-UFSMVGOy81ubUrQ0Fngzx8OJPUnPCnEB-0-32212f375a3c2a1ab6d5a54d0bf113d2)
请使用英文输入法输入公式和字母。
如果使用中文输入法输入公式和字母,输入的公式和字母会无法在程序中运行。因为EV3编程软件不支持中文的字符参数。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/66_02.jpg?sign=1739328526-Lm2BBRPGFZCmv5M2U9cp08qTFV5qVIWA-0-27e1eba4ec0c5a2db131b5e11ffbfa31)
比例巡线使用了数学模块的高级模式。
3.5.7 舍入
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/67_01.jpg?sign=1739328526-cNQ4QeZif82KQ7MWXLyViZgvLOV6dftq-0-c62a2aa643960d548690f4ab0ac16061)
取整到最接近的整数(四舍五入)
向上取整到最近的整数
向下取整到最近的整数
去尾舍位
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/67_02.jpg?sign=1739328526-FdVx0i7Qt44EMnJumJuyxf07n0bbylgA-0-04e6a300106d454a875d0e18142dfaa4)
舍入模块
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/67_03.jpg?sign=1739328526-898SJRSZzyS76fhfA7CR7q3Oqd7ozo1T-0-d8e54877edc7667a9057f56bf30a0a08)
4种舍入模式的运行结果。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/67_04.jpg?sign=1739328526-Ysm4SE7zEa9wUYBOGGSh7pKLbAKagU3V-0-cbb8440ae1385ccf65d4f2bb8ee805da)
6.66的向上舍入和向下舍入的运行结果。
3.5.8 比较
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/68_01.jpg?sign=1739328526-hPGL2iSyIW8OsnSiPpSEOu4MXMgyBgbR-0-2854760836890facd22b8f12289da9cf)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/68_02.jpg?sign=1739328526-rdcCQQNrGpjn2unoqCuuKgJesE9ihumL-0-35e7aca402e9d3a031f150f2874c4d2e)
比较模块
判断a(选项卡中所选内容)、b是否与实际情况相同,相同为真,不同为伪。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/68_03.jpg?sign=1739328526-mgAyYTiqPTjesOTNsXDg2LSHRR1RXXBs-0-6f29b98719226de8fd0516bde09d0d54)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/68_04.jpg?sign=1739328526-mQYZ0nligGNjD9Rz0DL56GjYqP1Hn4mv-0-a847ef37e1c80710bfde62c15a3d6dfa)
开始后,进入循环。在EV3屏幕上实时显示超声波传感器测量的距离。当距离小于60厘米时,退出循环。说Hello。
3.5.9 范围
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/69_01.jpg?sign=1739328526-1KAnobXx9MUlSIUmU0RyfohWTVGEzUdl-0-f37ae8ed4fa328440f463f29c9e8b926)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/69_02.jpg?sign=1739328526-XrpkDfdB6IfdxLUt4kM6weCuqwySO5Ro-0-22a5278ac1ee3714b81cef5fe447ae1a)
范围模块
填好下限(例:0)和上限(例:10)后,选择内部是将测试值在0-10间判定为真,外部是将测试值在0-10间判定为伪,反之也生效。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/69_03.jpg?sign=1739328526-IGALwTrjD7Z8vatx9e8mNYJ7QfNnX9LM-0-4bd6f722cc13b1efecd3f5f7205446fb)
超声波传感器测量的距离显示在EV3屏幕上,如果数值在20~200之外,则退出循环说Hello。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/69_04.jpg?sign=1739328526-zFvug8gp4XDIRyoaT7kZBUcK07vlKqbe-0-e4454b74d1e4a1c8cd202fc247a83523)
超声波传感器测量的距离显示在EV3屏幕上,如果数值在20~60之内,则退出循环说Hello。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/69_05.jpg?sign=1739328526-Xd3vKZYlnQA7tcVvsIQteYo3g5lBZiEd-0-00b6e778b78d95a1bc6a129282fbce61)
超声波传感器测量的距离值在10~20之内,基础车向前直走,否则制动。
3.5.10 文本
文本模块可以将多达三个文本字符串合并为一个文本字符串。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/70_01.jpg?sign=1739328526-cZcaUNhfJ3EtSUASwzI64haBAqU391mK-0-af911e725dc818c9784104cb71df9118)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/70_02.jpg?sign=1739328526-92Trm7iM59nFMWzpvelacP8uqIAztQBT-0-76250eed2d5787de1819bca57131bcda)
文本模块
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/70_03.jpg?sign=1739328526-4XK5UqbFQ4RjAP8hVyOFe3FP79Zx8SGQ-0-11fb8a26b3587e65b2f412381891689d)
使用文本合并,在EV3屏幕上同时显示陀螺仪传感器测量的角度,超声波传感器测量的距离,颜色传感器测量的反射光线强度。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/70_04.jpg?sign=1739328526-Ud7wutiblKpSkhxhNTKBMyKwQEJTNOFv-0-caff674301a4d90892b7a1cdf486a0d3)
3.5.11 随机
随机模块可以输出随机数字或逻辑值。可以使用随机模块的结果,使机器人从不同的动作中随机进行选择。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/71_01.jpg?sign=1739328526-awF7YI2DI073abONNkkS9UpuFJ5EuWLt-0-319f26b3a33fe942323081276956df8d)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/71_02.jpg?sign=1739328526-FQplz0ew5GpmjctKCo7lCtGxQ5QSCt4v-0-6eac476cfd619aa870b13feb030d991f)
随机模块
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/71_03.jpg?sign=1739328526-2Bed7IFrWzAD6DhB7LMcnFpN1zzASyrO-0-ceb9327bff9242f88815adc0bdddf9d3)
此程序在500至5000Hz的范围内生成一系列连续的随机频率。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/71_04.jpg?sign=1739328526-GqplmAVEhLdG5WSGgu6bgC3sZh9esgR4-0-bf3e4d28c134916ac1ea4be73df5b155)
此程序使机器人随机选择向左转和向右转(各为50)。