Raspberry PiでHC-SR04を使用します

Using the HC-SR04 With the Raspberry Pi

HC-SR04超音波センサーは、さまざまなDIYおよび専門プロジェクトで距離を測定するための人気のある費用対効果の高いツールです。 Raspberry Piと組み合わせると、障害物検出、レベル測定、さらにはインタラクティブなインストールなどのアプリケーションを作成する可能性のある世界が開かれます。このブログ投稿では、Raspberry Piを使用してHC-SR04センサーをセットアップして使用するプロセスをガイドします。

HC-SR04超音波センサーとは何ですか?

HC-SR04は、超音波波を放出し、エコーが戻るのにかかる時間を計算することにより距離を測定する超音波センサーモジュールです。 5Vで動作し、通常2 cmから400 cmの間で、短距離距離距離測定でその精度と信頼性が知られています。

必要なコンポーネント

  • Raspberry Pi(Raspberry Pi 4などのGPIOピンを搭載したモデル)
  • HC-SR04超音波センサー
  • ジャンパーワイヤ
  • ブレッドボード
  • 10kΩ抵抗器(電圧分割用)
  • オプション:視覚的なフィードバックのためのLEDと抵抗

HC-SR04をRaspberry Piに配線します

HC-SR04をRaspberry PIに接続するには、特にRaspberry PI GPIOピンが3.3Vで動作し、HC-SR04が5Vで動作するため、慎重な取り扱いが必要です。 PIの損傷を防ぐために、エコーピンで電圧分割器を使用することが不可欠です。

ピン接続

  • VCC hc-sr04へ 5V ラズベリーパイにピン留め
  • GND hc-sr04へ GND Raspberry Pi
  • トリグ hc-sr04のピン GPIOピン RaspberryPi(例:GPIO23)
  • エコー 電圧仕切りを介してhc-sr04のラズベリーpiへのピン

電圧仕切りをセットアップします

エコーピンをラズベリーPIに安全に接続するには、10kΩ抵抗と20kΩ抵抗器で電圧分割器を使用します。これにより、5V信号を約3.3Vに下げます。


# Example schematic for voltage divider
# HC-SR04 Echo pin ---- 10kΩ ----> Raspberry Pi GPIO (Echo)
#                             |
#                           20kΩ
#                             |
#                           GND

必要なライブラリのインストール

コードを書く前に、Raspberry Piが最新であり、必要なライブラリがインストールされていることを確認してください。


sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python3-rpi.gpio

Pythonスクリプトを書く

以下は、HC-SR04センサーとインターフェイスするシンプルなPythonスクリプトです。このスクリプトは、トリガーパルスを送信し、エコーを待ち、エコーが戻るのにかかった時間に基づいて距離を計算します。


import RPi.GPIO as GPIO
import time

# GPIO Mode (BOARD / BCM)
GPIO.setmode(GPIO.BCM)

# Set GPIO Pins
TRIG = 23
ECHO = 24

print("Distance Measurement In Progress")

# Set GPIO direction (IN / OUT)
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)

def distance():
    # Set TRIG to LOW
    GPIO.output(TRIG, False)
    time.sleep(2)

    # Send 10us pulse to TRIG
    GPIO.output(TRIG, True)
    time.sleep(0.00001)
    GPIO.output(TRIG, False)

    start_time = time.time()
    stop_time = time.time()

    # Save StartTime
    while GPIO.input(ECHO) == 0:
        start_time = time.time()

    # Save Time of Arrival
    while GPIO.input(ECHO) == 1:
        stop_time = time.time()

    # Time difference between start and arrival
    time_elapsed = stop_time - start_time
    # Multiply with speed of sound (34300 cm/s)
    # and divide by 2, because there and back
    distance = (time_elapsed * 34300) / 2

    return distance

if __name__ == '__main__':
    try:
        while True:
            dist = distance()
            print("Measured Distance = %.1f cm" % dist)
            time.sleep(1)
    except KeyboardInterrupt:
        print("Measurement stopped by User")
        GPIO.cleanup()

スクリプトを実行します

配線が正しいことを確認してから、Python 3を使用してスクリプトを実行してください。


python3 hc-sr04.py

コンソールに印刷されたセンチメートルで測定距離が表示されます。視覚的なフィードバックにLEDを使用している場合、オブジェクトが特定の範囲内にあるときにスクリプトを変更してLEDを点灯することができます。

あなたのプロジェクトを強化します

基本的な距離測定値が機能したら、追加機能の統合を検討してください。

  • LEDインジケーター: LEDを使用して、異なる距離範囲を示します。
  • LCDディスプレイ: LCD画面に距離を表示します。
  • データロギング: 分析のために時間の経過とともに距離測定を記録します。
  • アラートシステム: オブジェクトが近すぎるときのアラームまたは通知をトリガーします。

一般的な問題のトラブルシューティング

センサーとGPIOを使用することは、挑戦的な場合があります。いくつかの一般的な問題とそれらに対処する方法は次のとおりです。

  • 誤った配線: すべての接続、特にエコーピンの電圧仕切りを再確認します。
  • 騒々しい測定: セットアップが安定していることを確認し、コンデンサを追加してノイズをフィルタリングすることを検討してください。
  • GPIOの対立: 他のスクリプトやサービスが同じGPIOピンを使用していないことを確認してください。
  • 許可: 使用して、適切な権限でスクリプトを実行します sudo 必要に応じて。

結論

HC-SR04超音波センサーは、Raspberry Piと組み合わせると、単純な距離測定から複雑な自動化システムまで多数のアプリケーションを提供できる汎用性と信頼性の高いコンポーネントです。このガイドで概説されている手順に従って、Raspberry PiのHC-SR04をセットアップして実験することができるはずです。幸せな留め!

コメントを残す

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.