logo
Published on

Raspberry Piに「HC-SR04」を接続し制御する

Authors
  • avatar
    Name
    Shou Kawakami / 川上翔
    Twitter

はじめに

Raspberry Piは豊富なGPIOピンを搭載しており、さまざまなセンサーやモジュールとの組み合わせが可能です。この記事では、超音波距離センサー「HC-SR04」をRaspberry Piに接続し、制御する方法について解説します。

※モジュールの価格を比較 ▶ TemuAliExpress楽天メルカリ

1. HC-SR04超音波距離センサーの概要

HC-SR04は、超音波パルスを使用して物体までの距離を測定するセンサーです。送信された超音波パルスが物体に当たり、反射したパルスの時間から距離を計算します。このセンサーは、非常に正確で幅広い応用が可能です。

2. HC-SR04の接続

HC-SR04は通常、4つのピンから構成されています。

  • VCC(赤色): 5Vの電源
  • Trig(緑色): 送信信号を制御するGPIOピン
  • Echo(黄色): 受信信号を読み取るGPIOピン
  • GND(茶色): 接地

これらをRaspberry Piの対応するGPIOピンに接続します。

3. Raspberry Piコードの作成

Raspberry PiでHC-SR04を制御するためのPythonコードを作成します。以下は、基本的な距離測定の例です。

import RPi.GPIO as GPIO
import time

# GPIOピンの設定
TRIG_PIN = 23
ECHO_PIN = 24

GPIO.setmode(GPIO.BCM)
GPIO.setup(TRIG_PIN, GPIO.OUT)
GPIO.setup(ECHO_PIN, GPIO.IN)

def get_distance():
    # トリガーピンに10マイクロ秒のパルスを送信
    GPIO.output(TRIG_PIN, True)
    time.sleep(0.00001)
    GPIO.output(TRIG_PIN, False)

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

    # エコーピンがHighになるまでの時間を計測
    while GPIO.input(ECHO_PIN) == 0:
        start_time = time.time()

    while GPIO.input(ECHO_PIN) == 1:
        stop_time = time.time()

    # 距離を計算(音速:34300 cm/s)
    elapsed_time = stop_time - start_time
    distance = (elapsed_time * 34300) / 2

    return distance

try:
    while True:
        dist = get_distance()
        print(f"Distance: {dist:.2f} cm")
        time.sleep(1)

except KeyboardInterrupt:
    GPIO.cleanup()

4. コードの実行と確認

Raspberry Piにコードを保存し、実行します。ターミナルに表示される距離は、HC-SR04が検知した物体までの距離です。物体を近づけたり遠ざけたりして、正確な測定が行われることを確認しましょう。

これで、Raspberry PiにHC-SR04を接続し、簡単な距離測定を行うための基本的な手順が完了しました。これをベースにして、様々なプロジェクトを構築することができます。