首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Sphero BOLT 红外线

别忘了洗手!

在这项活动中你将成为一个流行病学家去阻止一种罕见的机器人病毒;传播感染我们的BOLT机器人。

你将学习到BOLT的集成红外通讯,以及如何使用它在BOLT机器人之间传递信息来触发事件。要完成这项活动你得慢慢来,总共有三个程序需要你来制作编辑,所以找上三五好友然后开始编码吧!

探索— 红外通讯

红外通讯或者叫红外线通讯是一种普遍、实惠和简便的无线通讯技术。红外光除了波长更长一点之外与可见光非常相似,这也就意味着人眼无法感知到红外线,所以红外线非常适合无线通讯。

有了红外系统,BOLT就可以向其他BOLT机器人发送信息。这些信息可以被用来满足某个条件并执行程序的特定部分。这种条件语句也叫作事件。与事件相关的代码只有在条件被满足时才会运行。在这项活动中你将更多地了解到这是如何运作的。

观看下面这个关于红外线和BOLT快速预览的视频。

探索 — 流行病学

流行病学是研究和分析疾病(和其他健康因素)的发生率,分布,风险因素和可控的研究。事实上,流行病学英文单词的字面意义就是“研究疾病在人群中是如何发生的科学”。

在这次的活动中你会成为机器人的流行病学家。和传统流行病学家一样,你将要观察疾病是如何从一个个体(在这个项目中是从一个BOLT机器人)传播到另一个和更多个体的。

两种疾病的常见传播方式是空气传播和接触传播(包括与感染疾病的传染源接触和接触被传染源污染的物品)。

接下来你会用两个事件模块来帮助你模拟疾病通过空气和接触的传播。

下列哪一项不是流行病学家研究的对象领域?

最近儿童流行性腮腺炎的增多。

指导群众如何在冬季保持健康。

决定如何降低流感在易感人群中的传播。

在繁忙的十字路口需要新建一个停止标志。

技能学习 — 传染

为了找到对抗病毒的方法,了解病毒是如何能够入侵一个群体(本次是BOLT机器人群体)是很重要的。

在这一步中,你会利用BOLT的集成红外线传感器来向其他机器人发送信息,这样就可以使其他机器人感染机器人病毒。因为是通过空气传播的并且肉眼不可见,红外信息就可以模拟病毒在空气中的传播。

创建一个新的模块工作区并将它命名为“感染”

先编写一个永久循环模块。这样就可以通过不断发送红外信息来不断传播病毒。

用嵌套在循环内的点阵屏模块为病毒添加一个连续的图像或是动画。

为了感染BOLT机器人群,你将需要携带感染源的机器人以随机的方式连续滚动以覆盖尽可能多的地面。和你的伙伴(或团队)讨论你们使用哪个模块来使BOLT连续移动。

你想出了什么?随意尝试一些想法。以下是一种方法:

添加一个嵌套在循环里的滚动模块,就在那个点阵屏模块下面。

点击算符分类然后找到随机整数模块,你需要这个来随机滚动模块的每一部分。

把随机整数模块拖到三个滚动模块的圆圈内(方向、速度和持续时间)

随机整数模块的第一个是最小值,下一个就是最大值。试验每个设置:

方向 -你想让被感染的BOLT向哪个方向移动?

速度 -BOLT应在机器人群中以多快的速度移动?

持续时间 -每次移动应持续多久?

最后,你需要将病毒通过空气传染给其他的机器人。

点击通讯分类然后放置一个嵌套在循环里的送信模块就在那个滚动模块下面。保持通讯频道在4频道。

红外线强度(把这个想象成通讯强度)范围在0-64。强度越低,能接收到信息的机器人就越近。

在送信模块的强度设置里添加一个随机整数模块,设置范围为0-3。

技能学习—被感染者

一旦携带传染源的BOLT变弱,你就需要准备其他的BOLT来接收传染源(红外信号)。每个BOLT被感染后都会需要像第一个BOLT一样行动,并且也开始传播病毒。打开一个新的模块工作区并将它命名为“健康的”。

拖拽一个点阵屏模块到开始程序

为所有“健康的”BOLT制作一个在它们被感染前可以运行的简单的开心的动画。

你需要一个信息处理模块来接受其他BOLT发来的红外信号。

既然我们已经在之前的步骤里通过4号频道发送了感染信号,那么我们就要保证我们收到信息也是在同一个频道里。

