![乐高机器人:EV3与Scratch机器人基础与应用实例](https://wfqqreader-1252317822.image.myqcloud.com/cover/56/36862056/b_36862056.jpg)
3.6 高级模块组件
3.6.1 文件读写
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/72_01.jpg?sign=1739288518-SlN6kGQIyWbdCdoWqF7DrGVxlUTHS5x1-0-300b9e90e08ba3193bd3515f6792e3a7)
文件读写模块
文件读写模块使您可以对EV3程序块上的文件读取和写入数据。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/72_02.jpg?sign=1739288518-Be29zG0j9GnnVC8AO1Tzz8jgRsj7GwY0-0-24fe04eeb06eb9563975f2d94e0dcf08)
写入的新数据都会按顺序排在原数据的后面,文件中的数据只能按顺序从第一个数据读取。文件关闭前请进行保存。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/72_03.jpg?sign=1739288518-TCLKTFHQNCvnMMjrZKRGQRzzyRlVVfw8-0-a5ba5cf6a7c7c4b19ba0d3d2669adfb6)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/72_04.jpg?sign=1739288518-MKSOoV4eN9fV17VSANn3vJBR9jHayhWt-0-a18273d62ef4bc96721a4495061b2b64)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/72_05.jpg?sign=1739288518-O9y2E9Gh2q8Rv1vNR42yp8JETbzjfbsT-0-b4d5ea4a4530aa46a44751741ce20340)
超声波测量三次距离,把三个数值写入文件读写。读出三个数值并显示在EV3屏幕上。
3.6.2 信息传递
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/73_01.jpg?sign=1739288518-NPnwmXFmyuKcIUJI4ogUnndfLYaIzTY4-0-cb73e13fc8e2e751fe1c55e959f92a35)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/73_02.jpg?sign=1739288518-KmHnNhmWKratskcrF9ZlPoZroX1ZMFCa-0-a5491c7a564fc74e1dca8567f47eee99)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/73_03.jpg?sign=1739288518-cgJspN4YBFBuvCbTuoP0i1KN9EMM5xS8-0-03c054fc8584fbec62a3269c9ea972e7)
消息传递模块
消息传递模块用于在EV3程序块之间发送蓝牙消息。要发送或接收消息,必须先通过程序块蓝牙菜单或通过蓝牙连接模块连接EV3程序块。
用蓝牙连接好两个程序块,把发送程序、接收程序分别下载到对应的程序块里。就可以用一个EV3程序块遥控另一个EV3程序块了。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/73_04.jpg?sign=1739288518-bPBGeamvV3jErA3lroTSwNBBPek7e2cO-0-19067c2a02b89482980be2eac2668fa3)
针对两个程序块选择“设置”选项卡,并打开“蓝牙”菜单。
互相搜索到对应程序块后,选择蓝牙连接。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/73_05.jpg?sign=1739288518-M3N0lgbfNkj8ym9grrfQpGakYBW187Yp-0-7a8c2547a81c94eb9429b89c54908b57)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/73_06.jpg?sign=1739288518-725asjl2IGvb9rV3HRr4CUgBLuLkoyy9-0-b201617c3d81722060c942ce85a8e6fd)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/73_07.jpg?sign=1739288518-yCcbyeQrCQ6qhoJAMujpVBcMH8VlRGwk-0-f5a7a4f0c70ae3caee6584585ec52da1)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/73_08.jpg?sign=1739288518-FnejrGQqXlCzwmYraVkTCKYwkPzvzKRm-0-ed4c0c69de9173d6a73b4c44cb7ed64d)
3.6.3 蓝牙连接
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/74_01.jpg?sign=1739288518-Kuq9zveIybH0JOLOVoMTvH83bRV859Yx-0-ec838c8ce5768fc13965f0709562e1d7)
使用蓝牙连接模块的前提条件是:对应的程序块必须打开蓝牙,在蓝牙搜索列表里互相都有蓝牙连接的历史记录(就是程序块之间互相都成功建立过蓝牙连接)。如果没有蓝牙连接的历史记录,蓝牙连接模块有可能会失败,导致程序错误。
一个主EV3程序块可以连接到多达7个从EV3程序块。主EV3程序块可以向每个从EV3程序块发送消息。但是从EV3程序块只能将消息发送回主EV3程序块。从EV3程序块不能直接向其他从EV3程序块发送消息。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/74_02.jpg?sign=1739288518-hOFKOCm30oX66jGVcmxHrpiiPCfBGXf6-0-ed18d917c9ba04901e6bf43f82cc8d45)
建立蓝牙连接的时候,请注意程序块的名字要写正确。消息传递模块的程序块名字要写正确。对应到正确的程序块和消息接收模块。
3.6.4 未校准电机
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/75_01.jpg?sign=1739288518-DZyP3quxgh2VSO8UFyujIrhHuS09DJRm-0-6bb7cf5350ee776bf4ddc1df1db756b2)
未校准电机模块
与常规中型电机模块和大型电机模块不同,未调整电机模块不包括自动电机控制。这表示不会包括任何针对电机功率的自动调整。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/75_02.jpg?sign=1739288518-P6T6igjbcqf3HuvnOBZ2vxs4VAvAzs6m-0-b881f664e1f6ad6aae3c6cb7797cb413)
这是实时显示A,B电机功率的程序。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/75_03.jpg?sign=1739288518-xizw7hZ5y3RjBRhUMajXrb5NjIY5LbDl-0-33ec444666c8dbc242382af403dc324f)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/75_04.jpg?sign=1739288518-xej0ikDl6EgmSWoAzckwMpIOoY0A9zSM-0-5246c093cd3d0e4d8b162925263804af)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/75_05.jpg?sign=1739288518-Hcf8mHoApSw1A1LDSwqNzQAyrCDNj7st-0-bf72e8035056efe0cf4d13bbbc39414c)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/75_06.jpg?sign=1739288518-x2SfN9CpFxL85YSnpspMDewItZ1rze9i-0-6979537fda620bcb5dfeac7f7c5bfd4f)
这是官方平衡小子的大型电机控制程序,使用了未校准电机模块控制平衡。
3.6.5 电机反转、停止
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/76_01.jpg?sign=1739288518-us0i9W3Ns4w6FWZpSptbsQslniN7aI43-0-b9e4697aa8538f71cd864e6b1cae6e01)
反转电机模块
反转电机模块会更改电机的旋转方向。在反转电机方向时,通常使电机顺时针转动的编程模块会改为使电机逆时针转动。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/76_02.jpg?sign=1739288518-T2GnRixDfG5DajPF6wVQrKSLjAocMS7v-0-4f8c601d0edc27f249f818d8c7c9241c)
B电机正转1圈,A电机反转1圈,A电机正转一圈,循环。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/76_03.jpg?sign=1739288518-1acV86TEPpb8M1W8Gn9yMPQ7Pm0ezXaB-0-f60720f450dacd3a2906a58585e506c6)
停止模块
停止模块会立即终止所有编程模块序列并结束程序。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/76_04.jpg?sign=1739288518-F80g5Grqw8jTyG38gkl2kYLODkkylpw1-0-1e023d3006cfe61a54940966ef18b1ab)
在EV3屏幕中间显示计时器的数值,程序块的红灯闪烁。按下程序块按钮(上),停止运行整个程序。
3.6.6 数据日志、原始传感器值
在EV3屏幕上同时显示端口1、2、3、4的传感器原始数值,并使用数据日志模块保存到EV3程序块里,生成一个记录文件MyData。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/77_01.jpg?sign=1739288518-1pSaFfARcvpknjqMDKVS4qqt5UCScg5B-0-9c26926e07bc7b486b659ff39fd3b2eb)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/77_02.jpg?sign=1739288518-QUHe5WMjy2oTkDq8hexyVid7rX33Glfl-0-a0e7e35445780ebe7e43520a1fabe611)
数据日志模块
数据日志模块用于收集和保存来自传感器的数据。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/77_03.jpg?sign=1739288518-ipsZgsJrcSZgdBFJk5dJeIqIRpiJkbRu-0-3ac287811a427debc52062a2fcf5b67c)
原始传感器值模块
原始传感器值模块输出未处理的传感器读数,这是处于范围0到4095中的值。原始传感器值模块只有一种模式。
3.6.7 注释
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/77_04.jpg?sign=1739288518-84G8qkW1ULNUNKQOIuHhk6v9IYtGuHut-0-0d4f5819857d518890a8ed4d5d80390a)
注释模块
可使用注释模块在程序中写注释。该模块并非编程模块,也就是说没有任何可编程操作与其关联。该模块通常用于对后续的模块以及预期的操作进行解释。
3.6.8 数据线
使用多任务驱动小车,并播放声音。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/78_01.jpg?sign=1739288518-GAQnxBJ8voWn2I5hkOhxi4EwneCm7ezZ-0-f7f34acdc6681d16cdd2aa6faf8c7b21)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/78_02.jpg?sign=1739288518-vZvsiB7Je4HIMpnjx1CBMjGlb9OYMVh8-0-05ca5a28326ab52503070bd92ef6bd07)
数据线:实时显示超声波测量的距离。当距离小于6厘米时退出循环,播放Hello。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/78_03.jpg?sign=1739288518-HaDFPLpQrDyAPuaJQ8SDX4cWPSY1EUc6-0-a8b9285d788731b143c2e1a56e847bb3)
使用陀螺仪的角度值,实时控制EV3文字在屏幕上左右移动。
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/78_04.jpg?sign=1739288518-QofzJh0qDSYDCfQsd8CB2ufQGY3UAQLw-0-720fa7f6f51f90c5dd8c3ea757c2a289)
![](https://epubservercos.yuewen.com/54B5A3/19549638401509406/epubprivate/OEBPS/Images/78_05.jpg?sign=1739288518-p7GUGTZZejFLUicc0o9jmufZFwlfe8ob-0-01d5e02455e4ef46036227a4623f727b)
超声波传感器检测的距离值,实时改变矩形的长度。