【マイクロビット×MakeCode】おばけをふき飛ばせ!(チュートリアル:Blow Away)

この記事では、MakeCode for micro:bitのチュートリアル「おばけをふきばせ!(Blow Away)」解説かいせつします。

マイクロビットに取りついたオバケをふきばすプログラムを作りながら、マイクの使い方や、きな場所のLEDをけたり消したりする方法ほうほうを学びます。

※新しいバージョン(V2.0~)用のチュートリアルです。

 

スポンサーリンク

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

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

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

チュートリアル「Blow Away」をはじめる

 

やせいの ヘブンが あらわれた!

まず、おばけのヘブンをマイクロビットに取りつかせましょう。

基本きほんカテゴリにある「アイコンを表示ひょうじブロックを出し、最初さいしょだけ」ブロックの中に配置はいちします。

表示ひょうじするアイコンを「ハート」から「おばけ」に変更へんこうしましょう。

おばけをLEDに表示する

 

ループを回す

ループカテゴリにある「くりかえし」ブロックを出し、「ずっと」ブロックの中に配置はいちします。

回数は4回のままでOKです。

ずっとブロックの中にくりかえしブロックを入れる

 

大きな音がきらいなヘブン

ヘブンは大きな音がするとんでいってしまいます。

大きな音がしたかどうか判定はんていする命令めいれいを入れましょう。

論理ろんりカテゴリにある「もし<真>なら」ブロックを出し、「くりかえし」ブロックの中に配置はいちします。

論理ろんりカテゴリにある「0 = 0」ブロックを出し、「もし<真>なら」ブロックの<真>の部分に配置はいちしましょう。

もし<真>ならブロックを出し、くりかえしブロックの中に配置する

 

ヘブンがうるさいと感じる条件じょうけん設定せっていしましょう。まわり音の大きさと、基準きじゅんになるあたい比較ひかくします。

入力カテゴリにある「まわりの音の大きさ」ブロックを出し、「0 = 0」ブロックの左側ひだりがわ配置はいちします。

まわりの音の大きさ = 0」ブロックの「=」をクリックして、「>」に変更へんこうしましょう。

最後さいごに、まわりの音の大きさ > 0」ブロックの右側みぎがわの0を128に変更へんこうします。

もしまわりの音の大きさが128より大きかったら

これでもしまわりの音の大きさが128より大きかったらという判定はんていができました。

「まわりの音の大きさ」ブロック
内臓ないぞうマイクに入ってきた音量おんりょう取得しゅとくし、0~255の範囲はんいで返します。

 

LEDの座標を保存する変数を作る

変数を2つ作る

LEDの座標ざひょう保存ほぞんするための変数へんすうを2つ作ります。