在信息处理模块下面再放一个新的点阵屏模块。制作一个表现病毒传染到未感染BOLT的动画。

在点阵屏模块下面创建一个for循环模块并设定它重复两次。

添加两个旋转模块并且设定它们使被感染的BOLT旋转移动。

如果你想使BOLT(以及你附近的其他人)真的生病,把一个声音播放模块放在循环后面然后从个性小组里选择呕吐声。

现在感染在传播了,每个新感染的BOLT都需要像第一个BOLT那样行动。

回过头看看第三步然后在这里重新创建一个程序,在声音播放模块后面添加永久循环和其他模块。

技能学习—被感染者(附加)

现在你已经用信息处理模块建立了一个事件,创建另一个模拟通过接触传播的感染。

在事件分类里看看其他不同的模块。你认为哪一个能最符合?

当识别出相对于机器人原始速度的加速度变化时,就会触发碰撞事件。这意味着,如果BOLT识别出任何足以触发事件的触摸或冲击,则附加的代码将运行。在这事件中是使用了集成加速度计来测量加速度的任何变化。

使用碰撞事件来创造传染的第二个条件。简单来说,添加碰撞模块然后复制永久循环以及里面嵌套的用来传播病毒的模块。

挑战—治疗

没有得到治疗的传染会变成什么样?

你已经成功的将BOLT编写成被感染的以及即将被感染的了。现在是时候来介绍第三种BOLT了,治疗BOLT。

要编写一个治疗程序你需要创建第三个程序,并且升级你之前编辑的两个程序。

新建我们的第三个程序并命名为“治疗”。这个就将成为治疗BOLT的程序。而且它可以免疫感染。既然这是一个挑战,就没有模块的图片以供参考了。

你希望这个BOLT可以不间断的传递治疗的红外信号。

你之前是使用哪个模块来不停重复编码的一部分的呢?

创造一个在BOLT滚动治疗它的伙伴们时可以不间断播放的点阵屏动画。

这个BOLT需要像被感染的机器人一样四处滚动,但是需要比它们更快一点。

你用的是哪个模块来随机BOLT的行动的呢?

提示:保持速度始终如一来快速治疗被感染的机器人。

就像之前一样,你需要使用红外线来发送治疗信息。之前你使用的是4号频道。现在你需要为治疗的信息选择一个新频道。简单点就选择5号频道吧。别忘了随机红外强度。就像一些疗法一样,可能会花更多的时间来治愈不同的机器人。

治疗法应该和之前第三步中的“感染”程序很相似,在第七步中继续剩下的治疗吧。

挑战—剩余部分

编制好了治疗程序后,你需要回到前两个程序然后添加一些新模块来确保每个机器人都能被治愈。

再次说明,这是个挑战,所以就不提供需要用到的模块的图片了。

你首先需要确保那个将感染带到机器人群中的BOLT可以被治愈。打开“感染”程序然后添加一个新的信息处理模块。别忘了调到5号频道。

你可以自己决定当一个BOLT机器人接受治疗以及被治愈时会发生些什么。你使用的模块需要附在新的信息处理模块上。

打开“健康的”程序然后添加上述步骤中同样的信息接收模块和同样的你用来展示治愈一个被感染机器人过程的模块。

就是这样啦!现在是时候来看看机器人能不能好好运作了。

在地上清出一些空间。这取决于你要用多少BOLT机器人,你可能会需要一些更多的空间。

将“健康的”BOLT随机地放在地上。你可以让它们四面散开来也可以把他们聚在一起。尝试运行程序时用不一样的方式,然后观察病毒的传播。

启动“健康的”程序。它们应该都在运行你设定的开心的动画,直到被感染。

将被感染的BOLT放在其余机器人的边上。启动“感染”程序然后观察这个被感染的机器人穿过其余的机器人;然后传播它那可怕的机器人病毒。

当所有的BOLT都被感染了之后,将治疗BOLT放进来。将携带治疗的BOLT机器人放到BOLT们中间。启动“治疗”程序然后观察它们都变回健康。

回顾

和你的伙伴或是团队讨论以下的几个问题:

它和你想象的一样成功运作了吗?

感染传播了吗?如果没有,哪个程序或模块是需要你修改的呢?

当你投入治疗BOLT时,所有的机器人都被快速治疗了吗?

如果一个仍是被感染的BOLT靠近了一个刚治愈的BOLT会发生什么呢?

你如何能让一个刚治愈的BOLT可以免疫二次感染呢?

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200720A06UZP00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券