导入自定义模块syntaxerror: invalid syntax_乐高机器人

2023-11-04

模块功能讲解,只剩下高级模块和自定义模块未做说明了,今天一起讲完,了解了模块的功能之后,需要通过实际的运用才能知道不同模块的功能差异,下期谈谈几个实际应用的案例。

-------- {一、高级模块} --------- (一)、文件读写

这个模块的功能在于将运行过程中产生的数据存储到EV3主机本地,可以跨越程序完成数据的读取和修改(就是本次程序运行中产生的文件,后面的程序运行过程中可以调用),它有四个模式,功能如下:

读取:读取数字或者文本,可以文本的形式读取数字,但是以数字的形式读取文本会显示0。一次可读取文件的一行,从开头开始读取,每读取一次往后移动一行,如果到达文件的最后一行,输出将为 0或者空白(数字形式读取到末尾输出0、文本形式读取到末尾输出空白)。

写入:往指定的文件末尾写入文本,如果文件不存在会新建一个文件,通过内存浏览器可以看到并导出。

删除:将指定的文件从EV3主机内存中移除。

关闭:下次读取将从文件开头开始读取,但是写入还是从文件末尾写入。

767e2ecda329245484a28cbb43bf5c0a.png

下面通过一段程序运行的结果说明这个模块的功能:

99688f6ff8b9e681ea6a4fe63f3c4fcd.png

程序运行结果

861aeccfde8ffd37a98de11cf41b19fc.png

程序解读:删除文件abc(方便重复运行),清除屏幕,往abc文件中写入循环索引和逗号,重复执行3次,运行完成后文件内的内容为(0,1,2,),按确认键从开头以文本形式读取文件内容,重复7次,文本和数字都会正常显示,读取到文件末尾时会显示空白,所以屏幕显示的第一行逗号后面有空白。

关闭文件,文件末尾写入9,(运行到此处时文件的内容(长度为7)为0,1,2,9),按确认键以数字形式读取内容,并显示在屏幕上,重复运行8次,文本和空白都会显示为0,所以最后的结果是00102090。

需要特别注意的是,每次往文件内写入内容后,加下来的读出会从文件的开头开始读取,相当于写入之后进行了一次关闭,所以上面的程序中去掉关闭模块,运行效果不变,但是如果同时去掉了后面的写入9,后面输出的结果会是8个0,因为文件已经读取到末尾。

(二)、数据日志

这个模块可以按照指定的采样频率测量一个或者多个传感器的参数并存储在文件中,它的关键参数有速率(1-1000)和速率单位(0-每秒采样,1-采样时间间隔)它有四个模式,功能如下:

开启时间:可以选择秒或者分钟

开启:开始数据收集,然后立即继续执行到程序中的下一个模块

单一测量:收集运行到这个模块时刻,对应传感器的单一数据

停止:停止数据收集

271f4ec203da8b81aa9ce523cca23dba.png e6f7b78f914b4d258cd4dde724875f08.png 12d3de6080f8fd36db6f3fe0fd5d9b12.png

这个模块基本不使用,简单测试之后发现他可以保存一段时间内传感器的参数值,并且以图形的形式显示出来,更多的是在实验部分和程序运行过程中完成数据的收集,比赛中可以实时监测机器人的状态(大白老师提示补充948616d3d94b7961b9b34f700d62db66.png),更多功能和用法期待熟悉的老师补充6a736ae0442f71965f86d74ad4d1a51c.png

(三)、消息传递

这个模块主要完成数据在已经蓝牙连接的多个主机之间的传递,他有三个模式:发送、接收和比较。

右上角的内容为消息的标题,发送和接收、比较需要有同样的消息标题才能正常完成数值的传递,在两个主机的蓝牙已经连接的情况下,可以省去接收程序块名称的输入,通过这种方式可以把一个消息发送给多个已经进行蓝牙连接的主机,实现信息的广播。

0790198445e4c2dbe8caecde71afa576.png

