.. note:: こんにちは、FacebookのSunFounder Raspberry Pi & Arduino & ESP32愛好者コミュニティへようこそ!Raspberry Pi、Arduino、ESP32について、他の愛好者と一緒にさらに深く学びましょう。 **なぜ参加するべきか?** - **専門家によるサポート**: 購入後の問題や技術的な課題をコミュニティやチームからの支援で解決できます。 - **学び・共有**: ヒントやチュートリアルを交換して、スキルを向上させましょう。 - **限定プレビュー**: 新製品の発表や先行公開情報にいち早くアクセスできます。 - **特別割引**: 最新製品の特別割引を楽しめます。 - **祝祭プロモーションやプレゼント**: プレゼントキャンペーンやシーズンプロモーションに参加できます。 👉 私たちと一緒に探求し、創造してみませんか?[|link_sf_facebook|]をクリックして、今すぐ参加してください! .. _py_pump: 3.6 水ポンプの制御 ============================= このレッスンでは、Raspberry Pi Pico 2とL293Dモータードライバを使用して、 **小型水ポンプ** を制御する方法を学びます。小型遠心ポンプは、自動植物水やりシステムやミニチュアの水景を作成するプロジェクトに利用できます。ポンプの制御は、DCモーターの制御と似ており、基本的な原理は同じです。 **必要なもの** このプロジェクトには、以下の部品が必要です。 全ての部品を揃えたキットを購入するのが便利です。こちらのリンクからご覧ください: .. list-table:: :widths: 20 20 20 :header-rows: 1 * - 名前 - このキットの部品 - リンク * - Newton Lab Kit - 450以上 - |link_newton_lab_kit| 部品は以下のリンクから個別に購入することもできます。 .. list-table:: :widths: 5 20 5 20 :header-rows: 1 * - 番号 - 部品 - 数量 - リンク * - 1 - :ref:`cpn_pico_2` - 1 - |link_pico2_buy| * - 2 - Micro USBケーブル - 1 - * - 3 - :ref:`cpn_breadboard` - 1 - |link_breadboard_buy| * - 4 - :ref:`cpn_wire` - 複数 - |link_wires_buy| * - 5 - :ref:`cpn_l293d` - 1 - * - 6 - :ref:`cpn_power_module` - 1 - * - 7 - 9Vバッテリー - 1 - * - 8 - :ref:`cpn_pump` - 1 - **始める前の重要な注意点** * **ポンプのセットアップ**: ポンプの出口にチューブを接続します。ポンプをオンにする前に、水に沈めてください。 * **空回しの防止**: ポンプが常に水中に沈んでいることを確認してください。乾回しすると過熱やモーターの損傷を引き起こす可能性があります。 * **詰まりの防止**: 植物に水やりを行う場合、水にゴミが含まれていないことを確認し、詰まりを防ぎます。 * **ポンプのプリマー**: 最初に水が出ない場合、チューブ内に空気が閉じ込められている可能性があります。空気泡を取り除くために、ポンプをプリムして水を流す必要があるかもしれません。 **回路図** |sch_pump| L293Dはモータードライバーチップで、ENは5Vに接続され、L293Dが動作するようにします。1Aと2AはそれぞれGP15とGP14に接続され、1Yと2Yはモーターの両端に接続されます。 Y(出力)はA(入力)と位相が一致しており、GP15とGP14に異なるレベルを与えることでモーターの回転方向を変更できます。 **配線図** |wiring_pump| この回路では、ボタンがRUNピンに接続されています。これは、モーターが過剰な電流で動作しているため、Picoがコンピューターから切断される可能性があり、ボタンを押す必要があります(Picoの **RUN** ピンが低レベルを受け取るためにリセットされます)。 **コードの作成** ポンプを起動するシンプルなMicroPythonプログラムを作成します。コードを実行すると、ポンプは継続的に動作します。 .. note:: * ``3.6_pumping.py``ファイルを ``newton-lab-kit/micropython`` から開くか、以下のコードをThonnyにコピーし、「実行」をクリックするか、 **F5** キーを押して実行します。 * 正しいインタプリタが選択されていることを確認します:MicroPython (Raspberry Pi Pico).COMxx。 .. code-block:: python import machine import utime # L293Dに接続されている制御ピンを定義 pump_in1 = machine.Pin(14, machine.Pin.OUT) pump_in2 = machine.Pin(15, machine.Pin.OUT) # IN1を高、IN2を低に設定してポンプを起動 pump_in1.high() pump_in2.low() # ポンプを無限に動作させ続ける while True: utime.sleep(1) コードが実行されると、ポンプが動作を開始し、水がチューブを通って流れ始めます。 **コードの理解** #. モジュールのインポート: * ``machine``: ハードウェア関連の関数にアクセスします。 * ``utime``: 遅延のための時間関連の関数を提供します。 #. 制御ピンの初期化: ``pump_in1`` と ``pump_in2`` はL293Dを介してポンプを制御します。 .. code-block:: python pump_in1 = machine.Pin(14, machine.Pin.OUT) pump_in2 = machine.Pin(15, machine.Pin.OUT) #. ポンプの起動: IN1に高信号、IN2に低信号を与えて、ポンプを一方向に回転させます。 .. code-block:: python pump_in1.high() pump_in2.low() #. ポンプの動作を維持: 無限ループでプログラムが継続的に動作します。 .. code-block:: python while True: utime.sleep(1) **トラブルシューティングのヒント** * ポンプが起動しない: * すべての配線接続を確認します。 * 電源モジュールが5Vに設定され、オンになっていることを確認します。 * ポンプが水中に沈んでいることを確認します。 * Picoが応答しなくなる: * Picoが切断されたり、プログラムが停止した場合は、リセットが必要です。 * RESET接続を使用し、RUNピンをGNDに一時的に接続します。 * スクリプト停止後もポンプが動作し続ける: * GPIOピンの最後の状態は、スクリプトを停止した後も変更されません。 * Picoをリセットしてポンプを停止します。RUNピンをGNDに接続してリセットします。 |wiring_run_reset| **安全に関する注意** * 電気安全: * 水と電子機器を扱う際は十分に注意してください。 * Picoや他の電子部品を水から遠ざけ、損傷や怪我を防いでください。 * ポンプの取り扱い: * ポンプを乾回ししないようにしましょう。 * 水に粒子が含まれている場合は、ポンプを定期的に掃除してください。 **結論** このレッスンでは、Raspberry Pi Pico 2とL293Dモータードライバを使用して、小型水ポンプを制御する方法を学びました。このセットアップは、自動植物水やりシステムやミニチュア噴水などのプロジェクトの基盤となることができます。