首页
学习
活动
专区
圈层
工具
发布

向那些伟大的“开源者”致敬,创建“我的模块”

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

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

有人问,好像现在编程已经不是基础了,有些地方有点难了。

但其实不然,之前的课程内容,不仅是EV3,你学习任何的编程语言,

记住一句话,编程不是学会用语言,就是会了。

这些仅仅只是基础而已。

今天我们先来看一个程序。这个程序不是我编写的,也是一位大神朋友编的,我搜集用来学习的。

怎么样?能看懂吗?

当然看不懂。。。

光这样,我也看不懂。。。

为什么?

还记得我们在《EV3基础编程 第一课》(点这里就可以跳转过去哦!)讲到过“脚本语言”的相关知识吗?

这些天蓝色的小模块,我们叫作“我的模块”。也就是编程者自己编写的模块。

如果编写者不给我们看这些模块本身的内容,我们很难知晓它其中的“奥秘”。

源代码、开源

这两个词看似简单,但在IT界,这些可谓是至高无上的宝贝哦!

当然,这个词不仅仅用在IT界,知识分享、经验分享等等,其实都是一种“开源”行为。

就像上面的那个程序,光看这个程序我们是无法看懂的。

因为我们看到的最多只是一个框架,而这个框架所代表的,并不是我们人类能看懂的东西,而只是计算机能够读懂。

每个步骤到底是如何最终完成的?我们无法知道。

举个例子,

你去看一个魔术,感觉很神奇。但你却不知道魔术师是如何办到的。

因为“源代码”只有魔术师知道。

但如果“开源”了呢?

就相当于魔术师为你解密了这个魔术,这样一来,很可能你自己练练也就会了。

简单说,开放源代码这件事,其实就是告诉使用者们,我这个“魔术”具体的每一步是怎么完成的。

也就相当于给所有人共享了这份“知识产权”。

这是需要极大的社会责任心和勇气,才会做出的决定。

所以,请明白!

这是一件很伟大的事情!

我的模块

“我的模块”功能可以理解为,我们自己创造了一个“魔术”,而其中的秘密只有你自己知道。

当然,你以后可以选择“开源”或者“不开源”。

开源的话,就是分享给其他伙伴,告诉他们你是怎么做成这个模块的。

编写一个我的模块,首先,你要完成一个程序。

比如,这个简单的单色感巡线程序:

先简单讲解一下这个程序(以后我们会有专门的课去研究):

在这个程序中,我们利用的是色感测量反射值变化,控制机器人前进(向左前,向右前)。

于是向左前,就能碰到黑线,反射值变低;

向右前,就不碰到黑线,反射值变高。

实际运行后,EV3会以“扭屁股姿势”沿着黑线前进。如下面这个视频。(8秒)

回到我们的程序编辑页面,点击程序上“循环模块”,这个时候就可以选中整个程序了。

我们选择工具栏里面“我的模块创建器”,注意,一定要选中你的程序后,再点击。

然后弹出创建对话框,在下面三个箭头位置,填入你的模块名称、描述,最后选择一个你喜欢的或者可以代表模块功能的图标。

(注意,名字要是英文哦)

最后,点击完成后,这个模块就创建完成了。之后你需要巡线程序,可以直接使用这个巡线模块啦!

只要这样编写,就等于编写了一个巡线程序,好使吧!

当然还不止这么简单,我们继续延续这个话题的讨论。

功能延伸

刚刚创建的那个模块,如果我们要修改它的各个参数,比如:速度、反射值这些,就需要从项目属性里面去调取出模块的“源程序”,进行修改。

如下图:

这样是不是很麻烦?

其实我们可以通过创建时对模块进行设置,去解决这个问题!

我们重新执行一遍上文中的“我的模块创建器”操作。(步骤我就省略了)

注意别直接点“完成”!

添加参数后,我们可以看到这多了两个卡片,这就是对参数进行设置。

这里我们先添加一个反射值的输入参数。如下图:

因为我们一会想要手动可以改变这些数据,之后“源程序”的数据需要在我的模块中“输入”而不是输出。所以我们这里选择“输入”。

然后我们选择一个自己喜欢的图标,随便选,只要你自己看得懂。

别急点完成,我们再添加一个参数“速度”,同样也是“输入”参数。

最后,点击右下方“完成”,会多出这个玩意。

这就是我们的参数值。

我们只需要把这些参数值,直接拉到对应的数据位置就可以了。

由于“平面视图”没办法关联“切换模块”的数据,所以我们要切换为“卡片视图”。

(当然,如果你写入个变量,再用变量去调取,也是可以的。)

如下图:

这样我们就可以在不打开“源程序”的情况下修改这些关键参数啦!

这样是不是很方便!

还是回到那句话,设计出一个成功的程序,然后开源给大家,是件很伟大的事情。

技术和产品,都是在不断的探讨和交融中进化的。

正是有了那么多伟大的科学家,工程师,愿意把自己的研究成果无私共享,我们今天才能用上那么多好用的技术产品。

当然开源的行为并不是盲目的,而是有目标的去分享,当然也需要有一定对自己的保护意识,这些就需要我们后天慢慢积累社会阅历、知识、经验了。

无可厚非的一点是,“开源”本身,是一种优秀社会人的实践行为。

希望各位小朋友长大后,也成为一名愿意分享,并且有社会责任感的人。

除了成为家里有担当的顶梁柱外,也同时为我们国家,甚至为这个世界贡献出自己的一份力量!

同时你也会发现,“开源者”在开源后的收获,或许会更大!

再次致敬这些伟大的“开源者”。

也同样感谢大家对本号的关注。

我们下期,再见!

重点总结

学习创建“我的模块”,为后续集成化程序做基础。

感谢关注本号,若觉好,请帮转

老丁介绍

主业:

某知名上市技术研发企业总监

机器人教育相关经验:

上海科技馆SVR虚拟机器人课程特邀讲师

FIT启蒙创新认证讲师、教练员

WRO 及 First系列挑战赛事教练及裁判员

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180117G0D7B600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。
领券