💡やること
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ピンを検出することで、傾きの状態を判定します。