【Raspberry Pi】超音波センサーで距離測定+LCDディスプレイ

【ラズパイ】超音波センサーの結果をLCDで表示

こんにちは! けい(Twitter)です。

今回は、前回の記事の超音波センサーで距離を測るの発展で、結果をLCDディスプレイに表示させる方法についてまとめていきたいと思います。

必要なもの

ラズパイ本体

超音波センサー

ELEGOO Arduino用 HC-SR04超音波距離センサー5PCS
ELEGOO

LCDディスプレイ

I2C接続ができるタイプのものが配線が少なくおすすめです。

下準備

I2C接続をオンにする

ラズパイとLCDディスプレイを接続する時に、I2C接続という通信方式を使います。

それを使うためには、ラズパイの設定でi2Cをオンにする必要がありますので、前回のLCDディスプレイの記事を参考にしてやってみて下さい。

LCDのサンプルプログラムのダウンロード

ラズパイでLCDディスプレイを使うためのpythonプログラムをダウンロードする必要があります。

公開されているプログラムなので、wgetコマンドで取得できます。

これも前回の記事にまとめていますので、それを参考に行ってください。

超音波センサーのプログラム作成

前回作った超音波センサーのプログラムを関数として使うので、こちらも予め用意してください。

フィルターを利用したプログラムの方が精度が高いのでそちらを「ultrasonic_pigpio_filter.py」という名前で保存してください。

回路図

LCDディスプレイとの接続

超音波センサーとの接続

5VとGNDは共通なので、ブレッドボードの+と-で接続してください。

プログラム

メインプログラム

こちらがメインとして使うプログラムです。「ultrasonic_lcd.py」という名前で保存します。

from ultrasonic_pigpio_filter import *
import i2clcda as lcd

if __name__ == '__main__':
    try:
        lcd.lcd_init()
        while True:
            dist = distance_filtered()
            lcd.lcd_string("Distance", lcd.LCD_LINE_1)
            lcd.lcd_string("%.1f cm" % dist, lcd.LCD_LINE_2)
            time.sleep(0.2)
 
        # Reset by pressing CTRL + C
    except KeyboardInterrupt:
        print("Measurement stopped by User")
        pi.stop()

ディレクトリ構造

今回のプログラムは「ultrasonic_lcd.py」というプログラムがメインで、他の2つはモジュールとしてインポートするので、同じディレクトリ内に保存してください。

  pi-|
     |--ultrasonic_lcd.py
     |--ultrasonic_pigpio_filter.py
     |--i2clcda.py

実際にプログラムを動作させてみよう

回路図と、3つのプログラムの用意が出来たら、実際に動かしてみましょう。

pigpioライブラリを使うので、ターミナルで次のコマンドを実行します。

$ sudo pigpiod

次に、3つのプログラムを保存したディレクトリに移動して、次のコマンドを実行します。

$ python3 ultrasonic_lcd.py

LCDディスプレイにこのように結果が表示されます。

まとめ

今回は、超音波センサーで取得した距離をLCDディスプレイにリアルタイムで表示する方法についてまとめてみました。

LCDはこれに限らず、様々なセンサーと組み合わせて使うことができるので、今回使ったプログラムを新しいセンサーと組み合わせることも可能です。

では!