当サイトは2020年小学生のプログラミング必修化に関して、関連する情報を纏めています。

Micro:bit(マイクロビット)で距離を測ってみよう

Micro:bit(マイクロビット)で距離を測ってみよう

マイクロビット(Micro:bit)で障害物を避けるロボットカーを作るには、超音波距離センサーで障害物までの距離を測る必要があります。ロボットカーを作る準備として、今回はMicro:bitと距離センサーの接続の仕方を紹介します。

HC-SR04とは

仕様

1.外形
左側の丸い所から超音波を送信して右側で受信します。送信した超音波を受信するまでの時間から、プログラムで距離に換算します。
microbit_HCSR04_1

2.仕様

・2cmから400cmまで、分解能3mmで計測
・センサー基板正面を中心とした15度の範囲で計測可能
・DC5Vで稼働

3.計測の仕組み

1.トリガー信号として、10μSのパルスをTrigピンに出力
2.超音波40Khz x 8パルス送信
3.Echoピン入力がHigh
4.反射波受信
5.Echoピン入力がLow
6.3から5の時間から距離計算
図に示すと以下

microbit_HCSR04_21

マイクロビットとセンサー簡易接続(記事後半のレベルコンバーターを追加した回路を使ってください)

microbit_HCSR04_3
配線
Micro:bit 0 —- HC-SR04 Trig
Micro:bit 1 —- HC-SR04 Echo
Micro:bit Gnd —- HC-SR04 Gnd
5V電源 + —- HC-SR04 Vcc  注:図では単3電池4本ですが、実際には3本使用し4.5でテスト
5V電源 ー —- HC-SR04 Gnd

Mackcodeでプログラムする

Sonar拡張ブロックを導入する

1.高度なブロック→拡張機能をクリックします。
microbit_HCSR04_22

2.選択できる拡張機能が表示されますので、『Sonar』をクリックして選択します。
microbit_HCSR04_23

3.計算ブロックの下にSonarブロックが追加されました。
microbit_HCSR04_24

4.基本ブロックから『数を表示』ブロックを選択してずっとブロックに組み込みます。
microbit_HCSR04_25

5.Sonarブロックから『Sonar』ブロックを選択して、『数を表示』ブロックに組み込みます。

microbit_HCSR04_26

6.Sonarブロックのechoを『P1』に変更、unitを『cm』に変更します。
microbit_HCSR04_27

7.基本ブロックから『アイコンを表示』ブロックを選択して『数を表示』ブロックの下に組み込みます。アイコンはどれでも良いのですが、この例ではハートにしておきます。距離計測と計測の間の区切り表示です。その下に『表示を消す』ブロックも追加します。
microbit_HCSR04_28

測定結果について

上記のプログラムで距離を測定してみたのですが、近距離は割と正確ですが10cmを超えると不正確でした。原因がMicro:bitの3Vと距離センサーの5Vの差と考えて、レベルコンバーターをTrig信号とEcho信号に追加してみたのですが、変化はありませんでした。取り敢えずロボットカーで障害物を避けるだけであれば使えそうです。

レベルコンバーターを追加した回路(最初の回路より、こちらが正しい回路です)
microbit_HCSR04_29

注:Aruduinoとこのセンサーで距離を測ってみるとほぼ正確ですので、センサーの問題では無くSonarブロックの問題と思われます。何か分かれば更新します。

使用した部品
  


最後まで記事をお読みいただきありがとうございます。
記事の改善に役立てたいと思いますので、よろしければアンケートにご協力ください。

記事内容についてお伺い


    良く解る解る解りにくい部分がある解りにくい 


    マイクロビットカテゴリの最新記事