魔术按钮活动

让我们学习如何检测micro:bit附近的磁铁吧!

  • Get started
  • JavaScript Blocks
  • Inputs
Print lesson
  • 年龄 8+
  • 30 分钟
  • JavaScript Blocks

简介

这个项目使用micro:bit的指南针来检测磁铁的存在。

教学指南

打开

课堂活动

6个步骤

这是一个简单的魔术把戏。通过移动你的micro:bit的AB按钮的贴标,你让这两个按钮看起来好像真的被切换了一样。你可以给你的朋友们表演,他们会感到惊讶的。

工作原理

不幸的是,这里唯一的魔法就在代码中。 这个把戏使用了一块磁铁。你把磁铁藏在手心里,告诉micro:bit来切换按钮。当磁铁靠近micro:bit,A 按钮开始像B 按钮一样工作,并且B按钮开始像 A 一样工作。

关于作者

这个项目由布莱恩和贾思明诺曼(又名@MicroMonstersUK)创作的。 你可以在 youtube的micro:bit 教学频道查看更多他们的项目。

你需要什么

这个游戏你唯一需要的是micro:bit和任意一块尽可能小的能够被你握在手中的磁铁,甚至是一块冰箱的磁铁也可以。


步骤1:让按钮显示A和B

在我们给这个把戏编程之前,我们需要让按钮像你期待的一样工作,因此按下按钮A显示“A”,按下按钮 B则显示“B” 。


步骤2:测试磁力

我们将使用micro:bit的指南针来检测磁铁。 指南针通过检测地球的磁场告诉我们目前指向的方向,但是它们也可以检测附近任何其他磁铁。 我们将用这个功能来检查我们的磁铁是否靠近micro:bit,并使用输入菜单中的“more”(更多)选项下面的“magnetic force”(磁力)积木块。 因为我们只想测量磁场强度,因此我们改变下拉选项以选择“Strength”(强度):


步骤3:检查附近是否有磁场

现在我们可以检测micro:bit附近的磁力,我们可以查看检测到的数值是否很大。数值很大就意味着附近有一个很强的磁场。

如果你曾经玩过磁铁,那么你肯定知道他们有2个端点,这2个端点通常被称为南极和北极。 根据micro:bit上的磁铁指向哪一端,测出来的磁力要么是一个负数,如:-100;要么是一个正数,如:100 。 我们只想要知道强度是否至少是100,不管它是正数还是负数。因此我们也使用了“maths”(数学)菜单中的“absolute value of”(绝对值)模块来告诉我们代码,以忽略负号,并将-100当作它的100 。

所以在下面的代码中,我们将查看我们磁场强度读书的绝对值是否大于100,并将检查结果保存在一个叫做“isSwitched”(被切换了)的新变量中。


步骤4:运行我们的“magnet nearby”(附近的磁场)始终保持检查

当我们的程序检测附近的磁铁的时候,它将只运行一次。因此,我们需要将它放到forever(永久循环)积木块中,让它能够一直不停地运行,来查找micro:bit附近的磁铁。 我们也应该确保程序启动的时候,“isSwitched”是false(假的)。


步骤5:检测到附近的磁铁后,切换按钮

现在我们可以随时查看变量“isSwitched”的值。如果它的值是“true”(真的),那么我们知道磁铁就在附近。 让我们用它来改变按钮的工作方式,完成我们这个游戏的程序。 我们将添加一个“if else”积木块到每个按钮的代码中,并检查我们是否应该切换每个按钮的显示,因为“isSwitched”等于true(真的):


步骤6:表演练习

现在你只需给你自己的micro:bit编程,并练习这个把戏几次,然后再表演给朋友们看。 在你切换标签之后,试着让你的朋友点击按钮。因为他们手里没有藏着一块磁铁,所以这个把戏不会生效。

挑战

试着添加下列功能:

  • 当超过了一定的磁力强度之后,添加一个动画。
  • 按下“A+B”按钮,出现了一个磁性读取选项。
Selecting this opens external content from our support system, which adheres to their privacy policy.