.. note:: こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。 **参加する理由は?** - **エキスパートサポート**:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。 - **学び&共有**:ヒントやチュートリアルを交換してスキルを向上させましょう。 - **独占的なプレビュー**:新製品の発表や先行プレビューに早期アクセスしましょう。 - **特別割引**:最新製品の独占割引をお楽しみください。 - **祭りのプロモーションとギフト**:ギフトや祝日のプロモーションに参加しましょう。 👉 私たちと一緒に探索し、創造する準備はできていますか?[|link_sf_facebook|]をクリックして今すぐ参加しましょう! .. _sh_avoid1: 3.5 障害物回避 ================================== 車の前部には2つの赤外線障害物回避モジュールが取り付けられており、近くの障害物を検出するのに使用できます。 このプロジェクトでは、車は自由に前進し、障害物に遭遇するとそれを避けて他の方向に移動することができます。 必要な部品 --------------------- このプロジェクトには、以下の部品が必要です。 全体のキットを購入することは非常に便利です。以下がリンクです: .. list-table:: :widths: 20 20 20 :header-rows: 1 * - 名前 - このキットのアイテム - リンク * - 3 in 1 Starter Kit - 380+ - |link_3IN1_kit| 以下のリンクから個別に購入することもできます。 .. list-table:: :widths: 30 20 :header-rows: 1 * - コンポーネントの紹介 - 購入リンク * - :ref:`cpn_uno` - |link_Uno_R3_buy| * - :ref:`cpn_l9110` - \- * - :ref:`cpn_tt_motor` - \- * - :ref:`cpn_avoid` - |link_obstacle_avoidance_buy| 回路の作成 ----------------------- 障害物回避モジュールは、距離調整可能な赤外線近接センサーで、通常は出力が高く、障害物を検出すると低くなります。 以下の図に従って回路を組み立ててください。 .. list-table:: * - Left IR Module - R3 Board * - OUT - 8 * - GND - GND * - VCC - 5V .. list-table:: * - Right IR Module - R3 Board * - OUT - 7 * - GND - GND * - VCC - 5V .. image:: img/car_5.png :width: 800 モジュールの調整 ----------------------- プロジェクトを開始する前に、モジュールの検出距離を調整する必要があります。 上記の図に従って配線し、R3ボードに電源を供給します(USBケーブルを直接挿入するか、9Vのバッテリーケーブルを取り付ける)。コードをアップロードせずに電源を入れます。 赤外線障害物回避の前に約5cmのノートや他の平らな物を置きます。 その後、モジュール上のポテンショメータを回して、モジュール上の信号インジケータがちょうど点灯するように、最大検出距離5cmに調整します。 もう一つの赤外線モジュールも同じ方法で調整します。 .. image:: img/ir_obs_cali.jpg プログラミング --------------- 達成したい効果: * 左のIRモジュールが障害物を検出すると、車は左に後退します。 * 右のIRモジュールが障害物を検出すると、車は右に後退します。 * 両方のIRモジュールが障害物を検出すると、車は直接後退します。 * それ以外の場合、車は前進します。 対応するブロックを作成してください。 **1. 車が左に後退する** 右のモータが反時計回りに回転し、左のモータが回転しない場合、車は左に後退します。 .. image:: img/5_avoid1.png **2. 車が右に後退する** 左のモータが時計回りに回転し、右のモータが回転しない場合、車は右に後退します。 .. image:: img/5_avoid2.png **3. 車は前進、後退し、停止します** .. image:: img/5_avoid3.png **4. 2つのIRモジュールの値を読み取る** **Variables** パレットで **Make a variable** をクリックします。 .. image:: img/5_avoid4.png 変数名を入力し、 **OK** をクリックして新しい変数を作成します。 .. image:: img/5_avoid5.png 左および右のIR障害物回避モジュールの値を読み取り、2つの新しい変数に保存します。 .. image:: img/5_avoid6.png **5. 障害物を避ける** * 左のIRモジュールが0(障害物検出)で、右のIRモジュールが1の場合、車は左にバックアップします。 * 右のIRモジュールが0(障害物検出)の場合、車は右にバックアップします。 * 2つのIRモジュールが同時に障害物を検出すると、車は後退します。 * それ以外の場合、車は前進を続けます。 .. image:: img/5_avoid7.png