本阶段课程适合2年级、3年级、4年级及以上刚开始接触EV3机器人的同学们。

本篇请下载 LEGO Mindstorms教育版软件 有条件的话,请为孩子添置一套EV3套装,让课程内容可以同步练习进行动手实践。

如果说学习机器人,是一个游戏。

那么一个个学习模块的使用,就像是升级打怪。

到了一定级别后,会有升阶的要求。往往升阶是需要做一些复杂的“突破”任务后,才能继续升级的。

那么我们今天要说的模块,就是“升阶任务”——变量模块。

变量模块

当你开始使用变量模块的时候,意味着你正在向机器人学习的下一阶段迈进了。

很多人觉得很简单,变量就像是一个文件夹,我们可以把数据储存进去,需要用的时候拿出来用。

确实,可以这样解释。

来看一下变量模块的功能,它可以储存我们上节课所讲到的所有数据类型:

数据值;

文本值;

逻辑值。

但如果按照我们一般的理解,它就只能作为一个储存工具了。

比如下图:

我们把一个传感器数据记录下来。然后通过变量调取出来使用。

可笑的事情出现了。我们为什么不直接吧数据拖过去呢?像这样……

其实光这样理解是远远不够的。

变量在很多时候,充当着一个程序逻辑角色的扮演者。

一对一个性化控制

刚开始学习编程的小朋友,经常会犯一些逻辑上的错误。

其中最大的错误,莫过于逻辑混乱了。

所有的“输出”(一般就是指电机),其实一定是一个指令去控制的。

举个例子:

题面

请搭建一个基础小车,然后设置一个程序。

要求:

1、按主机上的上键,前进

2、按主机上的下键,后退

3、当超声波传感器探测到前方距离小于15cm时,停止前进,但可以后退。

根据题面,我们可以直接写出这样的程序。

点开看大图

一个主循环(右边)控制小车的前进后退,一个主循环(左边)控制前方距离探测时的动作。貌似没什么问题。

但真正在运行的时候,大家会发现,出问题了。

我们再看一眼这个程序,就会发现,问题出在:

点击看大图

当前方距离小于15cm的时候,小车要满足停止的要求;这个时候如果按前进键,小车同时又接受到了前进的指令。

既要前进,又要停止。

艾玛,到底听谁的?

很明显,这个时候,程序出错了,因为有两个条件同时控制着输出(电机)。

如果这个时候,我们用变量来控制,问题就迎刃而解了。

我们一起来动手尝试,并理解一下。

定义并使用变量

定义变量,是为了不直接对输出设备下指令。而是先通过数据进行处理分析,最后通过“一个”要求,对输出设备发出指令。

第一步

我们写入一个逻辑变量。这个变量我们起名为stop,用来记录超声波传感器的数据,而不是直接控制电机。

这个时候,当小车前方距离小于15cm的时候,逻辑为“真”,大于的时候,逻辑为“伪”。

第二步

再写入一个数据变量,起名为CTRL,用来定义按键的各个对应值。

我们可以这样理解,每次按了一个不同的按键,它就给这个变量重新定义了一个“值”。

如下图

这里我们就可以把这个结果分类判断一下了。按“上”的时候,会发生两种情况:

1、当前方大于15cm的时候,调用stop逻辑变量,即程序停止。

2、当前方小于或等于15cm的时候,运行CTRL数据变量,这个时候值为1

而按“下”的时候,变量值为2;什么都不按的时候,值为3

第三步

定义一下CTRL模块不同的值所对应的各种动作要求。

如下图:

值为1的时候,前进;

值为2的时候,后退;

值为3的时候,停止。

这样一来,我们的程序就完成了。

我们来看一下完整的程序。

点击看大图

有没有发现?这里面,对输出设备,也就是电机直接下“命令”的,只有一个变量模块,也就是CTRL。

而其他的,都是在逻辑上的数据分析。

这样的程序,逻辑是通畅的。

变量给我带来的功能,其实就是一种思考方式。我们需要用这个模块,体现出我们真正对于机器人行为的要求。

看似很简单,事实上,每一个变量从定义,到调取。都是我们细细思考的结果。

你要搞清楚的是:

这个变量代表着什么?

它的作用是什么?

最终它在逻辑的过程中起到一个什么作用?

这部分内容我们日后会经常碰到。别急,一步步来,先通过基础编程课,体会一下吧!

我们下期再见!

课程越来越精彩,希望大家帮忙推广哦!再次感谢!

重点总结

学习认识变量模块的基本应用。通过案例了解它的真正意义。

