【ラズベリーパイ3】Pythonで超音波距離センサ(HC-SR04)の制御

この記事では、ラズベリーパイ3とPython、超音波距離センサ(HC-SR04)で対象物までの距離を測定する方法をソースコード付きで解説します。

超音波距離センサ(HC-SR04)

超音波距離センサ(HC-SR04)は、超音波を用いた距離センサーです。
このセンサーは、2~450cmまでの範囲内にある対象物までの距離を測定できます。
アマゾンで200円で入手できました。
出力した超音波が対象物に跳ね返って戻ってくるまでの時間と音速(超音波の速度)から距離を求めます。

【計算式】
(対象物までの距離)=(音速)×(出力してから戻ってくるまでの時間÷2)

今回は、これをラズベリーパイ3で使ってみました。

回路構成


赤:5V、黒:GND、黄:GPIO14、緑:GPIO15

【使用機器】
ラズベリーパイ3 ×1
超音波距離センサ(HC-SR04)×1
ブレッドボード ×1
・ジャンパーワイヤ 数本

※使用した>超音波距離センサ(HC-SR04)

仕様 内容
電源電圧 5V
待機電流 2mA未満
信号出力 0-5V
センサ角度 15度以下
測定可能距離 2cm-450cm
分解能 0.3cm

超音波センサの4本の端子の構成は以下の通りです。
(本体にもラベルが刻まれています)

ラベル 内容
Vcc 電源入力(5V)
Trig 超音波信号を送信
Echo 超音波信号を受信
GND グランド

ソースコード

サンプルプログラムのソースコードです。

①出力ピン(GPIO)で超音波を出力
(トリガ端子を10μs以上Highにすると40kHzのパルスを8回送信)
②入力ピン(GPIO)で超音波を受信
(エコー端子がHIGHになってからLOWに変化するまでの時間=超音波が送信されてから受信するまでの時間[s]を計測)
③ 以下の式で時間から距離を求めます。

距離[cm] = (0.034) × (②で求めた時間[s]÷2)
音速=340[m/s] = 34000[cm/s]

実行結果

サンプルプログラムの実行結果です。

19.2134566134 cm
19.1412345674 cm
18.7612345667 cm
18.7345677832 cm

今回は音速を34000[cm/s]に固定して計算しています。
音速は気温などにも影響されるので、計測精度を上げるにはこれらの影響を考慮する必要があります。
気温を考慮した場合については下記事で解説しています。
【Arduino】超音波距離センサ(HC-SR04)の測定精度を向上(気温考慮)

【関連記事】
ラズベリーパイ3で電子工作入門
Python入門 サンプル集

シェア&フォローお願いします!