java写ev3程序_EV3程序(一)直行

这篇博客介绍了如何使用java为EV3编写程序,让机器人直行。首先,通过示例说明了单个电机运行无法实现直行的问题,然后通过并行同步和多任务处理解决同步启动的问题。接着,探讨了不同类型的循环模块在实现机器人持续直行中的应用,揭示了程序的执行顺序和计算机的快速运算能力。最后,提到了两种简化直行操作的方法——移动转向和移动槽,并鼓励读者继续学习和探索。
摘要由CSDN通过智能技术生成

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

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

559b7b05c1c3740c8bd8c089fbbb8447.png

让一个轮子走2s

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

b219b57337d5cb63f66be2d4e9221dc7.png

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

dd539885ee821d79f11e933466da6a38.png

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

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

cd981276a48af403b946eb32bf175b07.gif

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

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

46710ede4ffe47646db02a37aa3d55bf.png

记住我也是可以的

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

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

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

3503477f194b1b33f881388cfc34d2e1.png

我是无限制循环模式

577cc900e8605cc9b216828abe5ffe07.png

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

7d571d83293657bc1c16331682d4fe95.png

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

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

这还不简单嘛,看我的。

8a7d94e09ba7d0036df73985a91a43a2.png

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

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

e53faee69cac03ef507931e6999c35ec.png

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

04f5a23fa7ef40831ebbeece5fd4f457.png

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

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

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

35cc96436f78868e0984231781f0395a.gif

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

a491e0f545e4c1bee260bbd603646834.gif

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

aca717237d915bfef233a418112adc27.gif

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

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

e4e59ba49d05742d801cc75cbe4a3b80.gif

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

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

直走其实有更简单的方法

第一种:使用移动转向

b16d5e10819555a7a50664ab659235e3.png

第二种:使用移动槽

42d2d3ecd8d098acd0e9e17662c02d5b.png

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值