micro:bitプログラミング(5) 「論理」を使おう!(1)

「論理」を使おう(1)

今回は前回で紹介した「論理」についてもう少し詳しく説明します。
シミュレーターでも実機と同じ使い方ができるようになっていますので、今回も無料でできます🌟
実機を買うのは、遊び方や使い方を覚えてからでも遅くありません😁

「論理」って何?

「論理」なんて言うとちょっと難しそうに聞こえますよね? でも大丈夫です!
これは「もしAだったらBする」と言い換えることができます。皆さんも使っていることなんですよ🌼

例えば、

  • もしテストで100点をとったら100円あげる
  • もし信号が青だったら横断歩道を渡る

など、日常でも使っていますよね?

これと同じことをmicro:bitに教えてあげることなんです👍

前回

  • もし明るさが100より大きければ音を鳴らす

としました。

この

  • テストで100点をとったら
  • 信号が青だったら
  • 明るさが100より大きければ

のことを条件と呼びます。

また

  • 100円あげる
  • 横断歩道を渡る
  • 音を鳴らす

のことを処理と呼びます。

これをmicro:bitの命令に置き換えると

  • もし条件なら、処理をする。

となります。

あれれ??
見覚えのない言葉がでてきました・・・
真って何でしょう??

真と偽

実は「論理」にはもう一つ覚えなければならない言葉として「真(しん)」と「偽(ぎ)」があります。

さっきの文章で見ていくと、次の黄色いマークがついている箇所が「真偽」となります。

  • もしテストで100点をとったら100円あげる
  • もし信号が青だったら横断歩道を渡る
  • もし明るさが100より大きければ音を鳴らす

詳しく見ていきましょう。

例題1

  • もしテストで100点をとったら100円あげる

上の文では、テストが100点であることが「真」となります。ですが、テストで100点とれるかどうかは分かりませんよね?

つまり

  • テストが100点だった=
  • テストが100点じゃなかった=

となります。

例題2

  • もし信号が青だったら横断歩道を渡る

上の文では、信号が青であることが「真」となります。でも、信号は時間によって変わりますよね?

つまり

  • 信号が青=
  • 信号が赤=

となります。

例題3

  • もし明るさが100より大きければ音を鳴らす

上の文では、明るさが100であることが「真」となります。でも、明るさも朝と夜では違ってきますよね?

つまり

  • 明るさが100である=
  • 明るさが90である=
  • 明るさが80である=
  • 明るさが70である=

となります。

まとめ

めちゃくちゃ簡単に言うと、

  • 「真」というのは、条件に合っていること
  • 「偽」というのは、条件に合っていないこと

なんです。

micro:bitで考えよう

では、真偽がわかったところで、これをmicro:bitに当てはめて考えてみましょう。
mirco:bitの「論理」命令は次のような形になっています。

「もし<真▼>なら」ブロック

「もし<真▼>なら」ブロック

この命令ブロックを配置しただけではmicro:bitは動作しません。なぜだか分かりますか?

上の文章と比べてみると分かりやすいかもしれません。

  1. もし信号が青だったら横断歩道を渡る。
  2. もし真だったら    。

そう。
1にある条件処理が、2にはありませんね。この二つがないと論理命令は動きません。

では、まず条件を作りましょう。

条件を作ろう!

micro:bitで条件を作るには「論理」から「くらべる」のところにあるブロックをクリックします。2つ並んでいますが、実はどちらも同じブロックなので、どちらをクリックしても構いません。

「くらべる」のブロック

「くらべる」のブロック

このブロックは左の数字(0)、記号(=)、右の数字(0)があり、それぞれを変えることができます。
左右の数字にはいろんな数字を入れることができますが、あまり大きな数を入れてしまうと「1e+23」のようによく分からない数字が入ってしまいます。大きな数についてはずっと後で説明しますが、しばらくは1000くらいまでを入力するようにしましょう。

さて、この先の説明をするにあたって、どちらも数字だと分かりにくくなるので、左の数字を「明るさ」に変えてしまいましょう。

