ステップ1: 作る
説明
BBC micro:bitの無線通信でメッセージを送って、あなたがどう感じているかを誰かに伝えましょう。
この2つのビデオで、何を作るのか、どのようにプログラムするのか、をご案内します。
動作の仕組み
- あなたのmicro:bitのボタンを押すと、ボタン入力毎に異なるメッセージを無線通信で他のmicro:bitに送り、あなたがどう感じているかを伝えます。 受信側のmicro:bitには、幸せや悲しみ、興奮の絵文字がLEDに表示されます。
 - 特定のmicro:bitやそのmicro:bitを持つ特定の人にメッセージを送るために、あなたと相手だけの無線グループを使ってください。
 - このプログラムは簡易的な符号化や暗号化を使用します。 例えば他の人があなたのメッセージを読むのを防ぎ、あなたは秘密のやり取りをすることができます。
 - 使用する符号化は単純な数字 暗号方式 です。 これは 暗号化 の一種です。 この例では、"17"は幸せ、"23"は悲しみ、"42"は興奮を意味します。 注意 - 数字または文字のみが無線で送信でき、絵文字は送信できません。
 - 無線グループと送ることのできるメッセージ、メッセージの暗号化方法を相手と取り決めることは、プロトコルに同意したことを意味します。プロトコルは、あなたと相手がメッセージを安全に保ちながら通信するルールです。 このシートを使用して、独自のメッセージングプロトコルを作成してください。
 - 同じ符号化が両方のmicro:bitで動作するので、あなたと相手は互いに通信することができます。
 
必要なもの
- micro:bit 2個
 - MakeCodeまたはPythonエディター
 - バッテリーパック(オプション)
 - MakeCodeまたはPythonエディター
 

秘密のメッセージシート
ステップ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の加速度センサやロゴタッチセンサの物理的な入力を使って、さらにメッセージを送る。
 - かくれんぼをするために、絵文字の代わりにhotやcold、warmのようなスクロールする文字列を表示する。
 
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.