比较模式下可以对接收到的文本、数字和逻辑进行比较,并输出比较结果,示例程序如下:

发送端: EV3可以同时连接多个主机进行消息传递 909763d71bb22aacf3e9df63e7163ebf.png 接收端: 84fa16b32954f2e61d3bce7ad6f7cd5d.png 运行视频: (四)、蓝牙连接

这个模块有四个模式可选择(开启、关闭、创建、清除),具体功能如下:

3e53217f0c1bc0a7f3640809b6746397.png

开启、关闭:可以利用开启、关闭模式,控制主机蓝牙的开关状态。

创建:创建模式可以完成主机和与手动匹配过的主机的自动连接,连接对象的名称,可以通过下拉的方式获取,如果两个主机没有进行过匹配,直接在创建时输入主机名称,运行过程中会报错。

3f7d995901c4ebaf4d9d7660dabd45e1.png

清除:清除模式可以移除匹配过的对象,清除之后再次连接需要重新匹配。

(五)、保持活动

这个模块可以输出主机保持活动至睡眠的持续时间(查看睡眠设置),也可以用来让主机始终保持活动状态,不仅如此休眠模式。

比如设置主机两分钟后进入休眠,那么运行过程中如果程序运行时间超过两分钟,主机就会进入休眠状态,但是使用了保持活动模块之后可以重置睡眠计时器。

2a66d9886503f2e21ea1d0d33709ec1f.png

在设置主机的休眠时间为零分钟之后,运行下面这段程序,主机会在程序的运行过程中休眠关机,但是上面那段程序中,每隔110秒主机的睡眠计时器会被重置,程序在运行的过程中主机不会出现休眠。

(六)、原始传感器值

这个模块可以输出指定端口的原始传感器值,多用于没有现成编程模块的第三方传感器,手上没有第三方传感器,所以测试不了36c9d5a8c8f6ae48a2633c8ad61fd0ae.png

d3485418bfd7b5091d9ef5e49c9cd234.png (七)、未校准电机

这个模块可以控制中型电机或者大型电机运动,它跟中型电机和大型电机模块的区别在于,使用未校准电机模块控制的电机,会按照指定的功率转动,但是在遇到较大的阻力时,会自动将功率降至0,防止电机转动过渡,从而保护电机。

普通的中型电机和大型电机模块会检测电机的运行速度是否和设定的功率一致,并且会在电机运动功率低于目标功率时,加大电机的运转功率。

b9b44c19ae788aeadf92a6e72366ac5c.png (八)、反转电机

这个模块的功能在于不改变电机功率的情况下,改变电机的转动方向,当反转为真时,这个模块后面的电机控制模块运行后,电机的转动方向都会跟正常的方向相反,当运行反转为假时,电机的转动方向才会恢复正常。

这个模块可以用在满足一定条件电机转动方向需要改变的情况,或者电机倒置情况下想保持原有的操作习惯时,比如:运动到边界返回。7630a30ae2a4914bb4bdda59945ed2fb.png

这段程序运行的效果是,电机正转1秒,反转,按下左键,反转,按下右键正转,按下左键,反转1秒,反转关闭,保持正转,按下左键,正转,按下右键反转。

(九)、停止程序

这个模块左侧可以连接序列线,右侧为弧形,不能接后续的模块,当程序运行到这个模块时,程序会中止。

ec6a2997858720c2e50fecd2af9825a8.png (十)、注释

EV3的注释有两种存在形式,模块中的注释方便进行简短的说明(框子的大小不可调整,输入内容过多时不方便阅读),模块外的注释更适合做大篇幅的说明,可以调整框体的大小。

0060acdef278a6b26d9b040af89825b5.png c8fead1dd36fff67d2394660a155f9b7.png -------- {二、自定义模块} ---------

自定义模块的存在可以简化程序,减低编程的工作量,提升打开程序的速度,避免程序太大打不开的问题,并且通过自定义模块处理的程序,更容易被阅读,它可以看做是将一个程序段打包放入了一个模块中。

