超音波距離計 hc sr04 プログラム。 超音波距離計 HC-SR04。 自己実現の課題

必要になるだろう

  • アルドゥイーノ;
  • 超音波センサー HC-SR04;
  • ワイヤを接続します。

1 動作原理超音波距離計 HC-SR04

超音波距離計HC-SR04の動作は、エコーロケーションの原理に基づいています。 音のパルスを空間に放出し、障害物から反射された信号を受信します。 物体までの距離は、音波が障害物に到達して戻ってくるまでの伝搬時間によって決まります。

図 7: 交差点の交差点モード。 サーボモーターがないため、回転が難しくなります。 さらに、車の 180 度回転は、次のように 1 つの手順で行うことができないため、回避されます。 実生活、より多くの動き。 したがって、常に 90° でのみターンを行います。 図 7 では、車が交差点に進入し、左折しようとしています。 マシン上のセンサーによって生成された超音波信号は、プレゼンテーションに従って伝播します。 右側のセンサーが正面の壁に垂直になるまで、そこから受信した値と正面のセンサーは、ターンを終了したときよりも長い距離を検出します。

音波の始まりは、脚あたり少なくとも 10 マイクロ秒の持続時間を持つ正のパルスで始まります トリガー距離計。 パルスが終了するとすぐに、距離計は 40 kHz の周波数の音パルスのバーストをその前の空間に放出します。 同時に脚に エコー距離計は論理ユニットに表示されます。 センサーが反射信号を拾うとすぐに、論理ゼロが ECHO ピンに表示されます。 ECHO ピンの論理ユニットの持続時間 (図の「エコー遅延」) によって、障害物までの距離が決まります。

低速で静止している場合、2 つのビームのそれぞれの最小値に達したときにターンが終了したと見なすことができます。 最後に、最後に残っているのは、行き止まりになったときに車がどのように振る舞うべきかということです。 もう後戻りはできないので、写真を撮って元いた交差点まで引き返します。

インターフェイスは使いやすく、可能な限り拡張可能です。 組み込みのロボットは、一連のアルゴリズムに基づいて単純な迷路を移動し、軌道を維持し、方向転換し、迷路から抜け出す方法を見つけることができます。 2 つ以上の交点が非常に接近している迷路や、壁がまっすぐでない迷路を作成すると、障害物にぶつからずに迷路全体を探索したり、歩く方向を変えたりすることが不可能になり、多くの問題が発生する可能性があります。 この制限は、外部環境と対話するために 3 つの超音波リモート センサーのみを使用するという事実によるものです。

HC-SR04 の距離測定範囲は、分解能 0.3 cm で最大 4 メートル、観測角度は 30°、有効角度は 15°です。 スタンバイモードでの消費電流 2 mA、動作中 - 15 mA。

2 配線図距離センサー

超音波距離計は +5 V で駆動されます。他の 2 つのピンは任意の Arduino デジタル ポートに接続されており、11 と 12 に接続します。

ジャイロスコープは、軌道を確立して維持するのに非常に役立ちますが、プロジェクトの全体的なコストに影響します。





したがって、コントローラーを制御するための非常にシンプルなインターフェースです。 前方に物体が見つかった場合、エコー ピンが高くなり、距離によって異なる持続時間がかかります。 高いレベル.

このように簡単に距離を計算できます。 最後に、モジュールの背面を見てください。 モジュール内のすべてのチップは強化されています。おそらく、作者は盗作の作成を防ぎたいと考えています。 それをクラックするのは難しい作業ではありませんが、非常に低価格で、あなたのコピーよりもさらに安いです。





3 オブジェクトまでの距離を取得する HC-SR04センサーより

では、障害物までの距離を決定し、それをシリアル ポートに出力するスケッチを書きましょう。 まず、TRIG と ECHO のピン番号を設定します。これらはピン 12 と 11 です。 次に、トリガーを出力として宣言し、エコーを入力として宣言します。 シリアル ポートを 9600 ボーで初期化します。 サイクルの各反復で ループ()距離を読み取り、ポートに出力します。

