# URM09超音波センサー(Trig) の利用方法




本ドキュメントは、URM09超音波距離センサー(Trig)(Gravity: URM09 Ultrasonic Sensor (Trig))の概要、特徴、利用方法について説明します。

Gravity: URM09 Ultrasonic Sensor (Trig)




# 本ドキュメントの目的


  • URM09超音波センサー(Trig)の概要説明
  • URM09超音波センサー(Trig)の仕様説明
  • URM09超音波センサー(Trig)に関する利用方法の説明


# URM09超音波センサー(Trig)の概要


Gravity: URM09 Ultrasonic Sensor (Trig)は、DFRobot社が提供するURM09シリーズの高性能な超音波距離センサーです。
原理や使用方法は、SR04超音波距離センサーと同様です。また、SR04より一つ少ないI/Oポートで測定が可能です。
おおよそ、2~500cmの有効測定範囲内で、誤差±1%精度で測定が可能です。(DFRobot社によるテストの結果、環境によって異なる可能性があります)。

Gravity: URM09 Ultrasonic Sensor (Trig)付属品


# micro:Mateのご購入


当社micro:bit専門ウェブショップ「イフティニー ストア(iftiny store)」 (opens new window)にてお求めいただけます。




# URM09超音波センサー(Trig)の特徴・仕様


  • 簡単に接続できるインターフェース
    インターフェースは、DFRobot社標準のPH2.0-3P Gravity Verticalインターフェースを採用しています。
    Arduino、Raspberry Piなどの3.3V/5Vコントローラとの接続が可能です。
    micro:bitとの接続は、拡張ボード等を経由して行うことが可能です。

    Gravity: URM09 Ultrasonic Sensor (Trig)背面

    No. ラベル 詳細
    1 - グランド
    2 + 電源 3.3〜5.5V
    3 D デジタルI/O(TRIG / ECHOマルチプレックス、
    内部プルダウン)

  • 高い測定性能
    このセンサの距離測定機能は、ホストのI/Oポートからのハイ/ローレベルの出力がトリガーとなり、超音波の飛翔時間をハイパルスに変換して出力します。
    高度なハードウェアおよびソフトウェア設計の採用により、優れた信頼性の高い測定性能を実現しています。
    2~500cmの有効測定範囲内で誤差±1%の精度を実現しています(平らな壁でのテスト)。

  • I/Oポートは1つだけ
    本センサーは、入力信号と出力信号について、1つのポートのみ使用していることがSR04と異なります。
    コントローラのI/Oポートを一つだけ利用し、簡単に距離測定ができます。




# URM09超音波センサー(Trig)の動作原理


超音波距離センサーとは、その名のとおり超音波を使用して距離を測定するセンサーです。
センサーより超音波を発信し、対象物から反射してくる超音波を再度センサーで受信します。
発信から受信までの時間を計測することで対象物までの距離を測定しています。


# 距離の測定方法

Gravity: URM09 Ultrasonic Sensor (Trig)距離の測定方法

  1. 初めは、センサーは入力モードになっているので、ホストを出力モードに設定します。ホストから10usのハイパルストリガ信号を送ってから、ホストポートのステータスを入力モードに変更し、センサーからの信号が戻るのを待ちます。

  2. センサーの出力ハイレベル時間は、超音波往復の飛行時間(最長パルス幅時間:35000us)と同じです。

上記により、ハイレベルの時間を検出することで、計算をして距離を簡単に求めることができます。


※ URM09超音波距離センサー(Trig)は、一つのデジタルI/Oポートを使用して距離測定を行います。
※ トリガ信号と受信信号はTMD(Time Division Multiplexing)により1つのピンで共有しています。



# URM09超音波センサー(Trig)の測量角度


Gravity: URM09 Ultrasonic Sensor (Trig)の測量角度




# URM09超音波センサー(Trig)の規格


項目 詳細
動作電圧 3.3〜5.5V DC
最大瞬間動作電流 <20mA
動作温度範囲 -10℃〜+ 70℃
有効距離 2cm〜500cm
距離分解能 1cm
精度 1%
音響周波数 40 ± 2KHz
測量周波数 最大25Hz
寸法 47 × 22mm

Gravity: URM09 Ultrasonic Sensor (Trig)のサイズ




