# URM09超音波センサー(Trig) 利用マニュアル
本ドキュメントは、URM09超音波距離センサー(Trig)(Gravity: URM09 Ultrasonic Sensor (Trig))の概要、特徴、利用方法について説明します。
# 1. 本ドキュメントの目的
- URM09超音波センサー(Trig)の概要説明
- URM09超音波センサー(Trig)の仕様説明
- URM09超音波センサー(Trig)に関する利用方法の説明
# 2. 概要
Gravity: URM09 Ultrasonic Sensor (Trig)は、DFRobot社が提供するURM09シリーズの高性能な超音波距離センサーです。
原理や使用方法は、SR04超音波距離センサーと同様です。また、SR04より一つ少ないI/Oポートで測定が可能です。
おおよそ、2~500cmの有効測定範囲内で、誤差±1%精度で測定が可能です。(DFRobot社によるテストの結果、環境によって異なる可能性があります)。
# 3. 購入方法
当社micro:bit専門ウェブショップ「イフティニー ストア(iftiny store)」 (opens new window)にてお求めいただけます。
# 4. 特徴・仕様
簡単に接続できるインターフェース
インターフェースは、DFRobot社標準のPH2.0-3P Gravity Verticalインターフェースを採用しています。
Arduino、Raspberry Piなどの3.3V/5Vコントローラとの接続が可能です。
micro:bitとの接続は、拡張ボード等を経由して行うことが可能です。
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ポートを一つだけ利用し、簡単に距離測定ができます。
# 5. 動作原理
超音波距離センサーとは、その名のとおり超音波を使用して距離を測定するセンサーです。
センサーより超音波を発信し、対象物から反射してくる超音波を再度センサーで受信します。
発信から受信までの時間を計測することで対象物までの距離を測定しています。
# 距離の測定方法
初めは、センサーは入力モードになっているので、ホストを出力モードに設定します。ホストから10usのハイパルストリガ信号を送ってから、ホストポートのステータスを入力モードに変更し、センサーからの信号が戻るのを待ちます。
センサーの出力ハイレベル時間は、超音波往復の飛行時間(最長パルス幅時間:35000us)と同じです。
上記により、ハイレベルの時間を検出することで、計算をして距離を簡単に求めることができます。
※ URM09超音波距離センサー(Trig)は、一つのデジタルI/Oポートを使用して距離測定を行います。
※ トリガ信号と受信信号はTMD(Time Division Multiplexing)により1つのピンで共有しています。
# 6. 測量角度
# 7. 仕様
項目 | 詳細 |
---|---|
動作電圧 | 3.3〜5.5V DC |
最大瞬間動作電流 | <20mA |
動作温度範囲 | -10℃〜+ 70℃ |
有効距離 | 2cm〜500cm |
距離分解能 | 1cm |
精度 | 1% |
音響周波数 | 40 ± 2KHz |
測量周波数 | 最大25Hz |
寸法 | 47 × 22mm |
# 8. 付属品
付属品 | 個数 |
---|---|
RM09 Ultrasonic Sensor (Trig) | 1 |
PH2.0(センサー側)-3Pin(コントローラ側) コネクタ付きケーブル | 1 |
# 9. 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にアクセスし、上記サンプルコードを使うことが可能です。
# 10. Arduinoでの利用方法
# ハードウェアの接続
超音波距離センサーを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);
}