注釈

こんにちは、SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Communityへようこそ!Facebook上で、仲間と一緒にRaspberry Pi、Arduino、ESP32をさらに深く探求しましょう。

なぜ参加するのか?

  • 専門的なサポート:購入後の問題や技術的な課題をコミュニティやチームの助けを借りて解決。

  • 学びと共有:スキルを向上させるためのヒントやチュートリアルを交換。

  • 限定プレビュー:新製品発表や予告編に早期アクセス。

  • 特別割引:最新製品の特別割引を楽しむ。

  • フェスティブプロモーションとプレゼント:プレゼントやホリデープロモーションに参加。

👉 私たちと一緒に探索と創造を始める準備はできましたか?[ここ]をクリックして、今すぐ参加しましょう!

レッスン24: 振動センサーモジュール (SW-420)

このレッスンでは、SW-420振動センサーモジュールをRaspberry Pi Pico Wに接続して使用する方法を学びます。このコースでは、GPIO 16に振動センサーを設定し、振動を監視するMicroPythonスクリプトの作成方法を案内します。センサーの出力を継続的にチェックし、振動が検出されたときにメッセージを表示するループを作成します。この実践的な演習により、Raspberry Pi Pico Wでの外部センサーの使用に慣れ、ハードウェアインターフェースとMicroPythonでのプログラミングに対する理解が深まります。

必要なコンポーネント

このプロジェクトでは、以下のコンポーネントが必要です。

以下のリンクからキット全体を購入することができます:

Name

ITEMS IN THIS KIT

LINK

Universal Maker Sensor Kit

94

Universal Maker Sensor Kit

また、以下のリンクから個別に購入することも可能です。

Component Introduction

Purchase Link

Raspberry Pi Pico W

-

振動センサーモジュール (SW-420)

購入

ブレッドボード

購入

配線

../_images/Lesson_24_vibration_module_bb.png

コード

from machine import Pin
import time

# Initialize GPIO 16 as an input pin for the vibration sensor
vibration_sensor = Pin(16, Pin.IN)

# Continuously check the vibration sensor's state
while True:
    # If the sensor detects vibration (value is 1), print a message
    if vibration_sensor.value() == 1:
        print("Vibration detected!")
    # If no vibration is detected, print ellipses
    else:
        print("...")

    # Pause for 0.1 seconds to lower the demand on the CPU
    time.sleep(0.1)

コード解析

  1. 必要なライブラリのインポート

    from machine import Pin
    import time
    

    これは、ハードウェア関連の操作に使用する machine モジュールと、時間関連のタスクを処理するための time モジュールをインポートします。

  2. 振動センサーの初期化

    # Initialize GPIO 16 as an input pin for the vibration sensor
    vibration_sensor = Pin(16, Pin.IN)
    

    ここでは、GPIO 16を入力ピンとして設定します。 machine モジュールの Pin クラスを使用してGPIOピンと対話します。 Pin.IN は、ピンを入力として設定します。

  3. センサーの継続的な監視

    # Continuously check the vibration sensor's state
    while True:
    

    while True ループを使用して、センサーの状態を継続的にチェックする無限ループを作成します。

  4. センサーの状態をチェックして応答する

    # If the sensor detects vibration (value is 1), print a message
    if vibration_sensor.value() == 1:
        print("Vibration detected!")
    # If no vibration is detected, print ellipses
    else:
        print("...")
    

    ループ内で、 vibration_sensor.value() がセンサーの現在の状態をチェックします。 1 を返す場合、振動が検出されたことを示し、メッセージが表示されます。そうでない場合、省略記号が表示されます。

  5. CPU使用率の管理

    # Pause for 0.1 seconds to lower the demand on the CPU
    time.sleep(0.1)
    

    time.sleep(0.1) は、ループを0.1秒間一時停止させます。これは、スクリプトがCPU時間を過剰に消費するのを防ぐために重要です。