【マイクロビット×MakeCode】モールス符号で話そう(チュートリアル:Morse Chat)

この記事では、MakeCode for micro:bitのチュートリアル「モールス符号ふごうで話そう(Morse Chat)」について紹介しょうかいします。

「モールス符号ふごうで話そう(Morse Chat)」では、ロゴと無線むせん通信つうしん機能きのうを使って、ほかのマイクロビットとモールス符号ふごうをやりとりするプログラムを作ります。

モールス符号(ふごう)とは、長い信号しんごうと短い信号しんごうを組み合わせて文字や数字などを表す電信でんしん用の符号ふごうです。

ジブリ映画えいが天空てんくうしろラピュタ」の冒頭ぼうとうでムスカがモールス符号ふごうを送っていたり、「がけの上のポニョ」で宗介そうすけがおとうさんとモールス符号ふごうで会話しているシーンがありましたね。

それでは、モールス符号ふごうでメッセージを送受信そうじゅしんしてみましょう!

新しいバージョン(V2.0~)用のチュートリアルです。
また、実機じっきで動かす場合マイクロビットは2台以上いじょう必要ひつようです。

 

スポンサーリンク

チュートリアルを開始する

MakeCode for micro:bitのホーム画面を開きます。

チュートリアル「Morse Chat」選択せんたくし、ブロックの「チュートリアルを開始」をクリックしましょう。

チュートリアル「Morse Chat」を開始する

 

不要なブロックを消す

最初さいしょだけ」「ずっと」ブロックは今回使わないので消しましょう。

「最初だけ」「ずっと」ブロックを消す

 

モールス符号「・」を送る

入力カテゴリの「ロゴが短くタップされた」ブロックを出し、中に無線むせんカテゴリの無線むせん数値すうち送信そうしんブロックを入れます。

送信そうしんするあたいは0のままでOK。

ロゴが短くタップされた時、無線で0を送信

無線むせん数値すうち送信そうしんブロック
無線むせん通信つうしんで、同じグループのマイクロビットに数値すうち送信そうしんします。

 

モールス符号「-」を送る

もうひとつ「ロゴが短くタップされた」ブロックをプログラミングエリアに出します。

新しく出した「ロゴが短くタップされた」ブロックの「短くタップされた」をクリックして「長くタップされた」変更へんこうしましょう。

「ロゴが長くタップされた」ブロックの中に、無線むせんカテゴリの無線むせん数値すうち送信そうしんブロックを入れ、送信そうしんするあたい1変更へんこうします。

ロゴが長くタップされた時、無線で1を送信

ここまでで、2種類しゅるい信号しんごう送信そうしんするプログラムができました。

  • ロゴを短くタップ(短い信号しんごう「・」) → 0を送信そうしん
  • ロゴを長くタップ(長い信号しんごう「-」) → 1を送信そうしん

 

数値を受信したとき

メッセージを受信じゅしんしたときの処理しょりを作りましょう。

LED画面と音で受け取った信号しんごうを表します。

短い信号しんごうの0を受信じゅしんしたときと、長い信号しんごうの1を受信じゅしんしたときで処理しょりが分かれますよ。

 

無線むせんカテゴリから無線むせん受信じゅしんしたとき(receivedNumber)」ブロックを出し、中に論理ろんりカテゴリの「もし<真>なら/でなければ」ブロックを入れます。

無線で数値を受信したとき

  • 無線むせん受信じゅしんしたとき(receivedNumber)」ブロック
    マイクロビットが無線むせん数値すうち受信じゅしんしたとき、中に配置はいちしたプログラムを実行します。receivedNumberには、受信じゅしんした数値すうち記憶きおくされています。
     
  • 「もし<真>なら/でなければ」ブロック
    もし条件じょうけんが正しい(真)場合、「なら」の下にある命令めいれいを実行します。正しくない()場合は、「でなければ」の下にある命令めいれいを実行します。

 

判定はんてい条件じょうけん設定せっていしましょう。

論理ろんりカテゴリの「0 = 0」ブロックを出し、「もし<真>なら/でなければ」ブロックの<真>の部分に配置はいちします。

無線むせん受信じゅしんしたとき(receivedNumber)」ブロックにあるreceivedNumber「0 = 0」ブロックの左側ひだりがわの0の位置いちへドラッグアンドドロップしましょう。

受信した数値が0なら/でなければ

これで受信じゅしんした数値すうちが0なら」という条件じょうけんになりました。

 

受信した数値が1だった場合

受信じゅしんした数値すうちが0でなければ」の時の処理しょりを作ります。

受信じゅしんした数値すうちが0でない場合、受信じゅしんした数値すうちは1なので長い信号しんごう「-」を表示ひょうじします。

基本きほんカテゴリから「LED画面に表示ひょうじブロックを出し、「もし receivedNumber = 0 なら/でなければ」ブロックの「でなければ」の下に配置はいちしましょう。

