距離センサー



赤外線という、私たち人間の目には見えない光を使ったセンサーです。赤外線を発光するLEDと、光位置センサー(PSD)という素子が入っていて、センサー前方にある物体との距離を調べることができるセンサーです。
たとえば、距離センサーをミニカーに搭載すれば、衝突する前に停止させることができます。


このページでは、距離センサー(GP2Y0A21YK0F:距離センサーデータシートPDF)の基本的な使い方を学ぶことができます。

目次


仕組み


距離センサーの中には、赤外線LEDと光位置センサー(PSD)という素子が入っています。

PSDはどの位置に光が当たっているかがわかる素子です。
対象物との距離が変わると、反射した光がPSDに当たる位置が変化します。

PSDは光の当たる位置によって異なる電圧を出力するので、電圧を調べることで、対象物までの距離がわかります。


これは、距離と出力電圧の関係です。このセンサーが計測できる範囲は、10cm ~ 80cm です。

micro:bitは距離センサーの出力電圧をアナログ値として取得できます。出力電圧とアナログ値の関係は

アナログ値 = 出力電圧 × 1023 ÷ 3.3

となります。

太陽光などがPSDに入ったり、対象物の素材や位置・姿勢によっては正しく距離が測れないことがあります。
動作がおかしいと感じた場合は、これらを確認しましょう。



micro:bit との接続方法


距離センサーにつながっているコードのコネクターを、ワークショップモジュールに接続して使います。

・接続の仕方はこちら
・商品ページはこちら



プログラミング(MakeCode)

まずは、センサーの前に手をかざすなどして、距離とアナログ値の変化を確認してみましょう。


アナログ値の取得は、ツールボックス「高度なブロック」>「入出力端子」の中にある「アナログで読み取る」ブロックを使います。


「端子」にはフォトインタラプタ―を接続している micro:bit のピン番号を選びます。


距離センサーの値を棒グラフでLED画面に表示するプログラムを動かしてみましょう。手がセンサーに近くなるほどLEDがたくさん点灯し、遠くなるほど少なくなります。※「棒グラフを表示する…」ブロックは、ツールボックス「LED」にあります。



プログラムURL:https://makecode.microbit.org/_JYfWYxh5301x
※こちら画面のプログラムをMakeCodeで開く方法はチュートリアルを確認してください。

※ワークショップモジュールの電源スイッチをONにすることを忘れないようにしましょう。

 ポイント:棒グラフを表示する

「棒グラフを表示する」ブロックを使うと、おおまかな値をLED画面で確認することができます。

また、センサーの値をリアルタイムにグラフで確認することもできて便利です。※グラフを表示するには、micro:bit をケーブルでパソコンに接続している必要があります。

グラフの表示方法など「棒グラフに表示する…」ブロックの使い方は、チュートリアルを参考にしてください:こちら


次のプログラムでは、センサーの値をもとに距離(cm)を算出して、micro:bitのLED画面に表示してみました。



プログラムURL:https://makecode.microbit.org/_cDpFcTevjfkD
※こちら画面のプログラムをMakeCodeで開く方法はチュートリアルを確認してください。

 関数

距離を計算するブロック群を関数「距離を計算する」にまとめました。関数についてはチュートリアルを参考にしてください:こちら


 変数

算出した距離は、変数「距離」に保存しています。変数についてはチュートリアルを参考にしてください:こちら


 数値をマップする

距離の計算で「数値をマップする」ブロックを使いました。「数値をマップする」ブロックについてはチュートリアルを参考にしてください:こちら