最新消息:

【EV3基础编程 第十课】编程也需要开窍,常变量关系搞清楚,才等于开始“懂”了。

乐高 少儿编程 3588浏览 0评论
ev3基础编程01

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

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

之前两节课讲了使用“变量”模块的两个案例。

如果你认真看了课程,就会发现,

变量的使用,跟编程的逻辑有紧密的关系。

日常我们会看到很多关于EV3编程的书和案例。

高手对变量使用已经如火纯青,所以他们可以将变量放在自己逻辑下合理的各个位置。

但这对我们初学者来说,其实是不利的,至少是不利于读懂程序的。

所以,很多同学在外面上课,学了老半天,也不一定能领悟到底怎么编程。

只是跟着老师的程序重新编了一遍而已。

其实,我们更多要先学会的是梳理程序的框架,也就是整理数据结构


程序的框架

 

框架就是想清楚各个模块的含义和你希望达到的功能。

程序块和它所代表的功能,往往是一对一个需求,或者一对多个并列需求,对应起来的。

这里,我们穿插简单讲一下常量模块。

【EV3基础编程 第十课】编程也需要开窍,常变量关系搞清楚,才等于开始“懂”了。

常量,顾名思义,代表了一个不变化的量。

比如下图:里面速度50就是常量。↓

【EV3基础编程 第十课】编程也需要开窍,常变量关系搞清楚,才等于开始“懂”了。

搞笑的事情是,我们也可以这样来编写它。↓

【EV3基础编程 第十课】编程也需要开窍,常变量关系搞清楚,才等于开始“懂”了。

为什么要这样多此一举呢?

因为,单单从一个“一对一对应”的模块组合,你是看不出来什么区别的。

如果这个常量要用在10个模块里面呢?

【EV3基础编程 第十课】编程也需要开窍,常变量关系搞清楚,才等于开始“懂”了。

图上我们只放4个意思意思……

 

万一我们需要改动这个数据,现在我们只需要改变一个数据就可以了。

【EV3基础编程 第十课】编程也需要开窍,常变量关系搞清楚,才等于开始“懂”了。

明白了?

其实这里的常量也是逻辑的一部分。

作为功能来说,上图这个常量控制了后续很多需要相同速度的模块。


我们再回过来。说变量。

变量也是一样,我们会发现,一般最终我们的变量不管经过如何的数据处理,都是输出在一个或者几个地方的。

跟常量的区别:

常量的值,只要设定好了,就不变

变量的值,根据程序中重复的运算后,可以进行改变

学会应用这种“不可改变”和“可改变”。数据框架就出来了:

 

1、什么能变?为什么能变?

2、什么不能变?为什么不能变?

其实是一种思维锻炼,也是一种对事物判断能力的锻炼。


对事物的判断能力

 

我们都说做人要决断,要果敢。

但智者的决断和果敢,绝不是来源于勇气、自信这种说不清道不明的东西,而是来源于经验、分析、推理等等各种能力。

也只有这样,才能把握住做事的大方向

在我的课程上,经常有同学被一些数据值给搞得头昏眼花。

事实上,我们可以这样理解,值有两种,一种叫做参数,一种叫做数据

参数往往在程序中起到决定性作用,经常是一个常量

(注意,是经常不是绝对!事实上在很多时候,参数可以是由各种数据计算自动得出的。我们只是初级课程,暂时不去讨论。)

数据一般只是提供了数据而已,经常是一个变量

我们来看一个题面,了解一下什么是数据值,什么是参数。

使用一个颜色传感器,让小车沿着黑线走(巡线任务)。

我们今天暂时不讲更高级的编程方法,比如PID算法之类的。

我们就拿基本巡线的程序来讲解。

就像这个视频里面:

小车看到黑线,转向外面(白色)

小车看到白色,转向里面(黑线)

由于黑色和白色是“灰度值”的两个顶端数据。

所以我们用灰度测量(也叫反射值测量)来编写这个程序。

形成一个“判断流程”的主循环。

【EV3基础编程 第十课】编程也需要开窍,常变量关系搞清楚,才等于开始“懂”了。

这个程序,可以让小车完成扭屁股形态的巡线姿势……


我们来分析一下。

小车在不断“扭屁股”的过程中,色感提供的反射值一直在不停变化

所以,这个是色感提供的“数据变量”

我们对这个数据进行了划分,以50为一个分界点

这个“50”就是一个参数

一般我们在设置这个参数的时候,先要测量一下两种极端情况(白色或黑色)的反射值。

然后再进行几次调整,以确保整个程序的稳定性。

参数决定了程序的稳定性,甚至于成败。

延伸一个例子

如果我们并不是在纯白色的场地上,而是灰色的场地。

那么可能这个时候,以反射值50来作为判断参数,就不一定适合了。可能需要更低的反射值,比如25。

而参数本身,需要我们在实际操作的过程中,进行一番调试修改。


 

参数的具体使用

我们在很多程序里面,参数都有是很重要的角色。

比如通过参数,确定取值范围;

再比如,以参数作为限制条件,让程序更加稳定。

在之前,老丁用EV3尝试编写《贪吃蛇游戏》的时候,有这么一段程序内容。

——在屏幕上随机位置出现“苹果

这个程序该怎么来编写呢?

【EV3基础编程 第十课】编程也需要开窍,常变量关系搞清楚,才等于开始“懂”了。我们可以看到,在这里两个参数限制了取值范围。

如果我们修改这个参数,那么苹果显示的随机有效范围也会相应改变。

大家可以动手改编一下上面这个程序,然后修改一下相关的参数,体会一下。

记得增加一个等待模块哦,用来触发程序,比如每按一下,“苹果”换一个随机位置出现。

我们下期,再见哦!

 

重点总结

了解数据和参数的作用,以便开始了解如何搭建程序框架

您必须 登录 才能发表评论!