.. note::
こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。
**参加する理由は?**
- **エキスパートサポート**:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。
- **学び&共有**:ヒントやチュートリアルを交換してスキルを向上させましょう。
- **独占的なプレビュー**:新製品の発表や先行プレビューに早期アクセスしましょう。
- **特別割引**:最新製品の独占割引をお楽しみください。
- **祭りのプロモーションとギフト**:ギフトや祝日のプロモーションに参加しましょう。
👉 私たちと一緒に探索し、創造する準備はできていますか?[|link_sf_facebook|]をクリックして今すぐ参加しましょう!
レッスン8:高度な障害物回避とインテリジェントフォローシステム
=======================================================================
今日のレッスンでは、STEAMスキルをさらに一歩進めます。障害物回避モジュールと超音波センサーを組み合わせて、高度な障害物回避システムを作成します。また、ローバーにインテリジェントフォローシステムを実装します。
このレッスンの終わりには、火星ローバーは道にある障害物を回避するだけでなく、動く物体を追跡することもできるようになります。自分の周りを追いかけるミニロボットペットを想像してみてください!ワクワクしますね?さあ、始めましょう。
.. raw:: html
.. note::
GalaxyRVRを完全に組み立てた後にこのコースを学習する場合、コードをアップロードする前にこのスイッチを右に移動させる必要があります。
.. image:: img/camera_upload.png
:width: 500
:align: center
学習目標
--------------------------
* 障害物回避モジュールと超音波モジュールを組み合わせて、ナビゲーションを向上させる方法を学ぶ。
* 高度な障害物回避システムの原理と機能を理解する。
* 火星ローバーにインテリジェントフォローシステムを実装する方法を学ぶ。
材料
------------------------
* 前のレッスンで組み立てた火星ローバーモデル
* USBケーブル
* Arduino IDE
* コンピューター
* そしてもちろん、あなたの創造的な心!
手順
--------------------
**ステップ1:コンセプトの理解**
障害物回避モジュールは、名前が示す通り、ローバーが障害物を回避するのを助けます。
赤外線信号を発信し、そのオブジェクトから反射された信号を受信することで障害物を検出します。
モジュールの前に障害物がある場合、赤外線信号は反射され、モジュールによって検出されます。
ここに超音波センサーを加えることで、このシステムが改善されます。超音波センサーは、特定の周波数で音波を発信し、その音波が反射されるのを聞くことで距離を測定します。
音波が生成されてから反射されるまでの経過時間を記録することで、センサーとオブジェクトとの距離を計算することができます。
これら二つを組み合わせることで、信頼性が高く、効率的で、多用途な障害物回避システムが得られます!
**ステップ2:高度な障害物回避システムの構築**
これまでのレッスンで、赤外線センサーを使った障害物回避の基礎を学びました。また、超音波モジュールの仕組みについても探究しました。今回は、これらすべてをまとめて、高度な障害物回避システムを構築します!
強化された火星ローバーは、超音波センサーと赤外線センサーの両方を使用して周囲をナビゲートすることになります。
赤外線と超音波モジュールがどのように協力するかを考えてみましょう。私たちのロジックを明確にするために、フローチャートを使います。フローチャートの作成方法を学ぶことは、コーディングの旅において貴重なステップです。それにより、考えを整理し、計画を体系的に概要化するのに役立ちます。
.. image:: img/ultrasonic_ir_avoid_flowchart.png
:width: 800
さて、このフローチャートを実際のコードに変換して、ローバーを動かしましょう。
.. raw:: html
``handleForwardMovement()`` 関数では、超音波センサーの動作が統合されています。センサーから距離データを読み取り、このデータに基づいてローバーの動きを決定します。
R3ボードにコードをアップロードした後、システムをテストする時が来ました。
ローバーが障害物を効率的に検出し、回避できるか確認してください。
システムを完璧にするために、実際の環境に基づいてコード内の検出距離を調整する必要があるかもしれません。
**ステップ3:インテリジェントフォローシステムのコーディング**
障害物を回避できるようになったローバーをさらに強化し、物体を追跡するようにしましょう。目標は、ローバーが動く物体に向かって動くように既存のコードを変更することです。
フォローシステムと障害物回避システムの違いについて考えたことはありますか?
ここでのポイントは、フォローシステムでは検出された物体に反応してローバーが動くことを望むのに対し、障害物回避システムでは検出された物体から離れることを目指していることです。
望ましいワークフローを視覚化しましょう:
.. image:: img/ultrasonic_ir_follow_flowchart.png
* 超音波センサーが5〜30cm以内の物体を検出した場合、ローバーはそれに向かって動くべきです。
* 左側のIRセンサーが物体を検出した場合、ローバーは左折すべきです。
* 右側のIRセンサーが物体を検出した場合、ローバーは右折すべきです。
* それ以外の場合は、ローバーは停止すべきです。
では、コードを完成させましょう。
.. raw:: html
コードが完成したら、ローバーがあなたの動きに従うかテストしてみてください。
障害物回避システムと同様に、フォローシステムをテストし、問題が発生した場合はトラブルシューティングを行うことが重要です。準備はいいですか?
**ステップ4:まとめと反省**
今日は素晴らしいことを成し遂げました。異なるモジュールとコンセプトを組み合わせて、火星ローバー用の高度な障害物回避とフォローシステムを作成しました。学びはここで終わりではないことを覚えておいてください。探求を続け、革新を行い、新たに習得したスキルを他のプロジェクトに応用してください。
常に学習プロセスについて反省することを忘れずに。以下の点について考えてみてください:
* 障害物回避システムで障害物回避モジュールを超音波センサーよりも優先した理由、そしてフォローシステムではその逆をした理由は何だと思いますか?
* これらのモジュールをコード内でチェックする順序を入れ替えた場合、結果はどのように異なると思いますか?
課題と問題はSTEAM学習プロセスの不可欠な部分であり、改善のための貴重な機会を提供します。トラブルシューティングを避けないでください。それ自体が強力な学習ツールです!
あなたの旅を続ける中で、乗り越える障害ごとにSTEAMスキルを習得する一歩に近づいていることを知ってください。続けて、旅を楽しんでください!