(一)、创建

举个使用自定义模块的例子,使用中型电机驱动车体运动时,车体在前进和后退的过程中,两个电机的功率不同号,在实际的使用过程中经常会出现功率设定的错误,这个时候我们就可以创建一个可以同时控制两个中型电机转动的自定义模块。

1、编写并选中要封装的程序段(不要选中开始) 355e3a0426aefe505a0b2404eec413e0.png 2、工具——我的模块创建器 712f077e1635a88f12509dfe62980828.png 3、图标选择及参数设定

选择图标,输入名称(只能由字母、数字下划线组成)和程序描述(方便阅读和使用,可以是中文哦)

3a19f2587d1c77afc46cb32190ef6143.png

参数图标界面可以为条件的参数选择图标,建议选择时跟参数的用途或者类型匹配,(论坛有添加自定义图标的教程,感兴趣的可以去论坛挖坟)控制A和D端口电机的转动,图标就选了a和d。

9164ca170ef58579f37fdb29f9fd03fc.png

参数设置界面可以编辑参数的名称、类型、数值范围、默认值和参数的外观。

09f59fec308c3b19eda907755b043155.png

完成了相关设定之后可以点击右下角的完成按钮,完成自定义模块的创建。

创建时a和d的类型为输入,motor模块的内部就会得到a和d两个输出,需要手动完成这两个数据的分配。如果创建motor时选择了一个参数作为输出,那么这个模块的内部就有一个输出需要提供数据。

4bcf3a65c46708c829bd38ed703a1efd.png 87ffeb1241f0cbb9acbab1e4d8963e15.png

完成了参数的设定和连接动作之后,这个自定义模块才算基本完成。

(二)、自定义模块的使用和导出、导入 1、使用: 创建自定义模块时,会在原程序段的位置生成一个自定义模块,想要重复利用的话,可以在最后一个抽屉中拖拽,拖拽出来的参数会为设定的默认值。 687ff24879c61dbd6af612f266c339ae.png

光标移动到参数上时,可以看到参数名称。

8e34faa91e3324b4e7bde11a27363088.png 2、导出和导入: 会重复使用到的自定义模块可以导出之后单独保存,后续需要使用的时候不用重新编辑直接导入即可。

在项目属性(小扳手)界面可以看到这个项目下的子程序、声音、图像、变量、我的模块和可导出的项目,其中子程序和自定义模块是可以导出的。

选中需要导出的自定义模块就可以导出到指定的文件目录下。

aad965537c2700806e7db72329f79970.png

点击下面的导入按钮,可以导入之前保存的自定义模块和子程序,扩展名都是.ev3s

0cc673805b38d2890a9a352c6ac73473.png

(三)、自定义模块修改

自定义模块的修改可以双击拖拽出来的自定义模块或者点击模块左上角的齿轮按钮。如果只是改变自定义模块的内容,双击即可,还有更多的需求(改名称、参数、默认值、类型等)就点击编辑按钮。

6f2f48a67135785ac4b2b0d5dc2743ad.png 425e86b0e6b04012dbef800ec58a7e1e.png

调整完之后点击完成会进入程序段编辑界面

a66692f9b50174c16689a22456ca5b3b.png 343a23160129d2562ff7e9305b032aeb.png c0c012beff6297f956b0469c441b3667.png

修改完之后就得到你想要的自定义模块了,所以如果创建过程中有失误的地方可以使用编辑功能重新调整。

更多精彩内容,欢迎持续关注。

声明:转载自公众号“LCR乐工坊”。

◆◆ 精彩回顾 ◆◆

河南全省学校推广人工智能教育

8477697e968b64fc324cece5f3b82b32.png

◆◆ 扫码关注◆◆

关注公众号,更多精彩

0d7d3ae676975abd93505566f587470a.png◆◆ 知识社群◆◆

加入知识社,更多干货!