ちなみに、「明るさ」にはmicro:bitがセンサーで取得した「明るさの数字」が入っています。この数字は0(とても暗い)から255(とても明るい)のうちのどれかになります。

  1. 「入力」から「明るさ」をクリックします。
    「明るさ」ブロックを追加

    「明るさ」ブロックを追加

  2. 「明るさ」を「条件」の左側にドラッグします。
    「明るさ」をドラッグ(1)

    「明るさ」をドラッグ(1)



    「明るさ」をドラッグ(2)

    「明るさ」をドラッグ(2)

これで準備完了です。

つぎは、真ん中の「=」について説明します。

「=」は等号(とうごう)と呼ばれるもので、いくつか種類があります。クリックして変えることができますが、それぞれの意味は次の通りです。

  • = は「明るさ」と右の数字が同じ、という意味です。
  •  は「明るさ」と右の数字が違う、という意味です。
  •  は右の数字が「明るさ」より大きい、という意味です。
  •  は右の数字が「明るさ」以上、という意味です。
  •  は「明るさ」が右の数字より大きい、という意味です。
  •  は「明るさ」が右の数字以上、という意味です。

どの条件を作ってもいいのですが、分かりやすくするためにここではを使い、右の数字を100にしましょう。

等号を使おう

等号を使おう



これで「明るさ」が「100」より大きいという条件ができました!

この条件を「論理「もし[真▼]なら」の中に入れましょう。

条件を「論理「もし[真▼]なら」の中にドラッグ(1)

条件を「論理「もし[真▼]なら」の中にドラッグ(1)



条件を「論理「もし[真▼]なら」の中にドラッグ(2)

条件を「論理「もし[真▼]なら」の中にドラッグ(2)



これで論理「もし「明るさ」が100より大きいなら」の完成です!

処理を決めよう!

さあ!完成までもう少しです。
「論理」命令には条件処理が必要でしたね?
条件のところまでは出来ているので、ここでは処理を決めましょう!

micro:bitの処理は無数にありますが、ここでは前回と同じく音を鳴らすことにしましょう!

「音楽」から「音を鳴らす(Hz)[真ん中のド] 長さ[1▼拍]」をクリックします。

「音を鳴らす(Hz)[真ん中のド] 長さ[1▼拍]」

「音を鳴らす(Hz)[真ん中のド] 長さ[1▼拍]」

これを先ほどの「論理」命令の中に入れましょう。

中にドラッグします

中にドラッグします

おめでとうございます‼️

これで論理命令「もし「明るさ」が100より大きかったら音を鳴らす」の完成です‼️‼️

鳴らしてみよう!

とうとう論理命令が完成しましたね✨
では早速鳴らしてみましょう♪
と言いたいところですが、このままだとmicro:bitは動いてくれません。。。

というのも、micro:bitは論理命令だけだと「いつやればいいの?」が分からないんですね🤔
ですので、micro:bitに「いつやればいいのか」を教えるために、前々回前回でやったように「Aボタンが押された時」とか「ずっと」などの命令の中に論理命令を入れてあげましょう。
ここでは「ずっと」の中に入れることにします。

完成したブロック

完成したブロック

いままで分かりにくかったブロックそれぞれに色がつきましたね。これはmicro:bitに正しく命令が送れますよ、という合図なんです。
とうとう完成しました!
では画面左のシミュレーターで明るさを変えてみましょう🔆

実行する

画面左のシミュレーターの左上に「明るさ」を示すマークがついています。
このマークをマウスでドラッグして動かすことで、明るさを0から255の範囲で動かすことができます。

「明るさ」が100より大きくなければ(0-100)、音が鳴らないことを確認してください。

音が68の場合

音が68の場合

「明るさ」が100より大きければ(101-255)、音が鳴ることを確認してください。

音が162の場合

音が162の場合



ちゃんと動きましたか?

動かない場合は最初から見直してみましょう。

最後に

「論理」命令はとてもよく使います。これがないとmicro:bitの本領を全く発揮できない!と言ってもいいくらい大事な命令ですので、他にも色々試してみて、ぜひ使いこなせるようになってください!
次回は「論理」命令ブロックに残っているその他の命令を説明します。
最後までご覧いただき、ありがとうございます。
ではまた!

コメント