.. include:: /index.rst :start-after: start_hello_message :end-before: end_hello_message レッスン4:超音波モジュール ============================= GalaxyRVRに音で「見る」力を与えましょう! 超音波センサーがコウモリの反響定位のようにどのように動作するかを発見しましょう。音波を送信し、エコーを聞いて障害物を検出し、距離を測定します。 マーズローバーをよりスマートで安全な探査機にしましょう! .. raw:: html 学習目標 ------------------- * 超音波センサーが音波を使用して距離を測定する仕組みを発見する * Mammoth Codingアプリを使用して距離測定値を読み取る方法を学ぶ * 超音波センサーを使用してGalaxyRVRが障害物を回避するようにプログラムする 超音波モジュールを探る -------------------------------------------- HC-SR04超音波センサーをご紹介します。これはローバーの新しい「スーパーパワー」で、触れずに距離を測定できます!コウモリが音を使って移動するのと同じように、この賢いデバイスは2cmから400cmまでの物体を検出できます。 .. image:: img/ultrasonic_pic.png :width: 400 :align: center **4つの重要なピン:** * **TRIG** - センサーに音波を送信するよう指示する「スタートボタン」 * **ECHO** - 物体からの反射エコーを聞く * **VCC** - 電源接続(5Vの電力が必要) * **GND** - グランド接続(回路を完成させる) **仕組み - エコーゲーム:** .. image:: img/ultrasonic_prin.jpg :width: 800 1. **開始** - センサーが8回の素早い音波を送信します(私たちには聞こえない高周波です!) 2. **聴取** - 計時を開始し、エコーが跳ね返ってくるのを待ちます 3. **計算** - エコー時間を使用して計算:距離 =(時間 × 音速)÷ 2 これは、峡谷で叫び、エコーが聞こえるまでの時間を計るようなものです。待ち時間が長いほど、壁が遠いことを意味します! それでは、マーズローバーにこの素晴らしいスーパーパワーを与えましょう! 超音波センサーをテストする ---------------------------------------------------------- #. まず、:ref:`app_connect` を行います。 2. GalaxyRVRカテゴリの「距離(cm)」ブロックを見つけ、そのチェックボックスをオンにします。 .. image:: img/6_ultrasonic_value.png 3. センサーの読み取り値がステージにリアルタイムで表示されます。 .. image:: img/6_ultrasonic_value2.png 4. 超音波センサーの前で手を振ると、数値が変化します。距離をセンチメートルで測定しています! 障害物回避ローバーの作成 -------------------------------------------------------------------- 超音波センサーを使用して、GalaxyRVRが自動的に障害物を回避するようにプログラムしましょう。 1. 緑色の旗ブロックから始めます。 .. image:: img/6_ultrasonic_flag.png 2. テスト用に快適な速度(30%を推奨)を設定します。 .. image:: img/6_ultrasonic_speed.png 3. 「前進」ブロックを追加して、経路が確保されているときにローバーが前進し続けるようにします。 .. image:: img/6_ultrasonic_forward.png 4. ``距離 < 15 cm のとき`` ブロックを使用して、近くの障害物を検出します。 .. image:: img/6_ultrasonic_when.png 5. 何かが近づきすぎたら、ローバーを停止させて後退させます。 .. image:: img/6_ultrasonic_backward.png 6. 次に、少し旋回させます(左または右、お好みで!)。 .. image:: img/6_ultrasonic_turn.png 7. 最後に、新しい経路で再び前進するように指示します。 .. image:: img/6_ultrasonic_forward_again.png 床にGalaxyRVRを置いて、動作を確認しましょう!障害物を検出するまで前進し、スマートに方向を変えて探検を続けます。 超音波センサーブロック ------------------------------------------------- * **イベントトリガーブロック** 設定した距離内で物体が検出されたときにコードを開始します。 - 比較記号(< または >)を変更 - 距離しきい値(cm)を調整 .. image:: img/block/ultra_when.png * **待機ブロック** センサーが指定した距離で物体を検出するまでプログラムを一時停止します。 - 距離比較に < または > を選択 - 希望する距離値を設定 .. image:: img/block/ultra_wait_until.png * **条件チェックブロック** 距離検出に基づいてTRUEまたはFALSEを返します。 ``if`` 文での使用に最適です。 - 必要に応じて < と > を切り替え - 距離制限を設定 .. image:: img/block/ultra_condition.png * **距離値ブロック** 超音波センサーからの現在の距離読み取り値をセンチメートルで表示します。 .. image:: img/block/ultra_value.png