変数へんすうカテゴリをえらんで変数へんすう追加ついかする…」をクリックし、「col」と「row」という名前の変数へんすうを作りましょう。

  • 変数へんすう「col」:LEDの横の位置いち保存ほぞん(colはcolumnのりゃく
  • 変数へんすう「row」:LEDのたての位置いち保存ほぞん

変数へんすうとは、プログラムで使う数字や文字のようなデータを一時的いちじてき保存ほぞんするための場所のこと。

よく数字や文字を入れておく箱と言われたりします。

くわしくは「変数へんすうとは?スクラッチ(Scratch)を使ってわかりやすく解説かいせつ」で解説かいせつしています。

 

LEDディスプレイの座標位置

マイクロビットのLEDディスプレイは5×5のライトから構成こうせいされていて、X軸方向じくほうこう(横方向)とY軸方向じくほうこう(たて方向)の数値すうち位置いちを表しています。

一番左上のLEDの位置いちは(0,0)、一番右下のLEDの位置いちは(4,4)と表します。

マイクロビットのLEDディスプレイの座標

 

ヘブンがふき飛ばされるアニメーション

ヘブンがふきばされるアニメーションを作りましょう。

まわりの音が大きい(128より大きい)間、LEDディスプレイからランダムな位置いちのライトをえらんで右に移動いどうさせることをくり返します。

LEDディスプレイからランダムな位置のライトを選ぶ

まずは、LEDディスプレイからランダムな位置いちのライトをえらびましょう。

変数へんすうカテゴリにある「row を 0 にする」ブロックを出し、「もしまわりの音の大きさが128より大きかったら」ブロックの中に配置はいちします。

計算カテゴリから「0 から 10 までの乱数らんすうブロックを出し、「row を 0 にする」ブロックの0の場所に配置はいちします。

「0 から 10 までの乱数らんすうブロックの最大さいだいを10から4に変更へんこうしましょう。

LEDディスプレイからランダムな位置のライトを選ぶ

colも同じように、0~4のランダムなあたい設定せっていするようにします。

 

ランダムに選んだ位置のライトが点灯しているなら

次に、ランダムにえらんだ位置いちのライトが点灯てんとうしているか判定はんていします。

論理ろんりカテゴリにある「もし<真>なら」ブロックを出し、「もしまわりの音の大きさが128より大きかったら」ブロックの下に配置はいちします。

LEDカテゴリにある「LED x 0 y 0 が点灯てんとうしている」を出し、「もし<真>なら」ブロックの<真>の部分に配置はいちします。

xじくの0に変数へんすう「col」、yじくの0に変数へんすう「row」配置はいちします。

これでランダムにえらんだ位置いちのライトが点灯てんとうしているならという判定はんていができました。

 

点灯しているライトを右に移動させる

点灯てんとうしているライトを消し1つ右のライトを点灯てんとうさせることで、右に移動いどうさせます。

LEDカテゴリにある消灯しょうとう x 0 y 0」ブロックと点灯てんとう x 0 y 0」ブロックを出し、「もしLED x col y row が点灯てんとうしているなら」ブロックの中に配置はいちします。

消灯しょうとう x 0 y 0」ブロックと点灯てんとう x 0 y 0」ブロックのxじくとyじくにも、変数へんすう「col」変数へんすう「row」をそれぞれ配置はいちしましょう。

ランダムに選んだ位置のライトが点灯しているか判定

 

このままだと同じ場所のライトを消してけているだけになってしまうので、消灯しょうとうしたライトより1つ右のライトを点灯てんとうさせます。

計算カテゴリから「0 + 0」ブロックを出し、点灯てんとう x col y row」ブロックの「col」きかえます。その時、プログラミングエリアにグレーアウトした「col」が出てきます。

見つからない場合は「ずっと」ブロックをドラッグして動かして、後ろにかくれているかさがしてみてくださいね。

グレーアウトした「col」は、「0 + 0」ブロックの左側ひだりがわに入れましょう。

右側みぎがわの0は1に変更へんこうします。

点灯しているライトより1つ右のライトを点灯

これで点灯てんとう x col+1 y row」になり、ランダムにえらんだ位置いちよりひとつ右側みぎがわのLEDの場所を点灯てんとうする命令めいれいになります。

  • 「LED x 0 y 0 が点灯てんとうしている」ブロック
    X、Y座標ざひょうで指定された位置いちのLEDの状態じょうたいを返します。
    点灯てんとうしている時は「真」、消灯しょうとうしている場合は「」を返します。
     
  • 消灯しょうとう x 0 y 0」ブロック
    X、Y座標ざひょうで指定した位置いちのLEDを消灯しょうとうします。
     
  • 点灯てんとう x 0 y 0」ブロック
    X、Y座標ざひょうで指定した位置いちのLEDを点灯てんとうします。

 

なぜ「ずっと」ブロックの中に「くりかえし」ブロックを入れるの?

これでプログラムは完成かんせいです。

しかしなぜ「ずっと」ブロックの中に、わざわざ「くりかえし」ブロックを入れるのでしょう?

一見意味がないように感じますよね。

なぜかというと「ずっと」ブロックには多少のおくれが発生するからです。

「くりかえし」ブロックを使うことで、コードがスピードアップしておくれをさけることができます。

 

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

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

シミュレーターで確認

マイクのアイコンの下にあるバーを上下にドラッグすると、まわりの音の大きさを調節ちょうせつすることができます。

128より大きくしてみましょう。

ヘブンは右へふきんでいきましたか?

 

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

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

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

マイクロビットに息をふきかけて、ヘブンがふきぶのを見てみましょう。

マイクロビット裏面りめんのリセットボタンをおすと、ヘブンを復活ふっかつさせることができますよ。

 

まとめ

チチュートリアル「おばけをふきばせ!(Blow Away)」について紹介しょうかいしました。

今回使用したブロック

  • 「まわりの音の大きさ」ブロック
    内臓ないぞうマイクに入ってきた音量おんりょう取得しゅとくし、0~255の範囲はんいで返します。
     
  • 「LED x 0 y 0 が点灯てんとうしている」ブロック
    X、Y座標ざひょうで指定された位置いちのLEDの状態じょうたいを返します。
    点灯てんとうしている時は「真」、消灯しょうとうしている場合は「」を返します。
     
  • 消灯しょうとう x 0 y 0」ブロック
    X、Y座標ざひょうで指定した位置いちのLEDを消灯しょうとうします。
     
  • 点灯てんとう x 0 y 0」ブロック
    X、Y座標ざひょうで指定した位置いちのLEDを点灯てんとうします。

 

下の記事でマイクの機能きのうについてくわしく解説かいせつしているので、よかったら読んでみてください。

 

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