ev3编程变量模块_【EV3基础编程 第八课】升阶学习难度,一对一个性化控制程序,变量来了...相关推荐

  1. Spark广播变量实现原理及基础编程

    Spark广播变量实现原理及基础编程 实现原理 广播变量用来高效分发较大的对象.向所有工作节点发送一个较大的只读值,以供一个或多个 Spark 操作使用.比如,如果你的应用需要向所有节点发送一个较大的 ...

  2. ev3编程变量模块_英文视频教学翻译-机器人ev3编程学习的第二十讲:举例讲解数据变量模块编...

    机器人ev3编程学习的第二十讲:举例讲解数据变量模块编- Rob Widger (为了容易理解,在原文的翻译时做了修改 by EV3-TOM) 这一节我给大家讲解使用变量模块的编程,这些我喜欢的例子也 ...

  3. dump文件_零基础编程——Python文件、JSON数据存储

    摘要 书接前文: 01-<零基础编程--起步并搭建Python环境> 02-<零基础编程--变量与数据类型> 03-<零基础编程--Python循环.函数.类> 教 ...

  4. 三丰三坐标编程基本步骤_数控车床编程,经典实例教程

    一.数控车编程特点 (1) 可以采用绝对值编程(用X.Z表示).增量值编程(用U.W表示)或者二者混合编程. (2) 直径方向(X方向) 系统默认为直径编程,也可以采用半径编程,但必须更改系统设定. ...

  5. java编程思想怎么样_读完java编程思想后的思考?

    谢邀,这本书真的给我带来很多思考. 我的java入门不是java编程思想,学校的教材是一本紫色的书,已经忘了叫什么名字了,里面内容倒挺新还讲了些javafx.但那本书实在是太浅并且结构混乱,以至于我和 ...

  6. python在线编程免费课程-Python少儿基础编程课程

    Python基础编程 L5-L8 主要内容: 为了帮孩子打下坚实编程基础,妙小程设计Python基础课程,学习Python基础知识及相关数学.物理等知识,并将其运用在游戏作品制作中.并让孩子了解并掌握 ...

  7. c语言基础编程题文库,C语言基础编程题资料.doc

    C语言基础编程题资料.doc |5-1 求幂之和 15 分本题要求编写程序,计算 sum21 22 23 cdots 2nsum2122232n.可以调用 pow 函数求幂.输入格式输入在一行中给出正 ...

  8. python风变编程知乎_风变编程Python小课学习之旅

    先说说我是怎样与Python结缘的吧,我之前一直就职在互联网公司,是负责公司品牌设计的,已从事设计工作十余年了,也是到了一个瓶颈期,过去的知识已经快跟不上时代的发展,想给自己充充电,拓展一下知识.在今 ...

  9. 少儿编程python课程-Python少儿基础编程课程

    Python基础编程 L5-L8 主要内容: 为了帮孩子打下坚实编程基础,妙小程设计Python基础课程,学习Python基础知识及相关数学.物理等知识,并将其运用在游戏作品制作中.并让孩子了解并掌握 ...

  10. java编程好学么_零基础小白学Java编程好学吗

    Java是一门不会衰落的开发语言,伴随着IT行业的兴起,目前学习java培训的人员也是变得更多了,但要想学好java的话通过自学是没有那样非常容易的事情.尤其是对于初学者的学生而言,那么零基础小白学J ...

最新文章

  1. 基于安卓的考试系统_基于安卓11定制!华为最新手机系统曝光:体验堪比苹果iOS!...
  2. cod cash on delivery
  3. mysql 多列索引的生效规则
  4. 情人节,我表白了CSDN小姐姐后,竟然...【为表白写了一个绘图工具,让我不再手残】
  5. shell编程题(一)
  6. React开发(229):react删除的实现
  7. Tomcat学习总结(8)——Tomcat+Nginx集群解决均衡负载及生产环境热部署
  8. 将dll制作成控件_案例丨首例将影视作品制作成网络图片集被判侵权案 二审维持原判...
  9. MatLab基本知识学习 详细!
  10. JVisualVM监控
  11. 尝试Python的websockets库的最基础功能
  12. 搭建Ubuntu下c/c++编译环境
  13. 洛谷入门-- P3717
  14. 计算机编程需要学哪些基础知识,学编程需要掌握哪些基础知识
  15. zz 一个Hash实例:Blizzard的MPQ文件
  16. css碎步测量,隧洞测量实习日记.doc
  17. 【Linux】NDK
  18. IIS搭建http服务
  19. 小豆苗与妈咪知道发布战略合作,打造母婴健康服务新生态
  20. 2017第3周二假期里该做的事

热门文章

  1. XML学习总结(三)——SAXReader解析xml文件数据
  2. 指派问题中匈牙利算法----Python实现
  3. 布客·ApacheCN 编程/大数据/数据科学/人工智能学习资源 2020.2
  4. 利用沙盒技术破解APP的API协议加密
  5. python源码包的安装和卸载
  6. vector初始化必须设置大小么_C++ 序列式容器之vector
  7. Centos7安装masscan
  8. elasticsearch安装使用
  9. 涉案千万,抓获170人,从业者多为90后,广州一公司被一锅端了!
  10. python网易云音乐下载器爬取全网音乐