距離を確認: 障害物との距離を数字で確認
前回のレッスンでは、ボタンが押されたことをブラウザで確認しました。
今回は距離センサーを使って、距離をブラウザで確認してみましょう。
距離センサーとは
そもそもセンサーとは何かというと、外部の情報を検出して、信号やデータに変換する装置のことです。人間の五感のように、機械における「知覚」の役割を持っています。
センサーについてはこちらの記事で詳しく解説されているので、興味があれば読んでみてください。
そうしたセンサーの中で、距離センサーはその名の通り、距離を測定するセンサーです。
信号を発生させて、それが対象物に当たって跳ね返ってくるまでの時間や、戻ってきたときの信号の強度を検知することで、対象物の測定を行います。
出力する信号はレーザー、赤外線、超音波などセンサーによってさまざまで、信号によって計測できる距離や使える状況などが変わってきます。
Starter Kitに入っているのは、以下の写真の超音波センサーです。
超音波は音の波なので、対象物の色の影響を受けず、暗いところでも使うことができるというメリットがあります。

接続
距離センサーのピンは4つあり、それぞれgnd, echo, triger, vccとなっています。
今回は以下のように接続してみましょう。
| obnizのピン番号 | 距離センサーのピン |
|---|---|
| 0 | gnd |
| 1 | echo |
| 2 | triger |
| 3 | vcc |

これまでのレッスンで気がついた方もいらっしゃるかもしれませんが、このピンの番号は、プログラムのときに「obnizに接続する」ブロックに入力されている番号と対応しています。

そのため、このブロックの数字を対応するように正しく入力すれば、パーツはどこのピンに挿しても問題ありません。
今後のレッスンでは接続の表や画像を省略するので、プログラムを見てどこのピンに挿せばいいのかを確認してください。
プログラム
では、距離センサーで測定した値を、ブラウザで確認できるようにしてみましょう。
今回も、コンソールに距離センサーの値を表示することにします。

今までやってきたことと同じなので、簡単かもしれないですね。ずっと確認できるように、ループではさんであげるのがポイントです。
実行してみましょう。手や物を距離センサーに近づけたり遠ざけたりすると、数字が変化すると思います。

発展:手を近づけたら音楽が流れるようにする
せっかくのセンサーなので、手が近づいたことを感知して、音楽を流してみましょう。
ブロックプログラムでは、音楽を流すことのできるブロックがあります。「AI」カテゴリの中の、「〜の曲を演奏する」ブロックです。

曲は「ハッピーバースデー」と「ジングル・ベル」の2種類から選ぶことができます。サンプルプログラムでは、手が近づいたら「ジングル・ベル」を流すようにしてみます。
「手が近づいたら音楽を流す」というプログラムは、「もし〜なら〇〇する」という形ですね。前回のレッスンで使った「もしもブロック」が使えそうです。

もしもブロックの条件(trueの部分)に「手が近づいたら」という条件を入れたいのですが、ボタンのときと違って、そのまま使えるブロックはありません。
距離センサーを使って「手が近づいたら」という条件を作ることができないか、考えていきましょう。
先ほどコンソールに表示して見てみたように、距離センサーの値は、対象物が近づくほど小さくなっていきます(距離を測定しているので当然ですね)。
そこで、「距離センサーの値が一定の数値よりも小さくなったら」という条件を作ることができれば、「手が近づいた」ということを判断できそうです。
もしもブロックが入っている「論理」カテゴリには、条件を作ることのできるひし形のブロックが4種類入っています。

今回はその中で一番上にある、数値の比較ができるブロックを使用します。

このブロックでは、等号や不等号を選んで、左右の数値の大小などを比較することができます。
「距離センサーの値が一定の数値よりも小さくなったら」という条件式になるように、不等号を選び、左右の楕円の部分に値を入れます。

右側の数値は、大きければ手が遠い位置にあっても反応するようになり、小さければぎりぎりまで近づけないと反応しないようになります。
どれくらいの値がちょうどいいのか、コンソールに表示される値を見ながら、各自で調整してください。
条件が出来上がったので、もしもブロックのひし形の部分に挿入します。
ブロックを持っている指やマウスが入れたい場所に入るように持っていきましょう。

あとはこのもしもブロックを、最初に作ったプログラムと合体させれば完成です。
何度も判定されるように、ループの中に入れるのを忘れないでください。

PCの音量がミュートになっていないことを確認して、実行してみましょう。手を近づけたら音楽が流れましたか?
設置する場所や数値を調整すれば、人が来たことを検知したり、ドアの開閉センサーを作ったりもできそうですね。
箱のふたとの距離を測定すれば、箱を開けたときにハッピーバースデーの音楽が流れるようにして、誕生日サプライズにも使うことができます(参考:箱を開けたら流れるバースデーソング)。
アイディア次第でさまざまなことができるので、ぜひ工夫して楽しい使い道を考えてみてください!