Chapter 12

↗SW-520センサーを使って傾きを検出する - ⭐

kotaproj
kotaproj
2022.05.21に更新

💡やること

SW-520センサーを使って傾き状態を検出します。

🏁デモ

🔧パーツ一覧

no 部品名 個数 備考
1 ラズベリーパイ 1 今回は4Bで確認
2 SW-520D 角度センサボードチルトセンサモジュール 1 Amazon
3 ジャンパー線 適量 -
4 ブレッドボード 1 -

接続図

💻環境

開発環境

  • ラズベリーパイ
    • Linux raspberrypi 5.15.32-v8+ #1538 SMP PREEMPT Thu Mar 31 19:40:39 BST 2022 aarch64 GNU/Linux
  • Python
    • Python 3.9.2 (default, Feb 28 2021, 17:03:44)

ラズベリーパイの設定

特になし

モジュールのインストール

apt

pigpioライブラリは、Raspberry PiのGPIOを制御するためのライブラリです。
以下のコマンドは、はじめてインストールする場合のみ必要です。

$ sudo apt install pigpio
$ sudo service pigpiod start
$ sudo systemctl enable pigpiod.service

pip

Pythonに関するモジュールをインストールします。

$ python3 -m venv env
$ source env/bin/activate
(env) $ pip install pigpio
(env) $ pip install gpiozero

📝手順

センサーを傾けると、"傾いています!"と表示します。
センサーを戻すと、"傾いていません。"と表示します。

コード

sample_sw520.py
from gpiozero import Button
from gpiozero.pins.pigpio import PiGPIOFactory
from signal import pause

# ピン設定
PIN_SNSR = 21

def main():
    factory = PiGPIOFactory()
    snsr = Button(PIN_SNSR, bounce_time=0.01, pin_factory=factory)

    def press_btn():
        print("傾いています!")

    def release_btn():
        print("傾いていません。")

    snsr.when_pressed = press_btn
    snsr.when_released = release_btn

    pause()

    return

if __name__ == "__main__":
    main()

実行手順

(env) $ python sample_sw520.py
# センサーを傾ける
傾いています!
# センサーを戻す
傾いていません。

🔎ポイント

SW-520センサー

本センサーは、傾斜を検出できます。
機構は、傾斜スイッチの部分となります↓。

傾斜スイッチが直立すると、電極と金属ボール接触して、回路が接続します。
傾斜スイッチが傾くと、電極と金属ボールが切断すると、回路も切断されます。
回路の状態をD0ピンを検出することで、傾きの状態を判定します。