動作電圧: 5V 静的電流: 2mA 未満。 出力信号:電気周波数信号、高レベル5V、 低レベル 0V。 センサー角度: 15 度以下。 5V電源モジュールの場合、出力は障害物が範囲内にある場合は5V、そうでない場合は0Vになります。 このモジュールの出力ピンは、盗難防止モジュールの場合はスイッチング出力として使用され、レンジモジュールの場合は脚なしで使用されます。 注: 高レベルを避けるために、電源を入れる前にモジュールを回路に挿入する必要があります。 そうでない場合は、再び電源を入れます。

Const int trigPin = 12; const int echoPin = 11; ボイドセットアップ()( pinMode(trigPin、出力); // トリガー - 出力ピン pinMode(echoPin, INPUT); // echo - 入力 Serial.begin(9600); // 初期化は最後。 港 } 空ループ() (長距離 = getDistance(); // センサーからの距離を取得する Serial.println(distance); // シリアル ポートへの出力 delay(100); } // オブジェクトまでの距離を cm で決定する long getDistance() ( long distacne_cm = getEchoTiming() * 1.7 * 0.01; distacne_cm を返します。 } // 遅延時間を定義 long getEchoTiming() ( digitalWrite(trigPin、LOW); 遅延マイクロ秒 (2); digitalWrite(trigPin、HIGH); // トリガー パルスを生成する delayMicroseconds(10); digitalWrite(trigPin、LOW); // echoPin ピンの HIGH レベルの期間を決定します。ミリ秒: long duration = pulseIn(echoPin, HIGH); 返品期間; }

iarduino_HC_SR04_int ライブラリの接続

モジュールは、8 つの 40 kHz 直交波を自動的に送信し、それらを受信するかどうかを自動的に決定します。 パルス信号を返します。 戻ってくる信号がある場合は、ハイ レベルを出力し、ハイ レベルの時間が続きます。 超音波の送信から受信までの時間。

サイトを注文すると、確認メールが届きます。 ご注文の商品が発送され次第、発送されます Eメールご注文を発送するための追跡情報。 チェックアウト プロセス中の [注文情報] ページで、ご希望の配送方法を選択できます。 このサイトでは、4 つの異なる国際配送方法を提供しています。

関数 getEchoTiming()スタートパルスを発生します。 10 マイクロ秒のパルスを生成するだけで、距離計が音のパケットを宇宙に放出し始めるトリガーとなります。 それから彼女は、音波の送信の開始からエコーの到着までの時間を覚えています。

関数 getDistance()物体までの距離を計算します。 学校の物理コースから、距離は速度に時間を掛けたものに等しいことを覚えています:S = V×t空気中の音速は340 m / sで、時間はマイクロ秒でわかります(変数 持続時間)。 時間を得るために 持続時間秒単位で、1,000,000 で割る必要があります.音は 2 倍の距離を移動するため (オブジェクトまで、そして戻ってきます)、結果を半分に分割する必要があります。 つまり、物体までの距離は S = 34000 cm/秒 × 持続時間 / 1,000,000 秒 / 2 = 1.7 cm/秒 / 100、スケッチに書きました。

地元の倉庫からの配送ははるかに高速です。 また、通過時間は、あなたがどこにいて、あなたの荷物がどこにあるかによって異なります. さらに詳しい情報が必要な場合は、カスタマー サービスにお問い合わせください。 できるだけ早く問題を解決いたします。

損傷が画面に関連している場合、この状況はこの保証の対象外と見なされるべきではありません。 この製品の修理をご希望の場合は、ご返品ください。修理センターに発送いたします。 この場合、返送料および修理費用はお客様のご負担となります。 返品または修理の過程で追加費用が発生した場合は、これについても責任を負う必要があります。

マイクロコントローラは、除算演算よりも乗算演算を高速に実行するため、 :100 同等品に交換しました ×0.01.

4 仕事用の図書館エコーサウンダ付 HC-SR04

また、超音波距離計で動作するように多くのライブラリが作成されています。 たとえば、これはこの超音波ライブラリです。 ライブラリは標準的な方法でインストールされます: ダウンロード、ディレクトリへの解凍 /ライブラリ/のフォルダにあります。 ArduinoIDE. その後、ライブラリを使用できます。

追加作品例

請求書をお送りする前に、当社が支払わなければならない手数料を記載した請求書をお送りします。 すべての保証請求は、提出日から 180 日後に拒否されます。 到着した商品が壊れていた場合は、商品到着日より3日以内にご連絡の上、3日間の製品保証に従ってください。

購入品にご満足いただけない場合は、商品を受け取ってから 3 日以内に返品して、送料または交換手数料を差し引いた金額の払い戻しを受けることができます。 理由が当社のエラーによるものでない限り、往復の送料を支払う必要があります。 アイテムが元のパッケージで、受け取ったのと同じ状態で返品されることを確認してください。

ライブラリをインストールしたら、新しいスケッチを書きましょう。

#含む // Ultrasonic ライブラリを含める ultrasonic(12, 11); // トリガー - 12、エコー - 11 ボイドセットアップ()( Serial.begin(9600); // 初期化は最後。 港 } 空ループ() ( float dist_cm = 超音波.Ranging(CM); // 距離 (cm) Serial.println(dist_cm); // ポート delay(100) までの距離を出力します。 }

その作業の結果は同じです - オブジェクトまでの距離がセンチメートル単位でシリアルポートモニターに表示されます。

スケッチであなたが書いた場合 float dist_cm = 超音波.Ranging(INC);- 距離はインチで表​​示されます。

5 仕事の結論 HC-SR04ソナー付

それで、Arduinoに接続しました 超音波距離計 HC-SR04とそれからの受信データを2個 違う方法: 特別なライブラリの有無にかかわらず。

ライブラリを使用する利点は、コードの量が大幅に削減され、プログラムの読みやすさが向上し、デバイスの複雑さを掘り下げる必要がなく、すぐに使用できることです。 しかし、これは欠点でもあります。デバイスがどのように機能し、どのようなプロセスがデバイスで行われるかについての理解が不十分です。 いずれにせよ、どの方法を使用するかはあなた次第です。

必要になるだろう

  • アルドゥイーノ;
  • 超音波センサー HC-SR04;
  • ワイヤを接続します。

1 動作原理超音波距離計 HC-SR04

超音波距離計HC-SR04の動作は、エコーロケーションの原理に基づいています。 音のパルスを空間に放出し、障害物から反射された信号を受信します。 物体までの距離は、音波が障害物に到達して戻ってくるまでの伝搬時間によって決まります。

図 7: 交差点の交差点モード。 サーボモーターがないため、回転が難しくなります。 また、車の 180 度方向転換は、1 つのステップで行うことができず、現実のように、より多くの動きが必要になるため、回避されます。 したがって、常に 90° でのみターンを行います。 図 7 では、車が交差点に進入し、左折しようとしています。 マシン上のセンサーによって生成された超音波信号は、プレゼンテーションに従って伝播します。 右側のセンサーが正面の壁に垂直になるまで、そこから受信した値と正面のセンサーは、ターンを終了したときよりも長い距離を検出します。

音波の始まりは、脚あたり少なくとも 10 マイクロ秒の持続時間を持つ正のパルスで始まります トリガー距離計。 パルスが終了するとすぐに、距離計は 40 kHz の周波数の音パルスのバーストをその前の空間に放出します。 同時に脚に エコー距離計は論理ユニットに表示されます。 センサーが反射信号を拾うとすぐに、論理ゼロが ECHO ピンに表示されます。 ECHO ピンの論理ユニットの持続時間 (図の「エコー遅延」) によって、障害物までの距離が決まります。

低速で静止している場合、2 つのビームのそれぞれの最小値に達したときにターンが終了したと見なすことができます。 最後に、最後に残っているのは、行き止まりになったときに車がどのように振る舞うべきかということです。 もう後戻りはできないので、写真を撮って元いた交差点まで引き返します。

インターフェイスは使いやすく、可能な限り拡張可能です。 組み込みのロボットは、一連のアルゴリズムに基づいて単純な迷路を移動し、軌道を維持し、方向転換し、迷路から抜け出す方法を見つけることができます。 2 つ以上の交点が非常に接近している迷路や、壁がまっすぐでない迷路を作成すると、障害物にぶつからずに迷路全体を探索したり、歩く方向を変えたりすることが不可能になり、多くの問題が発生する可能性があります。 この制限は、外部環境と対話するために 3 つの超音波リモート センサーのみを使用するという事実によるものです。

HC-SR04 の距離測定範囲は、分解能 0.3 cm で最大 4 メートル、観測角度は 30°、有効角度は 15°です。 スタンバイモードでの消費電流 2 mA、動作中 - 15 mA。

2 配線図距離センサー

超音波距離計は +5 V で駆動されます。他の 2 つのピンは任意の Arduino デジタル ポートに接続されており、11 と 12 に接続します。

ジャイロスコープは、軌道を確立して維持するのに非常に役立ちますが、プロジェクトの全体的なコストに影響します。





したがって、コントローラーを制御するための非常にシンプルなインターフェースです。 物体が前にある場合、エコー ピンは高くなり、距離に応じて異なる高レベルの持続時間がかかります。

このように簡単に距離を計算できます。 最後に、モジュールの背面を見てください。 モジュール内のすべてのチップは強化されています。おそらく、作者は盗作の作成を防ぎたいと考えています。 それをクラックするのは難しい作業ではありませんが、非常に低価格で、あなたのコピーよりもさらに安いです。





3 オブジェクトまでの距離を取得する HC-SR04センサーより

では、障害物までの距離を決定し、それをシリアル ポートに出力するスケッチを書きましょう。 まず、TRIG と ECHO のピン番号を設定します。これらはピン 12 と 11 です。 次に、トリガーを出力として宣言し、エコーを入力として宣言します。 シリアル ポートを 9600 ボーで初期化します。 サイクルの各反復で ループ()距離を読み取り、ポートに出力します。

動作電圧: 5V 静的電流: 2mA 未満。 出力信号:電気周波数信号、高レベル5V、低レベル0V。 センサー角度: 15 度以下。 5V電源モジュールの場合、出力は障害物が範囲内にある場合は5V、そうでない場合は0Vになります。 このモジュールの出力ピンは、盗難防止モジュールの場合はスイッチング出力として使用され、レンジモジュールの場合は脚なしで使用されます。 注: 高レベルを避けるために、電源を入れる前にモジュールを回路に挿入する必要があります。 そうでない場合は、再び電源を入れます。

Const int trigPin = 12; const int echoPin = 11; ボイドセットアップ()( pinMode(trigPin、出力); // トリガー - 出力ピン pinMode(echoPin, INPUT); // echo - 入力 Serial.begin(9600); // 初期化は最後。 港 } 空ループ() (長距離 = getDistance(); // センサーからの距離を取得する Serial.println(distance); // シリアル ポートへの出力 delay(100); } // オブジェクトまでの距離を cm で決定する long getDistance() ( long distacne_cm = getEchoTiming() * 1.7 * 0.01; distacne_cm を返します。 } // 遅延時間を定義 long getEchoTiming() ( digitalWrite(trigPin、LOW); 遅延マイクロ秒 (2); digitalWrite(trigPin、HIGH); // トリガー パルスを生成する delayMicroseconds(10); digitalWrite(trigPin、LOW); // echoPin ピンの HIGH レベルの期間を決定します。ミリ秒: long duration = pulseIn(echoPin, HIGH); 返品期間; }

iarduino_HC_SR04_int ライブラリの接続

モジュールは、8 つの 40 kHz 直交波を自動的に送信し、それらを受信するかどうかを自動的に決定します。 パルス信号を返します。 戻ってくる信号がある場合は、ハイ レベルを出力し、ハイ レベルの時間が続きます。 超音波の送信から受信までの時間。

サイトを注文すると、確認メールが届きます。 ご注文の商品が発送されると、商品を発送するための追跡情報がメールで送信されます。 チェックアウト プロセス中の [注文情報] ページで、ご希望の配送方法を選択できます。 このサイトでは、4 つの異なる国際配送方法を提供しています。

関数 getEchoTiming()スタートパルスを発生します。 10 マイクロ秒のパルスを生成するだけで、距離計が音のパケットを宇宙に放出し始めるトリガーとなります。 それから彼女は、音波の送信の開始からエコーの到着までの時間を覚えています。

関数 getDistance()物体までの距離を計算します。 学校の物理コースから、距離は速度に時間を掛けたものに等しいことを覚えています:S = V×t空気中の音速は340 m / sで、時間はマイクロ秒でわかります(変数 持続時間)。 時間を得るために 持続時間秒単位で、1,000,000 で割る必要があります.音は 2 倍の距離を移動するため (オブジェクトまで、そして戻ってきます)、結果を半分に分割する必要があります。 つまり、物体までの距離は S = 34000 cm/秒 × 持続時間 / 1,000,000 秒 / 2 = 1.7 cm/秒 / 100、スケッチに書きました。

地元の倉庫からの配送ははるかに高速です。 また、通過時間は、あなたがどこにいて、あなたの荷物がどこにあるかによって異なります. さらに詳しい情報が必要な場合は、カスタマー サービスにお問い合わせください。 できるだけ早く問題を解決いたします。

損傷が画面に関連している場合、この状況はこの保証の対象外と見なされるべきではありません。 この製品の修理をご希望の場合は、ご返品ください。修理センターに発送いたします。 この場合、返送料および修理費用はお客様のご負担となります。 返品または修理の過程で追加費用が発生した場合は、これについても責任を負う必要があります。

マイクロコントローラは、除算演算よりも乗算演算を高速に実行するため、 :100 同等品に交換しました ×0.01.

4 仕事用の図書館エコーサウンダ付 HC-SR04

また、超音波距離計で動作するように多くのライブラリが作成されています。 たとえば、これはこの超音波ライブラリです。 ライブラリは標準的な方法でインストールされます: ダウンロード、ディレクトリへの解凍 /ライブラリ/ Arduino IDE フォルダにあります。 その後、ライブラリを使用できます。

追加作品例

請求書をお送りする前に、当社が支払わなければならない手数料を記載した請求書をお送りします。 すべての保証請求は、提出日から 180 日後に拒否されます。 到着した商品が壊れていた場合は、商品到着日より3日以内にご連絡の上、3日間の製品保証に従ってください。

購入品にご満足いただけない場合は、商品を受け取ってから 3 日以内に返品して、送料または交換手数料を差し引いた金額の払い戻しを受けることができます。 理由が当社のエラーによるものでない限り、往復の送料を支払う必要があります。 アイテムが元のパッケージで、受け取ったのと同じ状態で返品されることを確認してください。

ライブラリをインストールしたら、新しいスケッチを書きましょう。

#含む // Ultrasonic ライブラリを含める ultrasonic(12, 11); // トリガー - 12、エコー - 11 ボイドセットアップ()( Serial.begin(9600); // 初期化は最後。 港 } 空ループ() ( float dist_cm = 超音波.Ranging(CM); // 距離 (cm) Serial.println(dist_cm); // ポート delay(100) までの距離を出力します。 }

その作業の結果は同じです - オブジェクトまでの距離がセンチメートル単位でシリアルポートモニターに表示されます。

スケッチであなたが書いた場合 float dist_cm = 超音波.Ranging(INC);- 距離はインチで表​​示されます。

5 仕事の結論 HC-SR04ソナー付

そこで、超音波距離計 HC-SR04 を Arduino に接続し、特別なライブラリを使用する場合と使用しない場合の 2 つの方法でデータを受信しました。

ライブラリを使用する利点は、コードの量が大幅に削減され、プログラムの読みやすさが向上し、デバイスの複雑さを掘り下げる必要がなく、すぐに使用できることです。 しかし、これは欠点でもあります。デバイスがどのように機能し、どのようなプロセスがデバイスで行われるかについての理解が不十分です。 いずれにせよ、どの方法を使用するかはあなた次第です。