前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >EV3程序(一)直行

EV3程序(一)直行

作者头像
叶子陪你玩
发布2020-03-12 14:41:35
1.2K0
发布2020-03-12 14:41:35
举报

第一个任务目标:让车往前直走2s


对于一个没有接触过EV3的孩子来说,一般我会先打个样。

让一个轮子走2s

下载程序后,车子只有一个轮子走2秒,那我们要让车直走,应该需要两个轮子都走才可以。正常孩子都会想到下面的程序。

下载程序后,结果一个A电机轮子先走两秒,接着D电机走两秒,并没有出现我们想要的直走2s的效果。

D电机和A电机换个位置试一下,结果这次D电机先走两秒,接着A电机再走两秒,还是没有出现我们想要的效果。


尽管尝试了两次还是没有得到我们要的效果,但是从上面的尝试中,我们也是得出了一些有用的信息,我们发现谁在前面,谁就先动。可是车要直走,那么两个轮子就必须同时启动,所以谁在前面都是不妥的,因为它们是同等级别的,自然就不能有先后之分,那么要如何解决这个问题呢?

既然前后不行,那我们就并排吧,这样就没有先后之分啦,我们把前面的线给引出两条来,成功解决。这就是并行同步处理(一个点连出两个,三个都是可以的)


除了上面的方法,下面这个方法也是可以的(多任务处理)

记住我也是可以的


回顾总结:通过上面的例子,我们要知道程序它是有先后之分的,在前面的会先执行,之后才会执行后面的。当然了这些都是在顺序流程下来讲的,如果有条件的话,前面的有可能会直接跳过。要实现同时运行的话,可以使用并行同步方式(分支)或者多任务处理方式(多个启动程序,也就是多个开始模块)


第二个任务目标:让车一直往前走

要解决这个问题的话,我们就需要用到一个新的模块 - 循环模块:重复做一件事情,可以有好多种模式,可以无限制模式,也可以指定模式,还可以条件模式等等

我是无限制循环模式

我是指定次数模式,所以我只重复 1 次

我是条件模式,条件有很多种,可以看见障碍物退出循环,可以检测到制定颜色退出循环等等。我是等待时间循环,5秒时间一到我就退出循环


下面开始解决我们的问题了,如何一直往前走呢?

这还不简单嘛,看我的。

嗯,很不错,但是略带瑕疵,每过两秒总会顿一下,没有非常顺畅的效果,苦恼中ing

好了,用下面的方法就可以完美解决了。

偷偷告诉你下面这个方法也可以哦


奇怪,前面一个例子不是说程序是按先后顺序,怎么这里又出现这种情况了呢?

嘿嘿,这里又要解释了,首先在强调一遍,前面说的先后顺序是对的。而这里的方法也是可行的,原因是因为计算机的强大运算能力,执行一个程序指令只需要非常非常非常短的时间(大概可能是0.0001s,总是就是很短啦),以至于可以忽略不计了。

所以上面的程序就可以理解了,A电机动完马上D电机接着,以闪电的速度前后交替重复,以至于你更本就感觉不到有先后之分。

闪烁代表程序在执行,你能看清楚谁先谁后嘛

这个我可以看的清楚,先A电机2s,然后D电机2S,前后交替执行(电机转两秒还看不清那就是瞎子了)

换成并行的就可以了,同时2s,每次两秒结束其实会有一个非常短的的停顿,所以前面车说会走两秒就会顿一下,就是这个原因。


下面再让你看看程序跑的有多快啊,睁大眼睛看清楚了

不用揉眼睛了,你的眼睛没有问题,前面1,20,100本来就看不清楚,调到1000次,也是一闪而过,可见速度有多快。


回顾总结:这个任务我们可以知道循环模块是怎么一回事了(重复执行);程序执行速度是非常快,以至于你都分不清到底有没有先后之分,实际上是有的。


直走其实有更简单的方法

第一种:使用移动转向

第二种:使用移动槽

原理其实和前面的是一样的,只不过软件把它们直接给合在一起了,以后可以直接用这个方法就可以了,但是前面的方法我们也要了解掌握哦


今天关于直行的讲解就到此结束了,谢谢你的阅读,有问题或者建议可以下面留言哦。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-10-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 叶子陪你玩编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档