友情提示:380元/半年,儿童学编程,就上码丁实验室。
本篇请下载 LEGO Mindstorms教育版软件 有条件的话,请为孩子添置一套EV3套装,让课程内容可以同步练习进行动手实践。
有人问,好像现在编程已经不是基础了,有些地方有点难了。
但其实不然,之前的课程内容,不仅是EV3,你学习任何的编程语言,
记住一句话,编程不是学会用语言,就是会了。
这些仅仅只是基础而已。
今天我们先来看一个程序。这个程序不是我编写的,也是一位大神朋友编的,我搜集用来学习的。
怎么样?能看懂吗?
当然看不懂。。。
光这样,我也看不懂。。。
为什么?
还记得我们在《EV3基础编程 第一课》(点这里就可以跳转过去哦!)讲到过“脚本语言”的相关知识吗?
这些天蓝色的小模块,我们叫作“我的模块”。也就是编程者自己编写的模块。
如果编写者不给我们看这些模块本身的内容,我们很难知晓它其中的“奥秘”。
源代码、开源
这两个词看似简单,但在IT界,这些可谓是至高无上的宝贝哦!
当然,这个词不仅仅用在IT界,知识分享、经验分享等等,其实都是一种“开源”行为。
就像上面的那个程序,光看这个程序我们是无法看懂的。
因为我们看到的最多只是一个框架,而这个框架所代表的,并不是我们人类能看懂的东西,而只是计算机能够读懂。
每个步骤到底是如何最终完成的?我们无法知道。
举个例子,
你去看一个魔术,感觉很神奇。但你却不知道魔术师是如何办到的。
因为“源代码”只有魔术师知道。
但如果“开源”了呢?
就相当于魔术师为你解密了这个魔术,这样一来,很可能你自己练练也就会了。
简单说,开放源代码这件事,其实就是告诉使用者们,我这个“魔术”具体的每一步是怎么完成的。
也就相当于给所有人共享了这份“知识产权”。
这是需要极大的社会责任心和勇气,才会做出的决定。
所以,请明白!
这是一件很伟大的事情!
我的模块
“我的模块”功能可以理解为,我们自己创造了一个“魔术”,而其中的秘密只有你自己知道。
当然,你以后可以选择“开源”或者“不开源”。
开源的话,就是分享给其他伙伴,告诉他们你是怎么做成这个模块的。
编写一个我的模块,首先,你要完成一个程序。
比如,这个简单的单色感巡线程序:
先简单讲解一下这个程序(以后我们会有专门的课去研究):
在这个程序中,我们利用的是色感测量反射值变化,控制机器人前进(向左前,向右前)。
于是向左前,就能碰到黑线,反射值变低;
向右前,就不碰到黑线,反射值变高。
实际运行后,EV3会以“扭屁股姿势”沿着黑线前进。如下面这个视频。(8秒)
回到我们的程序编辑页面,点击程序上“循环模块”,这个时候就可以选中整个程序了。
我们选择工具栏里面“我的模块创建器”,注意,一定要选中你的程序后,再点击。
然后弹出创建对话框,在下面三个箭头位置,填入你的模块名称、描述,最后选择一个你喜欢的或者可以代表模块功能的图标。
(注意,名字要是英文哦)
最后,点击完成后,这个模块就创建完成了。之后你需要巡线程序,可以直接使用这个巡线模块啦!
只要这样编写,就等于编写了一个巡线程序,好使吧!
当然还不止这么简单,我们继续延续这个话题的讨论。
功能延伸
刚刚创建的那个模块,如果我们要修改它的各个参数,比如:速度、反射值这些,就需要从项目属性里面去调取出模块的“源程序”,进行修改。
如下图:
这样是不是很麻烦?
其实我们可以通过创建时对模块进行设置,去解决这个问题!
我们重新执行一遍上文中的“我的模块创建器”操作。(步骤我就省略了)
注意别直接点“完成”!
添加参数后,我们可以看到这多了两个卡片,这就是对参数进行设置。
这里我们先添加一个反射值的输入参数。如下图:
因为我们一会想要手动可以改变这些数据,之后“源程序”的数据需要在我的模块中“输入”而不是输出。所以我们这里选择“输入”。
然后我们选择一个自己喜欢的图标,随便选,只要你自己看得懂。
别急点完成,我们再添加一个参数“速度”,同样也是“输入”参数。
最后,点击右下方“完成”,会多出这个玩意。
这就是我们的参数值。
我们只需要把这些参数值,直接拉到对应的数据位置就可以了。
由于“平面视图”没办法关联“切换模块”的数据,所以我们要切换为“卡片视图”。
(当然,如果你写入个变量,再用变量去调取,也是可以的。)
如下图:
这样我们就可以在不打开“源程序”的情况下修改这些关键参数啦!
这样是不是很方便!
还是回到那句话,设计出一个成功的程序,然后开源给大家,是件很伟大的事情。
技术和产品,都是在不断的探讨和交融中进化的。
正是有了那么多伟大的科学家,工程师,愿意把自己的研究成果无私共享,我们今天才能用上那么多好用的技术产品。
当然开源的行为并不是盲目的,而是有目标的去分享,当然也需要有一定对自己的保护意识,这些就需要我们后天慢慢积累社会阅历、知识、经验了。
无可厚非的一点是,“开源”本身,是一种优秀社会人的实践行为。
希望各位小朋友长大后,也成为一名愿意分享,并且有社会责任感的人。
除了成为家里有担当的顶梁柱外,也同时为我们国家,甚至为这个世界贡献出自己的一份力量!
同时你也会发现,“开源者”在开源后的收获,或许会更大!
再次致敬这些伟大的“开源者”。
我们下期,再见!
重点总结
学习创建“我的模块”,为后续集成化程序做基础。