![乐高机器人: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=1738927412-Ra1XgcuaDkBU2t1PCqCCbcEHEt1d1JTm-0-4a6ad101759abf53412963a5e836e3d8)
3.5.2 画图程序
使用变量、程序块按钮、触碰传感器实现的画图程序如下。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/62_01.jpg?sign=1738927412-Efj7T1rQVv7nPjtjL9UwUFTQzNIyVGGz-0-a1f530f75a7af209403a6a4cbcc278f9)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/62_02.jpg?sign=1738927412-jbMcMeFMzJZUsLaO0hmkrb3vbYgJTPmA-0-c0fe0262c1357a79b6efa9910ca3db52)
画图程序在EV3屏幕上写的6字。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/62_03.jpg?sign=1738927412-Ok18lX0MD32F2o3vdxoEyb3P8MLoQaS6-0-d303b45231f2c483a49c0532667b35cb)
书中所配的资源中有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=1738927412-s7ynKEJ1AF07hFncSiYi1vKTDerZSu5T-0-b63e300b91f8a88bc3795f9fc6e99037)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/63_02.jpg?sign=1738927412-Qvz1WPW8zXQaql13WYFgy3rkhj8CXszh-0-58f2aeeca0ecfa6a60dcc4d16c56ef16)
常量模块
常量模块允许输入在程序中几个不同位置使用的值。如果更改常量值,则使用常量的所有位置都会获得更新的值。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/63_03.jpg?sign=1738927412-bkOXt7bmGezCbLspwRkWFqFuk7vvAECt-0-04c543b0ad9fb32727d0512f98b8cb32)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/63_04.jpg?sign=1738927412-0gHmlbh7yNbfqrEHO05oHzp4HFoTuxsx-0-b081a822b8bf1abb474753490e0eb418)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/63_05.jpg?sign=1738927412-6OjQubdu4FgfPHQXbzIdRT8uX4wMHAJH-0-61b905121639efd888942f39e64b3458)
阵列运算(数组)模块
阵列运算模块对数字排列和逻辑排列数据类型执行运算。可以创建排列、添加元素、读取和写入单个元素,以及获取排列的长度。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/63_06.jpg?sign=1738927412-ENh0ZNOR9G4LaNfveJql9qRT1uqI8Ma7-0-e33c6ca340abba25a433ca94853f6e07)
5种数据线类型,5种数据线。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/63_07.jpg?sign=1738927412-y16KmXt6C7j7F6JY1rXBvcI27MCxMkzk-0-f6e6f89f178db4c720d59c2302f110ef)
3.5.4 阵列实例程序
使用EV3程序块内存中存储的多个值(阵列)驱动基座。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/64_01.jpg?sign=1738927412-MClXbRQWySEharYWCEdaiLzS2dNxKaMB-0-2d6ce0b4cb1bb808efdcf9aeebe0e3b8)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/64_02.jpg?sign=1738927412-saMU2VHxFNL1VGV0wLFMURYJdWyP4WGS-0-c00b799cafed3cf927a9621c332c83d5)
为机器人编写程序,通过识别不同的颜色,选择不同的运动轨迹,通过触动激活机器人运动。
3.5.5 逻辑运算
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/65_01.jpg?sign=1738927412-iPGqK8KGU0DQkhheEqiSQkHCoqpvecV3-0-16138add496a63409461bb8f5004e66e)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/65_02.jpg?sign=1738927412-MqFVVsjVAsgQEKf5JEhPXWXa2acKYykz-0-7ec81cf421b12979a8c78c3d037b6f03)
逻辑运算模块
逻辑运算模块是对其输入的数值进行逻辑运算,然后输出结果。逻辑运算采用为“真”或“伪”的输入,生成“真/伪”输出。可用的逻辑运算有AND、OR、XOR和NOT。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/65_03.jpg?sign=1738927412-cIGsh498lXj5SxsZTYvhv4n1kruiACys-0-4fd8f52c92675a5925066af10e9f54c5)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/65_04.jpg?sign=1738927412-cZChNUh64HOiIEfDSjEwHOn8FubTN2TS-0-9c7119e1b363277348f7ea473b19689b)
此程序使机器人向前驱动,直至触发了触动传感器或颜色传感器从而检测到黑色。它使用逻辑OR模式将两个传感器模块的输出合并为单个“真”或“伪”结果。“真”结果告知循环结束,然后机器人停止。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/65_05.jpg?sign=1738927412-ufsWAjMRM1Gmd5ivXFfqgQwHEJxzvu4J-0-549a45396d3d6fbee8cc7bc350649f93)
直行,当超声波传感器检测的距离为6~25厘米,颜色传感器检测到黑色。都为真,退出循环,电机制动。
3.5.6 数学运算
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/66_01.jpg?sign=1738927412-Kyg4hce3puRSwIQl3yCmZMFQCoZR0ry1-0-0a195cb0c266750d573980c86895eab3)
请使用英文输入法输入公式和字母。
如果使用中文输入法输入公式和字母,输入的公式和字母会无法在程序中运行。因为EV3编程软件不支持中文的字符参数。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/66_02.jpg?sign=1738927412-Cne95TsdluWxaW39cGqrPrlg5O3WQitl-0-c6b34df7955782ae6e753ff90a138c38)
比例巡线使用了数学模块的高级模式。
3.5.7 舍入
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/67_01.jpg?sign=1738927412-x9LknVj0JCQ6iKboHpmhXRM0IA1jdD1D-0-401fe56f9321202e843ebfc4652385a0)
取整到最接近的整数(四舍五入)
向上取整到最近的整数
向下取整到最近的整数
去尾舍位
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/67_02.jpg?sign=1738927412-qPqUllUB7qHu5AbPzEewDlb0RIkWvU0F-0-6ec452736a2b9a589bd6698cce36df69)
舍入模块
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/67_03.jpg?sign=1738927412-IQ0p6ZDcq0H8k6jsApgrvUerETAqfdXf-0-444bb5fe81d35e0eecb07009a2bcea49)
4种舍入模式的运行结果。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/67_04.jpg?sign=1738927412-ZykrTQg5Bm4oEbFQ8q5MVauLB41E18G7-0-e68800c334bc862dfe16f8289a16c767)
6.66的向上舍入和向下舍入的运行结果。
3.5.8 比较
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/68_01.jpg?sign=1738927412-YbaBZ4g9ziUErKblEWEhgJYFyXLmRCnI-0-1e93d81ba707e091dda16b7601097ab7)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/68_02.jpg?sign=1738927412-LeZMCJOw2UyCbfPQF3r9PkwRnjlthZfC-0-a15167fd2dbb7cb0b271edfdd418091b)
比较模块
判断a(选项卡中所选内容)、b是否与实际情况相同,相同为真,不同为伪。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/68_03.jpg?sign=1738927412-3r7S6y2Md6TZZsIgWVezfq0BOJqGOrYF-0-045c4eb50dd4d2f3990f1b87bc7b5b68)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/68_04.jpg?sign=1738927412-dK7GVwMI2kI6ckuvycPREUfKVOuCswFq-0-550be50d7bbf59933bcf74e6bdcee595)
开始后,进入循环。在EV3屏幕上实时显示超声波传感器测量的距离。当距离小于60厘米时,退出循环。说Hello。
3.5.9 范围
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/69_01.jpg?sign=1738927412-hbcUnDXa8D9nVrXAkuw0D1CHYTFw8L6I-0-5998369749192d09e98e6c12ffb18061)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/69_02.jpg?sign=1738927412-qw9bqD2nXetgbb9k4lppnZpdg6NvzhGO-0-32cbcd0ecb63f0ef21149694863d825f)
范围模块
填好下限(例:0)和上限(例:10)后,选择内部是将测试值在0-10间判定为真,外部是将测试值在0-10间判定为伪,反之也生效。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/69_03.jpg?sign=1738927412-BD6DZak1DCww5FbDZkOc3kC3TjKhgksS-0-d7c112a60d99812b70e59704713857fb)
超声波传感器测量的距离显示在EV3屏幕上,如果数值在20~200之外,则退出循环说Hello。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/69_04.jpg?sign=1738927412-kJ45SPxsGlAbx67ami8vv75csDTfG2IH-0-e38c301300f545fb32a663c9cb45133d)
超声波传感器测量的距离显示在EV3屏幕上,如果数值在20~60之内,则退出循环说Hello。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/69_05.jpg?sign=1738927412-6PReFNoXFSIVX3fuOwZNON1hf3bFT10b-0-53636ef0bae96dae8fc64d1e1d666262)
超声波传感器测量的距离值在10~20之内,基础车向前直走,否则制动。
3.5.10 文本
文本模块可以将多达三个文本字符串合并为一个文本字符串。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/70_01.jpg?sign=1738927412-pxcaCMEjIKu4Kph2etP05IKDajmNhesC-0-4071824c0fa43c514f97f8db782be83a)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/70_02.jpg?sign=1738927412-MOy57j4bfLsfMwdIRQa1A1RjeB4bhLoz-0-60510b45bf79cce862527141635cdafe)
文本模块
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/70_03.jpg?sign=1738927412-9IqIViITD52fZFL128WFK50fpXUoVRfj-0-ca9c1a77b3f59d7d91a438ac40adc4cb)
使用文本合并,在EV3屏幕上同时显示陀螺仪传感器测量的角度,超声波传感器测量的距离,颜色传感器测量的反射光线强度。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/70_04.jpg?sign=1738927412-Z4vGjFTuCgSrWtAmrsYATXUaCPGfwg2R-0-6ea43b65c763f540a4cc8131c5b9e2df)
3.5.11 随机
随机模块可以输出随机数字或逻辑值。可以使用随机模块的结果,使机器人从不同的动作中随机进行选择。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/71_01.jpg?sign=1738927412-FHSFe5f6jHqs3JOYHEq4OHv6jQOZhoyR-0-c6a85dafaeba58afe10e4ca05fbe3df1)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/71_02.jpg?sign=1738927412-rRCgHzuvRHXwIb6Jjhq5Dh0BAPTuC60M-0-89b0af71f250900093876030529a0291)
随机模块
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/71_03.jpg?sign=1738927412-ePArb7EuEO5nxKOAngFFuLyekODmVZOP-0-411929b67233dcea63df81cd4dfaaeeb)
此程序在500至5000Hz的范围内生成一系列连续的随机频率。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/71_04.jpg?sign=1738927412-yawbRkuN6eaa54YxQtf3l76S6XK5XWC2-0-6bf83d57c1fd869eb3aa669532270d62)
此程序使机器人随机选择向左转和向右转(各为50)。