本阶段课程适合2年级以上刚开始接触EV3机器人的同学们。
本篇请下载 LEGO Mindstorms教育版软件 有条件的话,请为孩子添置一套EV3套装,让课程内容可以同步练习进行动手实践。
我们把阵列学完后,基础课程“使用”上的难点也就讲完了。
从去年8月以来,老丁总共为大家带来了20多节课程。
这些课程可能在线下学习,需要花上一年的时间。
你可以点击本号“学”菜单,获取这些课程内容。
再下去的模块和功能,一般老丁都称之为“适用性模块”。
从新的角度分类模块
从另一个新的角度,可以这样理解模块的分类。
常用模块——如流程模块、动作模块
这些模块如果不会使用,那么基本上根本没法玩EV3。
基础模块——如红色的数据模块和黄色的传感器模块。
这些模块学会后,那么就可以开始让机器变成“机器人”,不但作动作行为,更可以作一些简单的“思考行为”(数据分析行为)。
适用性模块——如后面的高级模块功能。
(这个我们不在基础课里面讲,是因为这些模块很多时候需要在一些特定的场景下,才进行使用。)
用来“优化”、“简化”程序。
于此同时,课程的难度也会随着我们的学习,上一个台阶。
从老师的指导方式延伸式的学习,
(无论你怎么学,都是在老师的思维方式指导下的)
到同学个人思考方式形成的学习。
(开始独立思考,目标是突破老师的思维方式)
这是两种学习模式,
这就如同高中数学学得不好的人,不一定就学不好大学的高等数学。
因为数学的理论和思考、应用方式产生了重大的变化。
与实际结合的程序优化思考
其实老丁在之前的课程中,给的程序案例,是埋了很多坑的。
这就像我平日在教学生的时候,一定会在基础指导时,埋坑。
每次讲完理论,核心程序其实都完成了,
但实际操作时的“现象”和“理论”是有差距的。
我们就拿上一节课程的内容来作案例。
上节课,最终我们编写出的程序是这样的:
从理论上来看。这个程序在逻辑上是成立的,但实际应用的时候会发生问题。
程序启动后,主机会不停的探测传感器数据,你会发现,主机会响个不停。
而我们的题面是:
探测到一个颜色,记录一个数据,响一声提示。
换言之,当探测到没有颜色时,应该等待下一个颜色,而不是保持探测状态。
这明显是一个 “Bug”。
问题就是出在这个位置。
我们拿出第六课的知识点
传送门在这里哦!
——程序阻塞
黄色的“传感器模块”提供的是一个数据。就像是一个信号灯。
我们在马路上,那些不守交通规则当马路是自己家开的家伙们,可能即便看到了信号灯变红,也不停车。
而橙色的“等待模块”也可以直接调用传感器数据,
在这个时候就起到了阻塞作用,就像在车子面前挡了一面墙,根本不让你走。
我们的程序就可以这样“优化”,这样一来,没看到我们需要的颜色时,根本就是“此路不通”的节奏。程序也就不会乱跑了。
大家可以动手试试,看看简单的一个小修改,带来完全不同的效果。
当然,我们可以根据自己的想法,继续优化这个程序。
体验,优化程序的方向
体验这个词,是现在科技节很流行的一个词,慢慢延伸到了各个行业各种领域。
同时我们可以认为这也是我们编写出或者创造出一个优秀机器人作品的标准。
我们优化的东西是什么?就是体验!
体验包含了很多含义。
首先得“能用”,
然后是“好用”,
再后是“用得舒服”
再然后是“用得爽”
再再然后,最希望的是“没有之一,只用这个”
……或许还有更多……
我们用一个具体的案例去分析一下。
题面:
有数个颜色块(为方便编辑文章,我们暂时定4种吧),让机器人根据不同的颜色块,发出不同的声音,以方便识别出颜色的不同。
题目不难对不对?
程序只要这样编写就可以了。
程序每扫描一个色块,发出的声音就是不一样的。
这样编写出的程序,我们称之为“能用”。
于是我们进一步思考。
在实际“体验中”,这个程序显得呆板,我们可以让EV3直接发出颜色对应的英语单词,这样,使用者就不用看,也能知道扫描到什么颜色了。
所以我们修改发出的声音,这样来优化程序。
这样不用眼睛就能知道是什么颜色的程序,我们称之为“好用”。
我们再一步思考。
在实际体验中,我们能不能让使用者一下子把这些色块都扫描掉,然后机器一次性就把所有颜色报出来?这样就不用拿一个放一个,可以一下子拿起放下。
于是,我们继续优化这个程序。这次就相对复杂一些了。
需要使用到变量和阵列模块。但为了“体验”嘛,值得!
把色块一次性扫描后,全部记录下来,使用者扫描完后,程序就开始报出颜色的英文。这可能就会“用的舒服”。
(上图里面还是有坑的,试试看自己是否能够找出并修改呢?!嘻嘻)
我们再一步思考。
程序也是要“有礼貌”的嘛,谁都喜欢每一次使用机器时,收到一声问候。
所以,我们可以继续加强这个程序的“互动能力”
这样一来,程序打开时,就会自动跟使用者“打招呼”是不是会让使用者心情更好呢?会不会“用得爽”些?
最后“离不开,非得用”就是那些IT大神们一直在不断努力的方向。
怎么让每个使用者爱上我们的技术作品,这个是永恒的话题。
有没有发现,虽然程序复杂了很多,
但我们所有的“优化”方法,都在我们之前的编程课里面学习过!
并不是很难,而是要有方向,对不对?!
为什么以前很多人爱用“苹果”的产品?
是因为大家了解技术吗?NO,当然是因为“好用”。
为什么现在越来越多人也习惯于用国产手机?
是因为便宜吗?NO,当然还是因为“越来越好用”。
为什么参加FTC/FLL/WRO创意赛的作品,主题一样,效果也一样,但就是有那么些作品备受裁判员的青睐?
是因为做的够大?
NO,其实还是因为现场体验非常棒!甚至有些同学的作品申请到了《国家数字专利》!
我们学习STEM,不是为了学科,而是为了某一种思考问题的方式。
每一个问题,都能分析出很多很多“需求”和优化的“需求”。
并且,不同职业,不同年龄,不同经历的人,分析出的问题,都会不一样。
这也是STEM最好玩的地方。
我们学习STEM,不是为了培养所谓的学科能力,而是为了应用,了解,创造和解决更多的问题。
而这一切,不是一个人可以完成的,所以,机器人学习,一定是一种“团队文化”的经历过程。
大神其实也是普通人,
会不会将来的你也是被人奉为大神的存在呢?
好啦,我们下期再见!
重点总结
总结前面几次课的内容,了解如何优化作品!
感谢关注本号,若觉好,请帮转
老丁介绍
主业:
某知名技术研发企业总监
机器人教育相关经验:
上海科技馆SVR虚拟机器人课程特邀讲师
FIT启蒙创新认证讲师、教练员
WRO 及 First系列挑战赛事教练及裁判员
领取专属 10元无门槛券
私享最新 技术干货