中央の3つならんだLEDを点灯てんとうさせて「-」をかきます。

 

音も追加ついかしましょう。

音楽カテゴリから「音を鳴らす」ブロックを出し、「LED画面に表示ひょうじブロックの下に配置はいちします。

音の高さや長さはそのままでOK。

受信した数値が1の時の処理

 

受信した数値が0だった場合

受信じゅしんした数値すうちが0なら」の時の処理しょりを作ります。

受信じゅしんした数値すうちが0の場合は、短い信号しんごう「・」です。

基本きほんカテゴリから「LED画面に表示ひょうじブロックを出し、「もし receivedNumber = 0 なら/でなければ」ブロックの「もし receivedNumber = 0 なら」の下に配置はいちします。

中央のLEDを点灯てんとうさせて、「・」をかきます。

 

音も追加ついかしましょう。

音楽カテゴリから「音を鳴らす」ブロックを出し、「LED画面に表示ひょうじブロックの下に配置はいちします。

音の高さはそのまま。長さは-より短くしたいので1/4はくにしましょう。

受信した数値が0だった時の処理

 

LED画面の表示を消す

MorseChatプログラム

このままだとLED画面に「-」や「・」が表示ひょうじされっぱなしなので、LED画面の表示ひょうじを消しましょう。

基本きほんカテゴリから表示ひょうじを消す」ブロックを出し、「もし receivedNumber = 0 なら/でなければ」ブロックの下に配置はいちします。

 

グループ番号を設定

これでチュートリアルのプログラムは完成かんせいです。

しかし、チュートリアル「マイクロチャット(Micro Chat)」をやったことのある人は、無線むせんのグループを設定せっていしなくていいの?と思ったのではないでしょうか。

 

無線むせんのグループを設定せっていブロックを使ってグループ番号を設定せっていしなかった場合、プログラムが勝手にグループ番号を決めてしまいます

全く同じプログラムを複数ふくすうのマイクロビットにダウンロードロードした場合、同じグループ番号になり、おたがい通信つうしんすることができます。

しかし、一部のマイクロビットにだけ変更へんこうくわえると、別々べつべつのグループになってしまい通信つうしんできなくなってしまいます。

無線むせん通信つうしんを使うプログラムを作る場合は、グループ番号を設定せっていした方がいいと思います。

 

完了かんりょうをクリックすると、チュートリアルが完了かんりょうし、すべてのブロックが使えるようになります。

最初さいしょだけ」ブロックの中に無線むせんのグループを設定せっていブロックを配置はいちしましょう。

チュートリアルを完了する

近くにいるべつのグループと番号がカブらない、きなグループ番号を設定せっていしてください。

 

シミュレーターで確認する

シミュレーターで作ったプログラムをためしてみましょう。

シミュレーターのロゴをタッチすると、2つ目のマイクロビットが表示ひょうじされます。(画面が小さいと表示ひょうじされないことがあります)

もう一度ロゴをタッチすると、もう一方のマイクロビットにメッセージを送信そうしんします。

シミュレーターでプログラムを確認

  • ロゴを短くタッチ:短い信号しんごう「・」を送信そうしん
  • ロゴを長くタッチ(3つ数える):長い信号しんごう「-」を送信そうしん

 

マイクロビットにプログラムを転送する

シミュレーターで正しく動くことを確認かくにんできたら、マイクロビットに転送して動かしてみましょう。

実機じっきで動かす場合、マイクロビット(V2.0~)が2台以上いじょう必要ひつようです。

マイクロビットにプログラムを転送する方法ほうほうは「【マイクロビット】パソコンとのつなぎ方・外し方、プログラムの転送方法ほうほう」でくわしく紹介しょうかいしています。

 

V1.5のマイクロビットでも、ロゴをタッチのコンテナを消せば、受信じゅしんだけなら可能かのうになります。

送信そうしんしたい場合、ロゴのタッチはボタンなどで代用しましょう。

V1.5のマイクロビットでやる場合

 

まとめ

「モールス符号ふごうで話そう(Morse Chat)」について紹介しょうかいしました。

今回使用したブロック

  • 無線むせん数値すうち送信そうしんブロック
    無線むせん通信つうしんで、同じグループのマイクロビットに数値すうち送信そうしんします。
     
  • 無線むせん受信じゅしんしたとき(receivedNumber)」ブロック
    マイクロビットが無線むせん数値すうち受信じゅしんしたとき、中に配置はいちしたプログラムを実行します。receivedNumberには、受信じゅしんした数値すうち記憶きおくされています。
     
  • 「もし<真>なら/でなければ」ブロック
    もし条件じょうけんが正しい(真)場合、「なら」の下にある命令めいれいを実行します。正しくない()場合は、「でなければ」の下にある命令めいれいを実行します。

 

ロゴ無線むせん通信つうしん機能きのうの使い方は、下の記事でくわしく解説かいせつしています。

 

タイトルとURLをコピーしました