a9247617a4847d692998d7ca9a039c19.png
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

导入自定义模块syntaxerror: invalid syntax_乐高机器人 的相关文章

  • 页面中满屏水印

    1 前言 现在市面上 有很多APP在一些关键页面上会有水印 水印一般都是一些身份相关的信息 这样可以保证截屏后的图片具有识别性 能够知道这张截图是谁截取的 2 具体实现 为了能够方便地在任意页面上加水印 所以应该采取用Java代码来实现 而
  • GDB调试

    前言 C 聊天服务器项目加上数据库连接池时出了bug 可我不会在Linux环境下调试 浪费了很多时间 虽然最后将这个bug解决了 但是这给了我一个警钟 必须要会GDB的简单使用 我将复现bug 使用GDB一步步地将bug揪出来 其实这个bu
  • 一文读懂微服务架构的分解设计!

    点击上方 Java基基 选择 设为星标 做积极的人 而不是积极废人 每天 14 00 更新文章 每天掉亿点点头发 源码精品专栏 原创 Java 2021 超神之路 很肝 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框
  • 使用 freeMarker 生成 word 遇到的问题

    1 循环集合生成表格后 生成的表格连在一起 解决方法 使用xml中的分页符
  • 解决方案:AttributeError: ‘NoneType‘ object has no attribute ‘write‘

    目前因为在制造型企业 python的服务使用flask开发 打包部署的方式是使用pyinstaller打包成exe程序 然后部署 但是使用pip安装了版本是5 7 0的以后 打包部署启动的时候就报错如下 Traceback most rec
  • C++ QT 上传图片至mysql数据库

    以下是一个简单的C QT上传图片至MySQL数据库的代码示例 include
  • Android.mk 文件语法详解

    0 Android mk简介 Android mk文件用来告知NDK Build 系统关于Source的信息 Android mk将是GNU Makefile的一部分 且将被Build System解析一次或多次 所以 请尽量少的在Andr
  • linux下quartus ii 安装心酸之路,解决modelsim-altera无法进行RTL仿真的问题

    这是我第一次认真的记录一下我安装的quartusii的心酸的过程 现在我只把我不断尝试最终成功的经历记录如下 一开始先下载安装包 我下载的是官网的prime版本 https download altera com akdlm softwar
  • 压电阀控制器设计—思考总结篇

    此篇主要是总结一下这一年左右时间设计的压电阀控制器心得 以及未来压电阀发展趋势的讨论 控制设计心得 最初接手设计压电阀工作作为硕士的毕业课题 也很紧张忐忑 因为之前基本没怎么接触这个领域 掌握的设计资源也基本为无 所以基本是一个从零开始的造
  • Flutter 图片加载

    内容简介 Flutter图片加载方式 网络图片加载源码流程跟踪 特别提到的优化点 本篇文章你将获得 1 Flutter 图片加载方式 2 Flutter 图片加载源码实现流程 3 Flutter 图片加载优化点有什么 Flutter Ima
  • xmanager - xstart - The X11 forwarding request was rejected

    安装xmanager 启动xstart的时候报错 The X11 forwarding request was rejected 查询了下 ssh的设置参数都正常 再次重装了下桌面环境 就恢复了 解决办法 在linux 机器上执行语句 yu
  • eclipse开发运行C++程序(新手入门详细教程)

    eclipse有好几种IDE 先说两种 一种是eclipse IDE for java 一种是eclipse IDE for c eclipse IDE for java下载地址 https www eclipse org download
  • 安装mlxtend_利用mlxtend进行数据关联分析

    guan 大数据挖掘最深入人心的一个故事应该是 啤酒与尿布 这个规律就是用关联分析发现的 今天我们就来点关联分析 刚刚学到的 现学现分享 下面假设是某超市的交易记录 我编造的 基本概念 我们在关联分析之前先了解几个基本概念 找出频繁一起出现
  • 【洛谷 P1328】[NOIP2014 提高组] 生活大爆炸版石头剪刀布 题解(模拟+向量)

    NOIP2014 提高组 生活大爆炸版石头剪刀布 题目描述 石头剪刀布是常见的猜拳游戏 石头胜剪刀 剪刀胜布 布胜石头 如果两个人出拳一样 则不分胜负 在 生活大爆炸 第二季第 8 集中出现了一种石头剪刀布的升级版游戏 升级版游戏在传统的石
  • [Flex]在TextArea中嵌入圖像

    TextArea的htmlText支持多種html標簽 如 a b br font img 等 這裏使用 img 標簽來將圖片嵌入到TextArea中 img 標簽可用于嵌入JPEG GIF PNG及SWF等媒體文件到文本框中 文本會自動分
  • pads更新原理图后,pcb文件出现* Part nameXXX not found解决方法

    方法 MAX Layers
  • 思科 BroadWorks 受严重的认证绕过漏洞影响

    聚焦源代码安全 网罗国内外最新资讯 编译 代码卫士 思科BroadWorks Application Delivery Plaftform 和BroadWorks Xtended Services Platform 受一个严重漏洞 CVE
  • Anacoda3中成功配置Tesseract-OCR实现OCR文字识别超详细教程!!(win7、win10)

    Anacoda3中成功配置Tesseract OCR Tesseract OCR简介 安装及配置环境步骤 1 在Anaconda虚拟环境中安装pytesseract第三方库 2 下载tesseract ocr安装包并安装 3 环境配置 检验
  • 图像知识 太经典 膜拜

    图像知识 图形图像 图形设备和系统 图形文件的显示 图形文件的格式 WINDOWS编程基础 WINDOWS图像编程 动画技术 三维世界 图形图像 传统的电脑只能处理文字 数字 最多是简单的图形 近年来 随着电脑硬件技术的飞速发展和更新 使得

