首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

本阶段课程适合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 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券