【マイクロビット×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をコピーしました