このプロジェクトでは、HC-SR04超音波センサーモジュールをRaspberry Piに接続して、距離を測定します。以前、Raspberry Piで超音波センサーを使用して、障害物回避ロボットを構築しました。先に進む前に、超音波センサーについて教えてください。
HC-SR04超音波センサー:
超音波センサーは、高精度で安定した測定値で距離を測定するために使用されます。それは2cmから400cmまたは1インチから13フィートまでの距離を測定することができます。空気中に40KHzの周波数で超音波を放射し、物体が邪魔になるとセンサーに跳ね返ります。物体に当たって戻ってくるまでの時間を利用して、距離を計算することができます。
超音波センサーは「ECHO」と呼ばれる技術を使用しています。「ECHO」は単に反射された音波です。行き止まりに達した後、音が反射して戻ると、ECHOが発生します。
HCSR04モジュールは、「トリガー」ピンを約10us高くすると、超音波範囲で音の振動を生成します。これにより、音速で8サイクルの音波バーストが送信され、オブジェクトに当たった後、エコーピンで受信されます。音の振動が戻るまでの時間に応じて、適切なパルス出力を提供します。物体が遠くにあると、ECHOが聞こえるまでに時間がかかり、出力パルス幅が大きくなります。また、障害物が近くにある場合、ECHOの音が速く聞こえ、出力パルス幅が狭くなります。
超音波がセンサーに戻るまでにかかる時間に基づいて、物体の距離を計算できます。音の時間と速度がわかっているので、次の式で距離を計算できます。
- 距離=(時間x空気中の音速(343 m / s))/ 2。
波は同じ距離を前後に移動するため、値を2で割ると、障害物に到達するまでの時間は合計時間の半分になります。
したがって、センチメートル単位の距離= 17150 * T
私たちは以前、この超音波センサーとArduinoを使用して多くの有用なプロジェクトを作成しました。以下でそれらを確認してください。
- 超音波センサーを使用したArduinoベースの距離測定
- Arduinoと超音波センサーを使用したドアアラーム
- Arduinoを使用したIOTベースのごみ箱の監視
必要なコンポーネント:
ここでは 、Raspbian JessieOSでRaspberryPi2モデルBを使用しています。すべての基本的なハードウェアとソフトウェアの要件については前に説明しましたが、必要なものを除いて、RaspberryPiの概要とRaspberryPIのLEDの点滅で調べることができます。
- OSがプリインストールされたRaspberryPi
- HC-SR04超音波センサー
- 電源(5v)
- 1KΩ抵抗(3個)
- 1000uFコンデンサ
- 16 * 2文字のLCD
回路の説明:
Raspberry PiとLCDの接続は、次の表に示されています。
LCD接続 |
RaspberryPi接続 |
GND |
GND |
VCC |
+ 5V |
VEE |
GND |
RS |
GPIO17 |
R / W |
GND |
EN |
GPIO27 |
D0 |
GPIO24 |
D1 |
GPIO23 |
D2 |
GPIO18 |
D3 |
GPIO26 |
D4 |
GPIO5 |
D5 |
GPIO6 |
D6 |
GPIO13 |
D7 |
GPIO19 |
この回路では、LCDとRaspberry Piを接続するために8ビット通信(D0-D7)を使用しましたが、これは必須ではなく、4ビット通信(D4-D7)も使用できますが、4ビット通信プログラムではビットになります初心者にとっては複雑なので、8ビット通信を使用してください。ここでは、LCDの10ピンをRaspberry Piに接続しました。ここで、8ピンはデータピンで、2ピンは制御ピンです。
以下は、HC-SR04センサーとLCDをRaspberryPiと接続して距離を測定するための回路図です。
図に示すように、HC-SR04超音波センサーには4つのピンがあります。
- PIN1-VCCまたは+ 5V
- PIN2-トリガー(センサーに距離を感知するように指示するために与えられる10usの高パルス)
- PIN3- ECHO(幅がトリガー後の距離を表すパルス出力を提供します)
- PIN4-グラウンド
エコーピンは、RaspberryPiに直接接続できない+ 5V出力パルスを提供します。したがって、分圧回路(R1とR2を使用して構築)を使用して、+ 5Vロジックではなく+ 3.3Vロジックを取得します。
作業説明:
Raspberry Pi Distance Measureの完全な動作は、次のようになります。
1.トリガーピンを10uS引き上げて、センサーをトリガーします。
2.音波はセンサーによって送信されます。ECHOを受信した後、センサーモジュールは距離に比例した出力を提供します。
3.出力パルスがLOWからHIGHに変化したときと、HIGHからLOWに変化したときの時間を記録します。
4.開始時間と停止時間があります。距離方程式を使用して距離を計算します。
5.距離は16x2LCDディスプレイに表示されます。
したがって、次の機能を実行するRaspberryPi用のPythonプログラムを作成しました。
1.トリガーをセンサーに送信するには
2.センサーからのパルス出力の開始時間と停止時間を記録します。
3.STARTおよびSTOP時間を使用して距離を計算します。
4. 16 * 2LCDで得られた結果を表示します。
完全なプログラム とデモビデオを以下に示します。プログラムはコメントを通じて十分に説明されています。疑問がある場合は、以下のコメントセクションで質問できます。