microbit 超音波センサーで距離を測ってみよう!

micro:bitでプログラミング
この記事は約11分で読めます。

こんにちは、ナナです。

「microbit アドバンスセット」を購入こうにゅうされたかたは、はこの中に「超音波ちょうおんぱセンサー」を利用りようできる機器ききふくまれています。

ナナ
ナナ

この記事は「超音波センサー」の機器ききを持っていない人は、読み飛ばしてもいいですよ!興味きょうみのある人は読んでください。

「microbit」には「超音波センサー」を取り付けることができます。超音波センサーによって、物体ぶったい障害物しょうがいぶつがあることを検知けんちすることができます。

この記事きじでは、次のことを学習がくしゅうできます。

この記事で学習できること
  • 「超音波センサー」を使うとできることって何?
  • 「超音波センサー」を「microbit」に取り付けるためには?
  • 「距離を読み取る」ブロックの使い方
  • 「小数点以下」ブロックの使い方

では、makecodeを使った、「超音波センサー」の使い方をまなんでいきましょう。

スポンサー

「障害物」があることをどうやって知ることができるの?

超音波ちょうおんぱ」だと?音のさとの「音忍おとにん」には、音を忍術にんじゅつとするやつらがいると聞いたことがあるが、何か関係かんけいあるのか?

よ!その「超音波」とやらを使うと、いったいどんなことができるのですか?

ナナ
ナナ

「超音波」は距離きょり調しらべるために使われるんですよ。それを「超音波センサー」と呼びます。

「超音波センサー」は音波で距離を調べる機器

音波おんぱ」とは音のなみのことです。

みんなは、お友達と声によって会話かいわをしていますね。これは「音の波」によって、耳が波の振動しんどう検知けんちして声が聞こえているのです。

ちょう」音波とは、人の耳には聞こえないほどの「高い音」のことなんです。

イルカとコウモリ

イルカやコウモリは、超音波ちょうおんぱを出したときの反響はんきょう検知けんちすることで、エサや障害物しょうがいぶつ位置いち特定とくていしています。これを「エコーロケーション」とびます。

「超音波センサー」とは、この仕組しくみを機械化きかいかしたものなのです。

「超音波センサー」が使われているモノ

超音波センサーは、次のような場所ばしょ使つかわれているんですよ。

超音波センサーが使われているモノ

このように距離きょり検知けんちすることで動く仕組しくみは、「超音波センサー」で実現じつげんされています。みんなの生活せいかつの中で、役立やくだっていることがわかりますね。

スポンサー

「microbit」機器で超音波センサーを使うための組み立て

よ!ぼく手元てもとにあるこの「microbit」のどこに、距離きょりはかるための「」がいているのですか?

眼

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

ナナ
ナナ

ちがうよ。それはただのデザインだからね、眼でも何でもないよ!

超音波ちょうおんぱセンサーを使うための「眼」は、「microbit アドバンスセット」の中に入っている付属機器ふぞくききを取り付ける必要ひつようがあるんだよ。

取り付け方を説明せつめいしようね。簡単かんたんだよ。

「microbit アドバンスセット」をっている子は、超音波ちょうおんぱセンサーをけてみましょう!

超音波センサーを使うために必要なものと組み立て方法

準備じゅんびするものは、次の3つです。

準備するもの

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

組み立て方法

最後さいごに、いつもどおり「USBケーブル」をパソコンと接続せつぞくします。

ナナ
ナナ

これで「超音波センサー」を動かすための機器きき準備じゅんびができました。次はプログラムを使って実際じっさいに動かしてみますよ!

スポンサー

「距離を読み取る」ブロックを使ってみよう!

なるほど!「超音波センサー」を使えば物体ぶったいとの距離きょりを知ることができると。

使うためには、いつも通り「ブロック」があるはずだ。どれどれ、ない?ないぞ…。全部見たがどこにもないぞ…、どこだぁーー!

ナナ
ナナ

超音波センサーのブロックである「距離を読み取る」ブロックを使うためには、特別とくべつ手順てじゅん必要ひつようなんですよ。

それでは「距離きょりる」ブロックの使い方をまなんでいきましょう!

「距離を読み取る」ブロックを表示するためには

超音波センサーを使うための「距離を読み取る」ブロックを表示する手順てじゅん説明せつめいしましょう。

