本阶段课程适合2年级、3年级、4年级及以上刚开始接触EV3机器人的同学们。
本篇请下载 LEGO Mindstorms教育版软件 有条件的话,请为孩子添置一套EV3套装,让课程内容可以同步练习进行动手实践。
之前两节课讲了使用“变量”模块的两个案例。
如果你认真看了课程,就会发现,
变量的使用,跟编程的逻辑有紧密的关系。
日常我们会看到很多关于EV3编程的书和案例。
高手对变量使用已经如火纯青,所以他们可以将变量放在自己逻辑下合理的各个位置。
但这对我们初学者来说,其实是不利的,至少是不利于读懂程序的。
所以,很多同学在外面上课,学了老半天,也不一定能领悟到底怎么编程。
只是跟着老师的程序重新编了一遍而已。
其实,我们更多要先学会的是梳理程序的框架,也就是整理数据结构。
程序的框架
框架就是想清楚各个模块的含义和你希望达到的功能。
程序块和它所代表的功能,往往是一对一个需求,或者一对多个并列需求,对应起来的。
这里,我们穿插简单讲一下常量模块。
常量,顾名思义,代表了一个不变化的量。
比如下图:里面速度50就是常量。
搞笑的事情是,我们也可以这样来编写它。
为什么要这样多此一举呢?
因为,单单从一个“一对一对应”的模块组合,你是看不出来什么区别的。
如果这个常量要用在10个模块里面呢?
图上我们只放4个意思意思……
万一我们需要改动这个数据,现在我们只需要改变一个数据就可以了。
明白了?
其实这里的常量也是逻辑的一部分。
作为功能来说,上图这个常量控制了后续很多需要相同速度的模块。
我们再回过来。说变量。
变量也是一样,我们会发现,一般最终我们的变量不管经过如何的数据处理,都是输出在一个或者几个地方的。
跟常量的区别:
常量的值,只要设定好了,就不变。
变量的值,根据程序中重复的运算后,可以进行改变。
学会应用这种“不可改变”和“可改变”。数据框架就出来了:
1、什么能变?为什么能变?
2、什么不能变?为什么不能变?
其实是一种思维锻炼,也是一种对事物判断能力的锻炼。
对事物的判断能力
我们都说做人要决断,要果敢。
但智者的决断和果敢,绝不是来源于勇气、自信这种说不清道不明的东西,而是来源于经验、分析、推理等等各种能力。
也只有这样,才能把握住做事的大方向。
在我的课程上,经常有同学被一些数据值给搞得头昏眼花。
事实上,我们可以这样理解,值有两种,一种叫做参数,一种叫做数据。
参数往往在程序中起到决定性作用,经常是一个常量。
(注意,是经常不是绝对!事实上在很多时候,参数可以是由各种数据计算自动得出的。我们只是初级课程,暂时不去讨论。)
数据一般只是提供了数据而已,经常是一个变量。
我们来看一个题面,了解一下什么是数据值,什么是参数。
使用一个颜色传感器,让小车沿着黑线走(巡线任务)。
我们今天暂时不讲更高级的编程方法,比如PID算法之类的。
我们就拿基本巡线的程序来讲解。
就像这个视频里面:
小车看到黑线,转向外面(白色)
小车看到白色,转向里面(黑线)
由于黑色和白色是“灰度值”的两个顶端数据。
所以我们用灰度测量(也叫反射值测量)来编写这个程序。
形成一个“判断流程”的主循环。
这个程序,可以让小车完成扭屁股形态的巡线姿势……
我们来分析一下。
小车在不断“扭屁股”的过程中,色感提供的反射值一直在不停变化。
所以,这个是色感提供的“数据变量”。
我们对这个数据进行了划分,以50为一个分界点。
这个“50”就是一个参数。
一般我们在设置这个参数的时候,先要测量一下两种极端情况(白色或黑色)的反射值。
然后再进行几次调整,以确保整个程序的稳定性。
参数决定了程序的稳定性,甚至于成败。
延伸一个例子,
如果我们并不是在纯白色的场地上,而是灰色的场地。
那么可能这个时候,以反射值50来作为判断参数,就不一定适合了。可能需要更低的反射值,比如25。
而参数本身,需要我们在实际操作的过程中,进行一番调试修改。
参数的具体使用
我们在很多程序里面,参数都有是很重要的角色。
比如通过参数,确定取值范围;
再比如,以参数作为限制条件,让程序更加稳定。
在之前,老丁用EV3尝试编写《贪吃蛇游戏》的时候,有这么一段程序内容。
——在屏幕上随机位置出现“苹果”。
这个程序该怎么来编写呢?
我们可以看到,在这里两个参数限制了取值范围。
如果我们修改这个参数,那么苹果显示的随机有效范围也会相应改变。
大家可以动手改编一下上面这个程序,然后修改一下相关的参数,体会一下。
记得增加一个等待模块哦,用来触发程序,比如每按一下,“苹果”换一个随机位置出现。
我们下期,再见哦!
重点总结
了解数据和参数的作用,以便开始了解如何搭建程序框架
您的每一次分享转发
都是对老丁莫大的支持
喜欢本号,请帮忙推广哦!
领取专属 10元无门槛券
私享最新 技术干货