随机推荐

  • 三冲IPO的思派健康如何承载腾讯的互联网医疗梦?

    腾讯在互联网医疗领域的 大将 思派健康10月27日向港交所主板递交第三次上市申请 在2021年8月6日和2022年2月25日两次 折戟 港交所后 此次能否如愿以偿仍未可知 我国当前正步入老龄化社会 慢性病人口增加 市场对医疗健康方面的需求不
  • 十秒带你了解python程序结构

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 前言 Python中有三种程序结构 顺序结构 分支结构 循环结构 1 顺序结构 pyth
  • 【分布式】红包秒杀系统、高并发安全分布式锁

    分布式 内容管理 业务Intro 业务模块划分 数据库表设计 开发流程 红包金额随机生成算法 Monte Carlo 方法 发红包模块 EnableAsync 多线程异步 抢红包模块 并发测试 Jmeter压力测试高并发下抢红包 并发安全问
  • python之面向对象编程

    最近阅读到了一篇关于面向对象编程和面向过程编程解释说明的文章 觉得写的通俗易懂 文章链接如下 漫画 如何通俗易懂地解释面向对象思想 但是该文章举的例子是用Java 故在此我按照我的理解 针对python 梳理一下面向对象编程 一 面向对象编
  • 微信小程序image组件的使用

    image属性说明 属性 类型 默认值 必填 说明 src string 否 图片资源地址 mode string scaleToFill 否 图片裁剪 缩放的模式 webp string false 否 默认不解析 webP 格式 只支持
  • java 生成excel下载_java生成excel并下载功能

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 HttpServletRequest request ServletActionContext getRequest projectId long Integer parseInt reques
  • 奇安信和深信服哪个好_网络安全头部公司全面比较

    管理 网络安全头部公司全面比较 秋名山藤原 2019 06 10 08 47 发布 选取的样本包括启明星辰 绿盟科技 奇安信 天融信 深信服 本人很看好的公司安恒信息还在静默期 就不写了 后面上市了再统一到一个表里面 关于下表有几点说明 基
  • 微电网优化调度(风、光、储能、柴油机)(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 目录 1 概述 2 运行结果 3 参考文献 4 Python代码实现 详细文章 数据 文献来源 Python代码复现之 1 概述 电力对
  • Spring框架(四)Spring的Bean作用域和生命周期

    目录 一 作用域定义 二 同 类型多个 Bean 报错的解决办法 三 Bean的6种作用域 1 singleton 单例作用域 2 prototype 原型作用域 多例作用域 3 request 请求作用域 4 session 回话作用域
  • qsort的函数的使用。

    目录 一 qsort函数的定义 二 qsort的应用 1 比较数字大小 2 比较结构体类型 1 基于年龄排序 2 基于名字排序 三 基于冒泡函数自定义qsort函数 编辑 一 qsort函数的定义 使用qsort函数要加上头文件 inclu
  • 车载测试面试题,进军车企必看

    随着新能源汽车的普及 相关产业也会越来越多 很多车企都开始做 自动驾驶 了 例如 奔驰 宝马 奥迪 沃尔沃 比亚迪等等都已经开始启动 在未来 中国智能网联汽车产业将迎来爆发式增长 今天给大家分享一波车载测试相关面试题 准备进军车企的朋友可以
  • Redis3.0的主从、集群高可用

    1 安装Redis3 0 yum y install cpp binutils glibc glibc kernheaders glibc common glibc devel gcc make gcc c libstdc devel tc
  • 使用Nodejs搭建HTTP服务,并实现公网远程访问Redis数据库「内网穿透」

    文章目录 1 Linux centos8 安装redis数据库 2 配置redis数据库 3 内网穿透 3 1 安装cpolar内网穿透 3 2 创建隧道映射本地端口 4 配置固定TCP端口地址 4 1 保留一个固定tcp地址 4 2 配置
  • AI大模型及算力要求

    AI大模型对算力的要求非常高 需要高性能的硬件设备和分布式训练技术来支持 随着AI技术的不断发展 未来可能会出现更大 更复杂的模型 对算力的要求也将更高 今天和大家分享几个大模型及算力要求 希望对大家有所帮助 北京木奇移动技术有限公司 专业
  • markdown公式编号居右

  • .NET5零基础入门到项目实战(源码+课件),2021年最新版

    本套课程来自朝夕教育 NET5零基础入门到项目实战 源码 课件 课程由Richard老师 朝夕教育 Eleven Clay老师联合主讲 课程为2021年最新版视频课程 共60节 包含课程相关资料源码 共计4 1G 文章底部附下载地址 课程介
  • 优化算法 - Adadelta

    文章目录 Adadelta 1 Adadelta算法 2 代码实现 3 小结 Adadelta Adadelta是AdaGrad的另一种变体 主要区别在于前者减少了学习率适应坐标的数量 此外 广义上Adadelta被称为没有学习率 因为它使
  • pysot环境 win10 cuda10.1、torch

    1 安装anaconda 版本 Anaconda3 2019 07 python 3 7 3 跟踪Python版本对应找到Anaconda3对应版本 参考 anaconda python 版本对应关系 茶佬牛逼 CSDN博客 python3
  • 学生成绩管理系统mysql课程设计_数据库课程设计报告-学生成绩管理系统

    数据库课程设计报告 学生成绩管理系统 引 言 在现代 高科技的飞跃发展 计算机的大量普及 使得人们生活节奏越来越快 因此对教育行业的多元信息进行有效的管理工作 也成为教育行业中的重中之重 目前 学校工作繁杂 资料重多 虽然各类管理信息系统已
  • 导入自定义模块syntaxerror: invalid syntax_乐高机器人

    模块功能讲解 只剩下高级模块和自定义模块未做说明了 今天一起讲完 了解了模块的功能之后 需要通过实际的运用才能知道不同模块的功能差异 下期谈谈几个实际应用的案例 一 高级模块 一 文件读写 这个模块的功能在于将运行过程中产生的数据存储到EV