まずは、「高度こうどなブロック」の中の「拡張機能かくちょうきのう」を選択せんたくします。

拡張機能を選択

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

拡張機能画面

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

grove拡張機能を選択

これで拡張機能「Grove」が利用りようできるようになります。

Groveブロック一覧いちらんの中には複数ふくすうのブロックがありますが、超音波センサーにかかわるブロックは「距離を読み取る」ブロックです。

Groveブロック一覧

「距離を読み取る」ブロックを使ってみよう

「距離を読み取る」ブロックは2種類あります。長さの単位が異なる「センチメートル(cm)」と「インチ(inch)」ですね。

日本では長さの単位は一般的に「センチメートル(cm)」が使われますので、こちらを使いましょう。

距離を数字で表示

「数を表示」ブロックを組み合わせて、「A」スイッチを押したときに距離を表示してみましょう。

「microbit」機器で動かしてみよう!

超音波センサーに関しては、シミュレーターを使って距離を変更することはできません。

そのため、「microbit」機器にプログラムをダウンロードして、実際の機器を使って確認してみましょう。

手のひらで距離を調整

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

ナナ
ナナ

手のひらまでの距離が「センチメートル」でスクロール表示されますよ。

スポンサー

距離の表示で小数点以下の数がたくさん表示される問題を解決

よ!「超音波ちょうおんぱセンサー」を動かしてみたら、たしかに距離きょりがちゃんと表示されましたよ。

でもね、なんかすごく数字がたくさんスクロールすることがあるんです!「12.59999999999999」みたいに。これはプログラムが間違まちがっているのですか?

ナナ
ナナ

そうだね。「超音波センサー」で距離きょり算出さんしゅつするさいに、数字がぴったりにならないことがあるんだね。それを小数点しょうすうてんの数字で表現するから、長いスクロールになってしまうんだね。

じゃあ、プログラムの練習れんしゅうとして、この小数点をしてみようね!

「小数点以下」ブロックの使い方を学びましょう。

「小数点以下」ブロックの使い方

小数点以下しょうすうてんいか」ブロックは、計算ブロック一覧いちらんの中にふくまれています。

小数点以下ブロックの選択

このブロックを使うことで、小数点より小さい数字を操作そうさすることができます。

ブロックの種類しゅるいには次の4つがあります。例えば「1.5」や「1.4」の数字に対して適用てきようすると、結果けっかは次の表のようになります。

ブロックの種類「1.5」の場合「1.4」の場合説明
小数点以下四捨五入21.5以上の場合は大きい方へ丸める
.4以下の場合は小さい方へ丸める
小数点以下切り上げ
(ceiling)
22大きい方へ丸める
小数点以下切り下げ
(floor)
11小さい方へ丸める
小数点以下切り捨て
(truncate)
11小さい方へ丸める
ナナ
ナナ

数が「マイナス値」の場合ばあい結果けっかことなりますが、「プラス値」の場合はこのようになります。今回は「マイナス値」の場合は考えないことにしましょう。

「小数点以下」ブロックを使って小数点の数字を消してみよう!

それでは、「距離を読み取る」ブロックを「小数点以下」ブロックと組み合わせてみましょう。

小数点以下四捨五入

今回は「小数点以下四捨五入」ブロックを使ってみますよ。

「microbit」にプログラムをダウンロードして動かしてみましょう。小数点の数字が表示されなくなりましたね!

ナナ
ナナ

このように「小数点以下」ブロックを使うと、小数点以下の数を消すことができるんです。

スポンサー

質問コーナー:「超音波センサー」で気になること

ナナ
ナナ

超音波センサーで、気になることがあれば質問いいよ!

質問:超音波センサーを取り付ける場所って決まっているの?

よ!「拡張用かくちょうようコネクタ」という機器には、超音波センサーのケーブルを接続せつぞくできる箇所かしょが4つあります。

左から2つ目でないといけないのですか?

ナナ
ナナ

いや、そんなことないよ。超音波センサーのケーブルが接続せつぞくできる箇所かしょは、右の3つであればどこでもいいんだよ。

でも、接続した箇所によって「距離を読み取る」ブロックの端子たんしの番号が変わることに注意ちゅういが必要だね。

