ev3编程变量模块_【EV3基础编程 第八课】升阶学习难度,一对一个性化控制程序,变量来了...
本阶段课程适合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基础编程 第八课】升阶学习难度,一对一个性化控制程序,变量来了...相关推荐
- Spark广播变量实现原理及基础编程
Spark广播变量实现原理及基础编程 实现原理 广播变量用来高效分发较大的对象.向所有工作节点发送一个较大的只读值,以供一个或多个 Spark 操作使用.比如,如果你的应用需要向所有节点发送一个较大的 ...
- ev3编程变量模块_英文视频教学翻译-机器人ev3编程学习的第二十讲:举例讲解数据变量模块编...
机器人ev3编程学习的第二十讲:举例讲解数据变量模块编- Rob Widger (为了容易理解,在原文的翻译时做了修改 by EV3-TOM) 这一节我给大家讲解使用变量模块的编程,这些我喜欢的例子也 ...
- dump文件_零基础编程——Python文件、JSON数据存储
摘要 书接前文: 01-<零基础编程--起步并搭建Python环境> 02-<零基础编程--变量与数据类型> 03-<零基础编程--Python循环.函数.类> 教 ...
- 三丰三坐标编程基本步骤_数控车床编程,经典实例教程
一.数控车编程特点 (1) 可以采用绝对值编程(用X.Z表示).增量值编程(用U.W表示)或者二者混合编程. (2) 直径方向(X方向) 系统默认为直径编程,也可以采用半径编程,但必须更改系统设定. ...
- java编程思想怎么样_读完java编程思想后的思考?
谢邀,这本书真的给我带来很多思考. 我的java入门不是java编程思想,学校的教材是一本紫色的书,已经忘了叫什么名字了,里面内容倒挺新还讲了些javafx.但那本书实在是太浅并且结构混乱,以至于我和 ...
- python在线编程免费课程-Python少儿基础编程课程
Python基础编程 L5-L8 主要内容: 为了帮孩子打下坚实编程基础,妙小程设计Python基础课程,学习Python基础知识及相关数学.物理等知识,并将其运用在游戏作品制作中.并让孩子了解并掌握 ...
- c语言基础编程题文库,C语言基础编程题资料.doc
C语言基础编程题资料.doc |5-1 求幂之和 15 分本题要求编写程序,计算 sum21 22 23 cdots 2nsum2122232n.可以调用 pow 函数求幂.输入格式输入在一行中给出正 ...
- python风变编程知乎_风变编程Python小课学习之旅
先说说我是怎样与Python结缘的吧,我之前一直就职在互联网公司,是负责公司品牌设计的,已从事设计工作十余年了,也是到了一个瓶颈期,过去的知识已经快跟不上时代的发展,想给自己充充电,拓展一下知识.在今 ...
- 少儿编程python课程-Python少儿基础编程课程
Python基础编程 L5-L8 主要内容: 为了帮孩子打下坚实编程基础,妙小程设计Python基础课程,学习Python基础知识及相关数学.物理等知识,并将其运用在游戏作品制作中.并让孩子了解并掌握 ...
- java编程好学么_零基础小白学Java编程好学吗
Java是一门不会衰落的开发语言,伴随着IT行业的兴起,目前学习java培训的人员也是变得更多了,但要想学好java的话通过自学是没有那样非常容易的事情.尤其是对于初学者的学生而言,那么零基础小白学J ...
最新文章
- 基于安卓的考试系统_基于安卓11定制!华为最新手机系统曝光:体验堪比苹果iOS!...
- cod cash on delivery
- mysql 多列索引的生效规则
- 情人节,我表白了CSDN小姐姐后,竟然...【为表白写了一个绘图工具,让我不再手残】
- shell编程题(一)
- React开发(229):react删除的实现
- Tomcat学习总结(8)——Tomcat+Nginx集群解决均衡负载及生产环境热部署
- 将dll制作成控件_案例丨首例将影视作品制作成网络图片集被判侵权案 二审维持原判...
- MatLab基本知识学习 详细!
- JVisualVM监控
- 尝试Python的websockets库的最基础功能
- 搭建Ubuntu下c/c++编译环境
- 洛谷入门-- P3717
- 计算机编程需要学哪些基础知识,学编程需要掌握哪些基础知识
- zz 一个Hash实例:Blizzard的MPQ文件
- css碎步测量,隧洞测量实习日记.doc
- 【Linux】NDK
- IIS搭建http服务
- 小豆苗与妈咪知道发布战略合作,打造母婴健康服务新生态
- 2017第3周二假期里该做的事