# URM09超音波センサー(Trig)の付属品


付属品 個数
RM09 Ultrasonic Sensor (Trig) 1
PH2.0(センサー側)-3Pin(コントローラ側)
コネクタ付きケーブル
1






# micro:bitでの利用方法


本説明では、例として、micro:bitに拡張ボードmicro:Mateを装着し、本センサーを利用する方法を説明します。


# ハードウェアの接続


No. 手順 確認
01 micro:Mate単体で
付属ボルトとナットで固定する
ボルトをmicro:Mateの正面から挿入し、
背面にナットを装着して固定
02 micro:Mateとmicro:bitを
付属ナットで固定する
micro:Mateを前に、
micro:Mateの背面とmicro:bitの正面を接続
03 センサーにケーブルを装着
今回はセンサー付属ケーブルを利用
正しく装着されていることを確認
04 センサーのケーブルコネクター(3Pin)を
micro:Mateのデジタルコネクター8番に装着
ケーブルの色が合っていることを確認



# プログラミング


No. 手順 確認
01 MakeCodeを起動し、プロジェクトを作成 ブロックエディター画面が表示される
02 「拡張機能」を選択し、検索バーで以下を検索
「https://github.com/DFRobot/pxt-DFRobot_URM09_Trig」
「DFRobt_URM09_Trig]であることを確認
03 検索結果の「DFRobt_URM09_Trig]を
クリックしてダウンロード
「URM09 Trig]追加されたことを確認
04 以下を参照しプログラムを作成 下記と同じであることを確認
05 端末とmicro:bitと接続し、
プログラムをmicro:bitに保存
完了後、2秒ごとに距離を測り、
結果をマイクロディスプレイに表示される



# MakeCode ブロック






# MakeCode JavaScriptコード



let range = 0
basic.forever(function () {
    range = 0
    range = trig.ultraSonic(PIN.P8)
    basic.showNumber(range)
    basic.pause(2000)
})



# MakeCode pythonコード


range2 = 0

def on_forever():
    global range2
    range2 = 0
    range2 = trig.ultra_sonic(PIN.P8)
    basic.show_number(range2)
    basic.pause(2000)
basic.forever(on_forever)



# QRコード

カメラでQRコードをかざすことで、簡単にMakeCodeにアクセスし、上記サンプルコードを使うことが可能です。

Gravity: URM09 Ultrasonic Sensor (Trig)プログラムサンプルQRコード





# Arduinoでの利用方法




# ハードウェアの接続


超音波距離センサーをArduinoに接続します。

Gravity: URM09 Ultrasonic Sensor (Trig)とArduinoの接続




# プログラミング


/*!
       This example is the ultrasonic distance measurement of the module.

       Copyright   [DFRobot](http://www.dfrobot.com), 2020
       Copyright   GNU Lesser General Public License

       version  V1.0
       date  29/10/2020
*/

#define    VELOCITY_TEMP(temp)       ( ( 331.5 + 0.6 * (float)( temp ) ) * 100 / 1000000.0 ) // The ultrasonic velocity (cm/us) compensated by temperature

int16_t trigechoPin = 11;
uint16_t distance;
uint32_t pulseWidthUs;
void setup() {
  Serial.begin(9600);
  delay(100);
}
void loop() {
  int16_t  dist, temp;
  pinMode(trigechoPin,OUTPUT);
  digitalWrite(trigechoPin,LOW);

  digitalWrite(trigechoPin,HIGH);//Set the trig pin High
  delayMicroseconds(10);     //Delay of 10 microseconds
  digitalWrite(trigechoPin,LOW); //Set the trig pin Low

  pinMode(trigechoPin,INPUT);//Set the pin to input mode
  pulseWidthUs = pulseIn(trigechoPin,HIGH);//Detect the high level time on the echo pin, the output high level time represents the ultrasonic flight time (unit: us)

  distance = pulseWidthUs * VELOCITY_TEMP(20) / 2.0;//The distance can be calculated according to the flight time of ultrasonic wave,/
                                                    //and the ultrasonic sound speed can be compensated according to the actual ambient temperature
  Serial.print(distance, DEC);
  Serial.println("cm");
  delay(500);
}



Last Updated: 7/30/2021, 12:30:50 AM