こんにちは、ナナです。
「microbit アドバンスセット」を購入された方は、箱の中に「超音波センサー」を利用できる機器が含まれています。

この記事は「超音波センサー」の機器を持っていない人は、読み飛ばしてもいいですよ!興味のある人は読んでください。
「microbit」には「超音波センサー」を取り付けることができます。超音波センサーによって、物体や障害物があることを検知することができます。
この記事では、次のことを学習できます。
では、makecodeを使った、「超音波センサー」の使い方を学んでいきましょう。
「障害物」があることをどうやって知ることができるの?

「超音波」だと?音の里の「音忍」には、音を忍術とする奴らがいると聞いたことがあるが、何か関係あるのか?
師よ!その「超音波」とやらを使うと、いったいどんなことができるのですか?

「超音波」は距離を調べるために使われるんですよ。それを「超音波センサー」と呼びます。
「超音波センサー」は音波で距離を調べる機器
「音波」とは音の波のことです。
みんなは、お友達と声によって会話をしていますね。これは「音の波」によって、耳が波の振動を検知して声が聞こえているのです。
「超」音波とは、人の耳には聞こえないほどの「高い音」のことなんです。

イルカやコウモリは、超音波を出したときの反響を検知することで、エサや障害物の位置を特定しています。これを「エコーロケーション」と呼びます。
「超音波センサー」とは、この仕組みを機械化したものなのです。
「超音波センサー」が使われているモノ
超音波センサーは、次のような場所で使われているんですよ。

このように距離を検知することで動く仕組みは、「超音波センサー」で実現されています。みんなの生活の中で、役立っていることがわかりますね。
「microbit」機器で超音波センサーを使うための組み立て

師よ!僕の手元にあるこの「microbit」のどこに、距離を測るための「眼」が付いているのですか?

わかりましたよ!このLEDの上の「赤い眼」ですね!

違うよ。それはただのデザインだからね、眼でも何でもないよ!
超音波センサーを使うための「眼」は、「microbit アドバンスセット」の中に入っている付属機器を取り付ける必要があるんだよ。
取り付け方を説明しようね。簡単だよ。
「microbit アドバンスセット」を持っている子は、超音波センサーを取り付けてみましょう!
超音波センサーを使うために必要なものと組み立て方法
準備するものは、次の3つです。

取り付けは、次のように行います。拡張用コネクタは左から2番目に「P0」に接続しましょう。

最後に、いつも通り「USBケーブル」をパソコンと接続します。

これで「超音波センサー」を動かすための機器の準備ができました。次はプログラムを使って実際に動かしてみますよ!
「距離を読み取る」ブロックを使ってみよう!

なるほど!「超音波センサー」を使えば物体との距離を知ることができると。
使うためには、いつも通り「ブロック」があるはずだ。どれどれ、ない?ないぞ…。全部見たがどこにもないぞ…、どこだぁーー!

超音波センサーのブロックである「距離を読み取る」ブロックを使うためには、特別な手順が必要なんですよ。
それでは「距離を読み取る」ブロックの使い方を学んでいきましょう!
「距離を読み取る」ブロックを表示するためには
超音波センサーを使うための「距離を読み取る」ブロックを表示する手順を説明しましょう。
まずは、「高度なブロック」の中の「拡張機能」を選択します。

次のように、拡張機能の画面が表示されます。「grove」と打ち込んで検索しましょう。

表示されたリストの中で「grove」を選択し、拡張機能を利用できるようにします。

これで拡張機能「Grove」が利用できるようになります。
Groveブロック一覧の中には複数のブロックがありますが、超音波センサーに関わるブロックは「距離を読み取る」ブロックです。

「距離を読み取る」ブロックを使ってみよう
「距離を読み取る」ブロックは2種類あります。長さの単位が異なる「センチメートル(cm)」と「インチ(inch)」ですね。
日本では長さの単位は一般的に「センチメートル(cm)」が使われますので、こちらを使いましょう。

「数を表示」ブロックを組み合わせて、「A」スイッチを押したときに距離を表示してみましょう。
「microbit」機器で動かしてみよう!
超音波センサーに関しては、シミュレーターを使って距離を変更することはできません。
そのため、「microbit」機器にプログラムをダウンロードして、実際の機器を使って確認してみましょう。

「超音波センサー」の前に手のひらを向けて、「A」スイッチを押してみましょう。

手のひらまでの距離が「センチメートル」でスクロール表示されますよ。
距離の表示で小数点以下の数がたくさん表示される問題を解決

師よ!「超音波センサー」を動かしてみたら、確かに距離がちゃんと表示されましたよ。
でもね、なんかすごく数字がたくさんスクロールすることがあるんです!「12.59999999999999」みたいに。これはプログラムが間違っているのですか?

そうだね。「超音波センサー」で距離を算出する際に、数字がぴったりにならないことがあるんだね。それを小数点の数字で表現するから、長いスクロールになってしまうんだね。
じゃあ、プログラムの練習として、この小数点を消してみようね!
「小数点以下」ブロックの使い方を学びましょう。
「小数点以下」ブロックの使い方
「小数点以下」ブロックは、計算ブロック一覧の中に含まれています。

