最新消息:

【EV3基础编程 第六课】编程就是“指挥交通”,数据转化是基础。

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

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

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

说真的,在EV3这块的教学上,我认为很多人的重点是不明确的,这点让我比较失望。

在我的号里,我希望各位家长和老师们,都可以明确,基础教学教的就是“基础”。

而作为机器人教育,搭建和编程都是有明确的“基础目标”的。

注意是明确的、可阐述的!

含糊其辞的教学目标解释,本身对基础阶段必须掌握的技能没有帮助,更是达不到引导学生“创造力”的根本目的的

之前的几节课我们都在阐述关于“流程”的课题。

大家一定要知道,流程是一个程序框架结构的实际产物,这比起对于单纯“命令”和“脚本”(软件里面我们称为模块)。对这个版块内容的理解,其实是非常重要的。

所以,没有好好看上几期课的同学,请认真回顾。

点击公众号内的“学”菜单,里面成系列的课程都在。

那接下去我们讲什么呢?

1、 继续延伸强化一下理解

2、 数据处理

1

程序阻塞

程序阻塞这个词,是我经常使用的,算是一个小发明吧。就像交通环境,车子是一辆一辆排队的。

我们所使用的模块可以这样理解它们的分类:

阻塞模块

信号模块

“阻塞模块”——就是马路上的车子,前面一辆不走,后面一辆就不会走。

“信号模块”——就是马路上的交通标志,本身其实不影响车子走或者不走,但起到“规范”作用。

【EV3基础编程 第六课】编程就是“指挥交通”,数据转化是基础。

这样一来是不是就很好理解了?

我们的阻塞模块有:

动作模块、流程模块、以及一些其他对程序流有直接影响的模块。

我们的信号模块有:

传感器模块、数据处理模块、以及一些其他对程序进行运行“要求”制定的模块。

比如下面这个程序。

【EV3基础编程 第六课】编程就是“指挥交通”,数据转化是基础。我们如果把所有阻塞模块单独拿出来,那么程序也是成立的。这时就像一条马路,没有了红绿灯;没有了标志标线,虽然车还是可以开,但很容易出“交通事故”,于是造成交通的瘫痪。

而加上了信号模块后,这些“阻塞模块”的运行,就有了“交通法规”。这样我们的道路交通就会变得有条理,道路也会变得通畅。

那么,如何制定这个法规呢?

2

数据处理

黄色的“传感器”模块属于信号模块,用于数据采集和输出,但并不阻塞“交通”。如果单纯的放在那,则毫无意义。

就像法律如果没有监管,则法律本身对行为是没有约束力的,只是一张白纸。

【EV3基础编程 第六课】编程就是“指挥交通”,数据转化是基础。

一旦我们把黄色模块的数据用线连接到了另一个阻塞模块上,这个时候,这个“法律”才是形成了实际作用。

生活中的法律,就是社会规则。

让“规则”——数据规则,来“要求”阻塞模块的行为,我们有三种形式。

分别是:数据传输、文本传输、逻辑传输。这个在编程软件里面是三种颜色的线。

【EV3基础编程 第六课】编程就是“指挥交通”,数据转化是基础。黄线 —— 很简单,数据传输,意思就是传输数据,让数据直接应用在阻塞模块上。

 

红线 —— 数据本身都是一种“值”,让这种值变成文本,以便让我们可见,可视。(简单理解下,就是让数据变成某种符号,这种符号不仅仅只是数字和文字,也可能是图形

小知识:比如我们平时说话的语言,这个其实是抽象的,无形的,无色的。但我们把语言变成了文字符号,那么就可以记录下来,形成“文本”。文者,物象之本。我们中国传说最早的“系统文本”是仓颉发明的——仓颉造字。

 

绿线 —— 逻辑,这个在前几节课里面有提过。简单再说一下,xx大于xx,xx小于xx,这就是一种逻辑的体现。

有了这三样东西,我们就可以从这三种角度对“规则”进行“执行”!

3

数据转化的功能

上面说的三根线,只要拉到对应的模块,就等于把数据实际的进行了应用。

但数据是多样性的。

我们能够采集到的各种值,其实都是基础值,在很多情况下,这些值需要进行转化,才能真正适合我们的使用要求。这样我们才能制定出合理的“规则”。

现在,我们就需要“红色”模块的帮助了!


今天我们先讲一个最简单的,下期课,我们开始加强难度。

数学模块(简单应用)

【EV3基础编程 第六课】编程就是“指挥交通”,数据转化是基础。

即,可以让我们把数据进行各种数学运算。

通过各种运算法则,可以让我们数据变成我们想要“值”,或者想要的“取值区间”。

举个简单的例子,通过这个模块,我们可以进行四则运算。这个基本的运算法则,就可以对数据进行很基本的转化。

我们来实际操作一下:

让基础小车往前走50cm。

这个题面看似很简单,但我们仔细思考一下,要求是一个精确的厘米数。但我们电机上只能设置:秒数、圈数、度数。

【EV3基础编程 第六课】编程就是“指挥交通”,数据转化是基础。 

秒数肯定不是最方便的控制精确距离的条件。

圈数和度数本质上其实是一样的,度数比圈数更精确。

注意,这里控制的是电机的转动,而不是轮子的转动!

如果我们的电机是通过不同大小的齿轮连接到轮子上的时候,我们还需要计算齿轮比!

【EV3基础编程 第六课】编程就是“指挥交通”,数据转化是基础。

在基础小车的结构中,因为轮子直接装在电机上,所以电机转动一圈,轮子也转动一圈。

 

这样一来,我们只需要知道轮子的周长,就可以知道电机需要转动多少角度了。

【EV3基础编程 第六课】编程就是“指挥交通”,数据转化是基础。

基础小车的轮子直径是5.4cm,所以轮子的周长是:

C=πd≈3.14*5.4≈16.956cm

那么轮子转动的圈数就是:50/16.956≈2.95圈

一圈等于360度,所以度数就是:2.95*360=1062度

按照我们计算的数据,程序就应该这样编写。(左或右)

【EV3基础编程 第六课】编程就是“指挥交通”,数据转化是基础。

当我们使用数学模块,就可以让这件事情变得很方便。

我们把上面的计算思路,直接放到红色模块里面。把常量给确定好。

【EV3基础编程 第六课】编程就是“指挥交通”,数据转化是基础。

这样,机器就可以自动完成上面的计算。我们如果要换轮子,也只需要改动一下轮子的直径长度,而不需要重新去计算了。

可以看到,这就是一个很简单的数据应用。


信号模块本身其实没有作用,但通过“数据线”的连接,把“规则”给到了阻塞模块。这样就是一种从制定到“实际执行规则”的过程。

而这一基础,是基于对数据的作用、结构的判断等等综合理解的前提下才能实际领会并应用的。

下节课,我们开始把红色的模块拉出来开讲!这样,我们就可以把“规则”制定的更为详细和准确了!

 

敬请期待!

重点总结

巩固一下流程的概念,加强理解阻塞和信号模块的作用。为后续课程的学习做铺垫。

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