.. include:: /index.rst :start-after: start_hello_message :end-before: end_hello_message レッスン 8: 高度な障害物回避とインテリジェント追従システム ======================================================================= 今日のレッスンでは、STEAMスキルをさらに一歩進めていきます。障害物回避モジュールと超音波センサーを組み合わせて、高度な障害物回避システムを作成します。また、ローバーにインテリジェント追従システムも実装します。 このレッスンの終わりまでに、マーズローバーは進路の障害物を避けるだけでなく、動く物体を追従できるようになります。まるでミニロボットペットがあなたの後をついてくる様子を想像してみてください。わくわくしませんか?それでは始めましょう。 .. raw:: html .. note:: GalaxyRVRを完全に組み立てた後にこのコースを学習する場合、コードをアップロードする前にこのスイッチを右側に移動する必要があります。 .. image:: ../img/camera_upload.png :width: 500 :align: center コースの目標 -------------------------- * 障害物回避モジュールと超音波モジュールを組み合わせて、ナビゲーションを改善する方法を学びます。 * 高度な障害物回避システムの背後にある原理と機能を理解します。 * マーズローバーにインテリジェント追従システムを実装する方法を学びます。 コースの材料 ------------------------ * マーズローバーモデル(前のレッスンで組み立てたもの) * USBケーブル * Arduino IDE * コンピューター * そしてもちろん、あなたの創造力です! コースの手順 -------------------- **ステップ 1: 概念を理解する** 障害物回避モジュールは、その名前が示すように、ローバーが障害物を回避するのを助けます。赤外線信号を送信し、物体から反射して戻ってくる信号を受信することで障害物を検出します。モジュールの前に障害物がある場合、赤外線信号が反射して戻り、モジュールがそれを検出します。 ここに超音波センサーを追加することで、このシステムが向上します。超音波センサーは、特定の周波数の音波を送信し、その音波が跳ね返ってくるのを待つことで距離を測定します。音波が発生してから跳ね返ってくるまでの経過時間を記録することで、センサーと物体の間の距離を計算できます。 これら2つを組み合わせることで、信頼性が高く、効率的で、多用途な障害物回避システムが実現します! **ステップ 2: 高度な障害物回避システムの構築** 前のレッスンでは、赤外線センサーを使った障害物回避の基本を学びました。また、超音波モジュールの仕組みについても探求しました。今度は、これらすべてのピースを組み合わせて、高度な障害物回避システムを構築します! 強化されたマーズローバーは、超音波センサーと赤外線センサーの両方を使用して周囲をナビゲートします。 赤外線モジュールと超音波モジュールがどのように連携すべきかを考えてみましょう。論理を明確にするために、フローチャートを使用しましょう。フローチャートの作成方法を学ぶことは、考えを整理し、計画を体系的に概説するのに役立つため、コーディングの旅において非常に貴重なステップです。 .. image:: img/ultrasonic_ir_avoid_flowchart.png :width: 800 それでは、このフローチャートを実際のコードに変換して、ローバーに命を吹き込みましょう。 .. raw:: html ``handleForwardMovement()`` 関数は、超音波センサーの動作を統合した場所です。センサーから距離データを読み取り、そのデータに基づいてローバーの動きを決定します。 コードをR3ボードにアップロードしたら、システムをテストします。ローバーが障害物を効率的に検出して回避できることを確認してください。実際の環境に基づいてコード内の検出距離を調整し、システムを最適化する必要があるかもしれません。 **ステップ 3: インテリジェント追従システムのコーディング** ローバーが障害物を回避できるようになったところで、物体を追従できるようにさらに機能を強化しましょう。目標は、既存のコードを変更して、ローバーが動く物体に向かって移動できるようにすることです。 追従システムと障害物回避システムの違いについて考えたことはありますか? 重要な点は、追従システムでは検出された物体に応じてローバーが移動するのに対し、障害物回避システムでは検出された物体を避けるようにすることです。 目的の動作を視覚化してみましょう: .. image:: img/ultrasonic_ir_follow_flowchart.png * 超音波センサーが5〜30 cm以内の物体を検出した場合、ローバーはその物体に向かって移動します。 * 左のIRセンサーが物体を検出した場合、ローバーは左折します。 * 右のIRセンサーが物体を検出した場合、ローバーは右折します。 * それ以外の場合は、ローバーは停止したままです。 それでは、コードを完成させましょう。 .. raw:: html コードが完成したら、ローバーがあなたの動きに追従するかテストしてください。 障害物回避システムと同様に、追従システムをテストし、発生する可能性のある問題をトラブルシューティングすることが重要です。準備はできましたか? **ステップ 4: まとめと振り返り** 今日、あなたは素晴らしいことを成し遂げました。異なるモジュールと概念を組み合わせて、マーズローバー用の高度な障害物回避および追従システムを作成しました。学習はここで終わりではありません。探求し、革新し、新たに習得したスキルを他のプロジェクトにも応用し続けてください。 学習プロセスを常に振り返ることを忘れないでください。以下の点について考えてみましょう: * 障害物回避システムでは障害物回避モジュールを超音波センサーより優先し、追従システムではその逆にしたのはなぜだと思いますか? * コード内でこれらのモジュールをチェックする順序を入れ替えた場合、結果はどのように異なるでしょうか? 課題や問題はSTEAM学習プロセスの不可欠な部分であり、改善のための貴重な機会を提供します。トラブルシューティングから逃げないでください。それ自体が強力な学習ツールです! 旅を続ける中で、克服する障害のすべてがSTEAMスキルの習得に一歩近づくことを覚えておいてください。頑張り続けて、旅を楽しんでください!