「拡張用コネクタ」の右3つには、超音波センサーのケーブルを接続できます。

接続する場所と端子番号

それぞれ「P0」~「P2」という番号になっているため、接続した箇所に合わせて「距離を読み取る」ブロックの端子番号を変更してあげましょう。

質問:超音波センサーで検知できる距離はどれくらい?

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

ナナ
ナナ

そんなに長い距離きょり検知けんちすることができないんだよ。おおよそ「3メートル」くらいが限度げんどなんです。

「超音波センサー」では約3メートルほどの距離を測ることができます。

センチメートルで言うと約「300センチメートル」くらいですね。

スポンサー

やってみようコーナー:「超音波センサー」を使ったプログラミングの巻

ナナ
ナナ

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

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

修行内容:距離を棒グラフで表示してみよう!

みんな、超音波センサーで検知できる距離はおおよそ「0~300センチメートル」だ。

2ケタ以上の数字は、LEDに表示するとスクロールするからわかりづらい。まずは「棒グラフ」で距離きょり簡単かんたんに表現できるようにしてくれよな!

距離を棒グラフで表示するプログラム
  • 超音波センサーの距離きょりを棒グラフで表示すること
  • 棒グラフの最大値さいだいちは「300」を設定せっていすること
  • 棒グラフは「ずっと」ブロックの中で表示ひょうじすること

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

こいつは便利べんりだ。みんな、よく作ってくれたぜ!

これで暗闇くらやみでも関係かんけいなく見ることができる「」を手に入れたぞ。やみかくれようが敵を発見はっけんできるな。

棒グラフで距離を表示
ナナ
ナナ

実際じっさいに「microbit」で動かしてみましょう。超音波センサーの前に手をかざすと、距離きょりによって棒グラフが変化へんかしますね。

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

修行内容:距離を棒グラフで表示してみよう!

超音波センサーで「10センチメートル」以内いないてきを見つけた場合は、即座そくざに「どくろ」アイコンでてき発見はっけんしたことをおしえてくれよ。

忍者にんじゃたたかいは一瞬いっしゅんで決まってしまうんだ。油断ゆだんできないんだぜ。

このプログラムは「修行その1」のプログラムに機能きのう追加ついかして作ってください。

距離が近いと「どくろ」を表示するプログラム
  • 距離きょりが10センチメートルより長い場合は、棒グラフを表示すること
  • 距離が10センチメートル以下いかになった場合は「どくろ」アイコンをLEDに表示し続けること
  • 再度さいど10センチメートルより長くなったら棒グラフの表示に戻ること
距離が近いとどくろを表示

よし!これですぐにてき攻撃こうげきあたえることができるな。

忍者にんじゃ世界せかいに「IT」を融合ゆうごうさせるっ!これからの忍者は「IT」も駆使くししてたたかうやつがつんだぜ。

どくろアイコンを表示するプログラム

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

修行内容:距離が小さいときにメロディを鳴らしてみよう!

おそいな…。遅いんだよ! みんな、てき暗闇くらやみからきゅうあらわれても、「microbit」のLEDを見てから反応はんのうしているようじゃ、攻撃こうげきおそくなるんだよ。

もっと、すぐに気づけないとダメだ…。そうだ、音だよ。てき発見はっけんした時に音を出してくれれば、すぐに攻撃こうげきができるよ。

このプログラムは「修行その2」のプログラムに機能きのう追加ついかして作ってください。

距離が近くなったら音で知らせるプログラム
  • 距離きょりが10センチメートル以内いないになったら、「ピコーン♪」メロディを1度だけらすこと
  • その後、10センチメートルより大きくなったら、メロディを鳴らせる状態じょうたいもどすこととする。
  • 再度さいど、距離が10センチメートル以内になったら、「ピコーン♪」メロディを再び1度鳴らすこと
敵発見でピコーン

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

拡張用コネクタとスピーカーの接続
ナナ
ナナ

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

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

敵を発見でメロディを鳴らすプログラム

敵発見てきはっけん変数へんすうを作ります。0のときは『敵未発見てきみはっけん』、1のときは『敵発見てきはっけん』という意味いみとします。

この「敵発見」変数の値を管理かんりして、「ピコーン♪」メロディをらすかを決定けっていします。

ナナ
ナナ

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