超音波センサー


 

Tiny:bitの前方には「超音波測距モジュール」という基盤が取り付けられています。

これは、人間の耳には聞こえない高い周波数の音を発信し、跳ね返ってくるまでの時間を計測し、距離を推測する機能を持っています。

 

音波は1気圧・気温20度の時に、1秒間に約340m進むので、反射(エコー)が1秒かかって帰ってくれば、340m先に何かあることになります。

 このモジュール(HC-SR04)は概ね2cm~450cm先の物体まで検知できる性能と言われています。

 ※micro:bitで直結で使えるのは「V-2020」というバージョンです。秋月電子販売のSR04はV2020でした。

 

本講座では予め用意されているブロックを使います。

この講座ではmicro:bitのVer.2.xを使っているので、

 

「microbit V2 超音波センサー(cm)」ブロック

を使用します。

 

Ver1.5基盤の場合は「超音波センサー(cm)」を利用します。

 

 

「microbit V2 超音波センサー(cm)」などの楕円形をしたブロックは、何かを実行した結果(数値や状態)を格納しています。

 

この結果(今回は距離)を私達が見える状態にしてやらなければなりません。

「出力」が必要なのです。

 

今回はmicro:bit基盤に搭載されているドットマトリックス表示装置を利用してみましょう。

 

「LED」群の「棒グラフを表示する・・・」ブロックを使います。

 

超音波センサーで得た距離を左図のようなグラフで見る計画です。

 

距離に応じて、LEDの点の数が多くなったり少なくなったりします。

 

 

 

「Tinybit」群から

「microbit V2 超音波センサー(cm)」をドラッグし、

「値」の部分でドロップします。

 

最大値は「100」としてください。

0~100cmまでの値をグラフで表示するという意味です。

 

 

 

 

超音波センサーは連続して動かすことはできません。

測定には少し時間(200ms)を空けないといけないルールがあります。

 

なので、「基本」群から「一時停止(ミリ秒)」を

「棒グラフ表示・・」の下に組み込みます。

 

 

 

今回は、0.5秒に一回(500ミリ秒)距離を測定しグラフ表示させます。

 

左画面のように数値を500に変え、プログラムを完成させてください。

 

 

完成です。

 

プログラムをTiny:bitに書き込んでください。

「ダウンロード」ボタンをクリックします。

 

このプログラムは消費電力が少ないので、Tiny:bit本体の電源をONにしなくても動きます。

 

実験中

 

上の写真が50cm

下の写真が20cm

 

注意:

micro:bitのバージョンが1.5、Tiny:bitのバージョンが2.0の場合は正しく計算されないようです。

自身で計算させれば無問題と思われますが・・

 

ーーー この実習は終わりです ーーー

 


 

【参考】

micro:bitの「拡張機能」から「sonar」を組み込むと

自身で距離を計算できるようになります。

Tiny:bitで直接制御したい場合は

 Pin16がトリガー(発信)、Pin15がエコー(受信)

と設定してください。(内部で15/16Pinに接続されています)

 

参考説明「子供のプログラミング」様 (本講座では扱いません)

 

超音波センサー基盤は左のような信号を送って、受けて、距離を受信用Pinに返しています。

 

参考にしたサイトはこちら

ーーーー Arduinoプログラム例 ーーーー

double 音速 = 331.5 + 0.6 * 25;

  :
void loop() {
 digitalWrite(TRIG, LOW);
 delayMicroseconds(2);
 digitalWrite( TRIG, HIGH );
 delayMicroseconds( 10 );
 digitalWrite( TRIG, LOW );
 往復時間 = pulseIn( ECHO, HIGH );

 if ( 往復時間 > 0) {
  往復時間 = 往復時間 / 2;
  距離 = 往復時間 * 音速 * 100 / 1000000;
  Serial.print("距離:");
  Serial.print(距離);
  Serial.println(" cm");
}
delay(200);