このブロックを使うことで、小数点より小さい数字を操作することができます。
ブロックの種類には次の4つがあります。例えば「1.5」や「1.4」の数字に対して適用すると、結果は次の表のようになります。
ブロックの種類 | 「1.5」の場合 | 「1.4」の場合 | 説明 |
小数点以下四捨五入 | 2 | 1 | .5以上の場合は大きい方へ丸める .4以下の場合は小さい方へ丸める |
小数点以下切り上げ (ceiling) | 2 | 2 | 大きい方へ丸める |
小数点以下切り下げ (floor) | 1 | 1 | 小さい方へ丸める |
小数点以下切り捨て (truncate) | 1 | 1 | 小さい方へ丸める |

数が「マイナス値」の場合は結果が異なりますが、「プラス値」の場合はこのようになります。今回は「マイナス値」の場合は考えないことにしましょう。
「小数点以下」ブロックを使って小数点の数字を消してみよう!
それでは、「距離を読み取る」ブロックを「小数点以下」ブロックと組み合わせてみましょう。

今回は「小数点以下四捨五入」ブロックを使ってみますよ。
「microbit」にプログラムをダウンロードして動かしてみましょう。小数点の数字が表示されなくなりましたね!

このように「小数点以下」ブロックを使うと、小数点以下の数を消すことができるんです。
質問コーナー:「超音波センサー」で気になること

超音波センサーで、気になることがあれば質問いいよ!
質問:超音波センサーを取り付ける場所って決まっているの?

師よ!「拡張用コネクタ」という機器には、超音波センサーのケーブルを接続できる箇所が4つあります。
左から2つ目でないといけないのですか?

いや、そんなことないよ。超音波センサーのケーブルが接続できる箇所は、右の3つであればどこでもいいんだよ。
でも、接続した箇所によって「距離を読み取る」ブロックの端子の番号が変わることに注意が必要だね。
「拡張用コネクタ」の右3つには、超音波センサーのケーブルを接続できます。

それぞれ「P0」~「P2」という番号になっているため、接続した箇所に合わせて「距離を読み取る」ブロックの端子番号を変更してあげましょう。
質問:超音波センサーで検知できる距離はどれくらい?

師よ!「超音波センサー」はいったいどこまで見通すことができるのですか?100メートル先ですか?僕の眼は1000メートル先まで見ることができますよ!

そんなに長い距離は検知することができないんだよ。おおよそ「3メートル」くらいが限度なんです。
「超音波センサー」では約3メートルほどの距離を測ることができます。
センチメートルで言うと約「300センチメートル」くらいですね。
やってみようコーナー:「超音波センサー」を使ったプログラミングの巻

それじゃあ「距離を読み取る」ブロックを使ったプログラムを作ってみよう!
修行その1:「距離を読み取る」ブロックを使ったプログラム

みんな、超音波センサーで検知できる距離はおおよそ「0~300センチメートル」だ。
2ケタ以上の数字は、LEDに表示するとスクロールするからわかりづらい。まずは「棒グラフ」で距離を簡単に表現できるようにしてくれよな!

フフフ、こいつが完成すれば「超音波センサー」は俺の「第三の眼」になりうるかもしれんな。新しい「眼」を手に入れるぞ…。

こいつは便利だ。みんな、よく作ってくれたぜ!
これで暗闇でも関係なく見ることができる「眼」を手に入れたぞ。闇に隠れようが敵を発見できるな。


実際に「microbit」で動かしてみましょう。超音波センサーの前に手をかざすと、距離によって棒グラフが変化しますね。
修行その2:「距離を読み取る」ブロックを使ったプログラム

超音波センサーで「10センチメートル」以内に敵を見つけた場合は、即座に「どくろ」アイコンで敵を発見したことを教えてくれよ。
忍者の戦いは一瞬で決まってしまうんだ。油断できないんだぜ。
このプログラムは「修行その1」のプログラムに機能を追加して作ってください。


よし!これですぐに敵に攻撃を与えることができるな。
忍者の世界に「IT」を融合させるっ!これからの忍者は「IT」も駆使して戦うやつが勝つんだぜ。

修行その3:「距離を読み取る」ブロックを使ったプログラム

遅いな…。遅いんだよ! みんな、敵が暗闇から急に現れても、「microbit」のLEDを見てから反応しているようじゃ、攻撃が遅くなるんだよ。
もっと、すぐに気づけないとダメだ…。そうだ、音だよ。敵を発見した時に音を出してくれれば、すぐに攻撃ができるよ。
このプログラムは「修行その2」のプログラムに機能を追加して作ってください。

※超音波センサーは「P2」に接続し、スピーカーは次のように取り付けることとする。


「拡張用コネクタ」を使った時のスピーカーの取り付け方は、このように行ってください。

よしっ!これなら敵を発見してすぐに攻撃できるぞ。みんな、ありがとな!

「敵発見」変数を作ります。0のときは『敵未発見』、1のときは『敵発見』という意味とします。
この「敵発見」変数の値を管理して、「ピコーン♪」メロディを鳴らすかを決定します。

「変数」を上手に活用して、プログラムの動きをコントロールしていますね。プログラミングでは「変数」で情報を管理することが大事なんですよ。

microbitのプログラムを最初から学びたい子は、ここから始めよう!