第 1 步:制作
它是什么?
利用BBC micro:bit的无线电功能实现这个有趣双人游戏。
学习目标
通过这个项目,您将学到:网络,电子设备如何通过无线电在彼此间传递信息,以及电脑如何以不同数据类型存储信息(比如说将单词以字符串的方式存储)。
工作原理
- 这是一个两人游戏。 一个人把宝藏(任意一个东西)藏起来,然后给搜寻者(另一个人)线索:搜寻者和宝藏很接近时,要提示说“热”;搜寻者远离宝藏时,要提示说“变冷了”;搜寻者靠近宝藏时,要提示说“变暖了”。
- 一般来说,藏宝人得靠喊来提示“热”、“变冷了”和“变暖了”。但在我们这个版本里,这些提示将通过无线电,从一个micro:bit发送到另一个micro:bit上,并显示在LED显示器上。
- 我们需要编写两个程序,一个给藏宝人用,另一个给搜寻着用。
- 首先,两个程序都要将自己的无线电组设置为47. 组就像频道,因此,使用位于同一组的micro:bit才会收到消息。 你可以在0-255之间选择任何你喜欢的组号。
- 藏宝人按下按钮A,能发送提示信息“变暖了”;按下按钮B,发送“变冷了”;同时按下按钮A和按钮B,发送“热”。
- micro:bit可以发送数字或文本类型的信息。 我们在这个项目里使用文本类型信息,因此确保您使用的无线电代码块,无论是发送还是接收,都使用参数类型 字符串 类型的,而不要使用 数字 类型或者 值类型的。
- 在电脑的世界里,一个字符串是一串字符,可以包含字母、数字、符号和各种空格。
- 搜寻者的micro:bit接收到一条无线电信息后,它会在自己的LED显示屏上显示它收到的这条信息。 同时,这条信息也会在藏宝人的micro:bit的LED显示屏上显示。
所需材料
- 2个micro:bit主板
- MakeCode编辑器
- 电池组(推荐)
第2步:编程
藏宝人的程序代码
1# Imports go at the top
2from microbit import *
3import radio
4radio.config(group=47)
5radio.on()
6
7while True:
8 if button_a.is_pressed() and button_b.is_pressed():
9 radio.send('HOT!')
10 display.scroll('HOT!')
11 elif button_a.is_pressed():
12 radio.send('warmer')
13 display.scroll('warmer')
14 elif button_b.is_pressed():
15 radio.send('colder')
16 display.scroll('colder')
17 sleep(100)
搜寻者的程序代码
第 3 步:完善
- 编辑程序,使用不同的单词来取代代码里的”hot“(热)、”colder“(变冷了)和”warmer“(变暖了). 例如,你可以用你正在学习的外语来使用“hot”、“colder”和“warmer”。
- 给您的程序添加声音效果。
- 给您的程序加上计时器或者计数器,看看您能多快找到宝藏。
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.