EV3编程实践—动图

EV3是乐高(LEGO)公司开发的第三代MINDSTORMS教育版机器人,由于其设计精巧,皮实耐用,且功能十分强大,因而在全世界拥趸无数。现在国内外90%以上的青少年机器人教育机构都会选用该版套件作为教学的配套实验设备。

 

本文将以一个非常小的应用实例来让大家体会一下EV3编程的乐趣。

 

编程题目:在EV3主机屏幕上,以坐标(5,5)处为圆心画出半径为5的实心小球,并以“每0.05秒钟移动一次,每次移动时小球位置的X坐标+3,Y坐标+4”的初始方式开始在屏幕中持续运动;当小球运动到屏幕的上、下、左和右边缘时,小球产生碰壁反弹,并同时播放音效“Click”(播放音效不影响小球运动)。

 

运动方向碰壁反弹示例如下,示意图1为碰到下边缘及碰到右边缘的反弹。(难度系数为中等,需要用到的知识包括变量、屏幕坐标系等)。

 

德创工坊:EV3编程实践—动图

图1 碰壁反弹示意

我们可以把解题过程分为两个步骤。第一阶段先显示一个会斜着移动的小球,第二阶段再让它实现反弹,达到题目的所有要求。

 

第一阶段,我们要先显示一个小球并让它在一个方向上动起来。流程图如图2:

 

德创工坊:EV3编程实践—动图

图2 流程图

第一个步骤,“定义变量,增加循环”。在程序一开始定义数字变量x作为小球的横坐标,y作为小球的纵坐标,将它们的初始值都设为5。然后在它们后面添加一个无限循环,如图3所示。

 

德创工坊:EV3编程实践—动图

图3 x、y变量与无限循环

第二个步骤,“以坐标(x,y)为圆心画出小球”。在循环中加入变量模块和显示模块来显示一个半径为5的小球。显示模块应将清除屏幕选项设置为“真”,以确保清除了之前图案的残像,如图4所示。

 

德创工坊:EV3编程实践—动图

图4 显示出小球

第三个步骤,“让小球动起来”。小球移动每次将y坐标加4,x坐标加3。坐标计算的程序见图5,把这段程序放到循环内已有模块的后面。

 

德创工坊:EV3编程实践—动图

图5 改变小球坐标

第四个步骤,“等待0.05秒”。在循环内最后,再添加一个0.05秒的等待模块。这个模块太重要了,重要到没有它,你就看不出来小球在屏幕上存在过。

 

 到现在,第一阶段就完成了。不会反弹的小球虽然很快就会跑到屏幕外面去,但是我们已经可以看出小球的移动轨迹了。

 

第二阶段,我们让小球可以碰壁反弹。碰壁反弹的规律是:入射角=反射角。

 

德创工坊:EV3编程实践—动图

图6 入射角与反射角

小球的斜向运动可以“拆”成一个横向速度和一个纵向速度。第一次与屏幕边缘的碰撞发生在下边缘,就如图6所示。

 

在下边缘的反弹过程中,横向速度没有改变,而纵向速度变得和原先相反了。在其他边缘的碰撞同理。而小球圆心位置距离屏幕边缘小于5个像素点时,就说明小球已经碰上屏幕边缘了,需要改变运动方向。碰撞反弹的实现流程图如图7所示:

 

德创工坊:EV3编程实践—动图

图7 碰撞部分流程图

第一个步骤,“增加速度变量”。我们增加变量“xspeed”存储横向速度数值,增加变量“yspeed”存储纵向速度数值,并在程序开始时定义及赋予初始速度值,如图8。

德创工坊:EV3编程实践—动图

图8 创建速度变量

第二个步骤,“修改小球移动的坐标计算过程”。将图5中的程序修改为如图9的程序。

 

德创工坊:EV3编程实践—动图

图9 修改后的坐标计算过程

第三个步骤,“实现屏幕下边缘碰壁反弹的效果”。先解决下边缘碰撞的逻辑,如果小球的圆心y坐标大于123,则把yspeed改为“-4”,程序如图10所示。把这些模块放到坐标计算模块的后边,小球就有了屏幕底边反弹功能了。

 

德创工坊:EV3编程实践—动图

图10 通过组合比较模块与切换模块设定更加复杂的条件

第四个步骤,“实现另外三个边缘的碰壁反弹效果”。增加三个同样格式的切换用于判断在另外三个方向上的反弹。表1可以帮助你编写这些反弹用程序:

表1 碰撞反弹数据表

比较的变量

反弹条件1

反弹条件2

X

≥174

≤5

Y

≥124

≤5

加入一个声音模块,并在声音文件“LEGO声音文件”—“系统”中选中“Click”声音,然后把播放类型改为“1”播放一次,修改完成的碰撞反弹部分如图11。

德创工坊:EV3编程实践—动图

图11 加上播放声音的碰撞反弹

到现在为止我们已经完成了题目要求的所有内容,将它下载之后试一下吧!在完成题目要求之后运行程序,屏幕上不断反弹并发出声音的是不是就像是一个木箱里的小球一样?

 

程序看起来简单,可是多题考核、现场编程,对小选手们可是个不小的考验呢!

 


版权所有,盗用必究。


 

===============================

为庆祝菁华浩扬建校20周年,德创工坊机器人教育特举办报名优惠活动。报名具体费用如下:

初级班:菁华浩扬校内生为1440元;校外生:1800元。

中级班:菁华浩扬校内生为1680元;校外生:2100元。

单报一期以上费用不变。

连报两期享受6.5折优惠

(初级每期1170元,中级每期1365元)

连报三期享受5优惠

(初级每期900元,中级每期1050元)

===============================

 

德创工坊:EV3编程实践—动图

德创工坊系由德国恳谈会联合菁华浩扬教育团队打造的专业机构,主要面向中小学生提供机器人及相关科学类培训课程,其核心成员主要由来自德国、北京、上海三地高校的博士组成。旨在培养青少年儿童在数理化、机械、编程、电子等工程等领域的综合能力,提升个人的创造性思维,并让更多的学生能够接受到STEM教育。

 

德创工坊:EV3编程实践—动图

Ø  核心研发团队清一色高学历人员构成(博士、硕士)

Ø  师资队伍充沛、稳定,知识体系覆盖全学科,教学经验覆盖各年龄段

Ø  菁华浩扬教育集团有着20年的办学经验,底蕴深厚,管理科学

Ø  强大的经济实力允许我们购买最好的设备,参加最优的大赛

 

德创工坊:EV3编程实践—动图

  

德创工坊拥有完整的课程体系,配有国际先进的教具器材,寓教于乐、循序渐进,让学生在综合运用逻辑思维能力的同时,逐渐培养创新意识、科学探究能力和团队合作精神,是具有终身学习能力、创造能力、沟通能力、协作能力的国际人才的必修课程。

德创工坊:EV3编程实践—动图