Skip to content

活动

加密通讯

中级 | MakeCode | LED显示器, 按钮, 无线电 | 加密, 抽象, 输入/输出, 选择, 通信

第 1 步:制作

它是什么?

发送BBC micro:bit无线电信息,告诉其他人您现在的感受。

这两个视频告诉您将要制作什么以及如何编程实现它:

工作原理

  • 在您的micro:bit上按下不同的按钮,通过无线电发送不同的消息给另一个micro:bit,从而告诉其他人您现在的心情。 作为接收端的micro:bit能它的LED显示器上显示开心、伤心或者兴奋的表情。
  • 确保你和你的伙伴使用一个独特的无线电组,这样你可以将消息发送到特定的micro:bit或拥有该micro:bit的那个人。
  • 这个程序使用了一种简单的编码方式,也可以说是加密方式。 编码(加密)的做法可以阻止其他人读懂您的信息,从而让您的信息安全。
  • 我们所用的编码方式是一种简单的数字加密法。 这是一种加密方式。 在这个示例中,17代表开心,23代表伤心,42代表兴奋。 注意——无线电只能发送数字或字母,发送不了表情本身。
  • 和一个同伴对使用哪个无线电组、允许收发哪些信息和这些信息的加密方式达成一致,意味着您和您的同伴认可了一份协议,或者说是一套规则可以让您和您的同伴通信并保证信息安全。 使用下面的加密通信计划表来设计您自己的通信协议。
  • 在您和您的伙伴各自的micro:bit上都使用同样的程序代码,这样您们就能互相通信了。

所需材料

Secure messaging planning sheet

加密通信计划表

第 2 步:编程

1from microbit import *
2import radio
3
4# The Python version of this project has sleep()
5# for each button press to make the A+B button work better
6
7radio.config(group=3)
8radio.on()
9
10while True:
11    if button_a.is_pressed() and button_b.is_pressed():
12        display.show(Image.SURPRISED)
13        radio.send('42')
14        sleep(300)
15        display.clear()        
16    elif button_a.is_pressed():
17        display.show(Image.HAPPY)        
18        radio.send('17')
19        sleep(300)
20        display.clear()
21    elif button_b.is_pressed():
22        display.show(Image.SAD)
23        radio.send('23')
24        sleep(300)
25        display.clear()
26        
27    message = radio.receive()
28    if message:
29        if message == '17':
30            display.show(Image.HAPPY)  
31        elif message == '23':
32            display.show(Image.SAD)
33        else:
34            display.show(Image.SURPRISED)
35        sleep(2000)
36    display.clear()
37    sleep(200)

第3步:完善

  • 更换开心、伤心和兴奋之外的表情,从而来发送不同信息。
  • 使用micro:bit的更多物理输入来支持发送更多不同信息,例如晃动手势或micro:bit的V2版本的触摸徽标。
  • 显示滚动文字来替代表情,例如”hot“、”cold“和”warm“这些单词,来实现热和冷之类的寻宝游戏。