.. include:: /index.rst :start-after: start_hello_message :end-before: end_hello_message レッスン11:ローバーのカメラチルトを制御しよう =============================================================== マーズローバーに動くカメラを与えましょう!あなたが頭を上下に動かせるように、ローバーもカメラを傾けて火星の景色をさまざまな角度から探検できるようになります。 「サーボ」と呼ばれる特別なモーターを使用します。これは正確な位置に動くことができ、ローバーのカメラチルトを制御するのに最適です。火星の山々を見上げたり、面白い岩を見下ろしたりするようにサーボをプログラムする方法を学びましょう! .. raw:: html 学習目標 ------------------------- * サーボの仕組みを発見する * シンプルなコードブロックを使用してカメラの角度を制御する方法を学ぶ * タッチコントロールでカメラを傾けられるインタラクティブなプロジェクトを作成する サーボとは? ---------------------------------------- サーボをご紹介します。ロボットの動く筋肉です! あなたが腕を正確な位置に動かせるように、サーボモーターは特定の角度に動いてその位置をしっかりと保持できます。どこで止まるかを正確に知っているスマートモーターだと考えてください。 .. image:: img/servo.png :align: center **シンプルな接続:** - 茶色の線:グランド(-) - 赤色の線:電源(+) - オレンジ色の線:信号(サーボにどこへ動くかを指示) マーズローバーでは、サーボはうなずく頭のように機能し、カメラを上下に動かして完璧なビューを捉えます! サーボの仕組み ------------------------------------------- すべてのサーボの内部では、スマートなチームが連携して動作しています: .. image:: img/servo_internal.png :align: center 1. **通常のモーター** - ローバーの車輪のように高速で回転 2. **ギア** - 動きを遅くして力を強くする 3. **頭脳回路** - サーボが現在どの位置にあるかを正確に把握 4. **位置センサー** - サーボがどこを向いているかを報告 サーボは、「この正確な角度に動け」という特別な信号を使って制御します。友達にどれだけ頭を回すかを正確に伝えるようなものです。 サーボを動かす準備はできましたか?プログラミングを始めましょう! ローバーのチルトシステムを制御する -------------------------------------------- マーズローバーのチルトシステムを制御する方法を学びましょう。これはうなずく頭のようにカメラを上下に動かす部分です! **カメラ角度の設定** 1. まず、:ref:`app_connect` を行います。 2. 現在のサーボ角度を確認します。ステージに表示されます。 .. image:: img/10_servo_angle.png 3. ``サーボ角度を 90 度に設定`` ブロックをドラッグします。クリックするとローバーが正面を向きます。 .. image:: img/10_servo_set_angle.png 4. 値を45に変更してクリックします。ローバーが火星の空を見上げます! .. image:: img/10_servo_set_angle_45.png 5. さまざまな角度を試してみましょう!ローバーは0~135度の範囲で傾けられることがわかります。 **カメラコントロールの作成** 1. ローバーのカメラ用のコントロールパネルを作りましょう: 2. リセットボタンを作成します。「このスプライトがクリックされたとき」ブロックをドラッグします。 .. image:: img/10_servo_when_click.png 3. ``サーボ角度を 90 度に設定`` を追加して、カメラを再び正面に向けます。 .. image:: img/10_servo_when_90.png 4. 上下のコントロールを追加します。「上向き矢印キーが押されたとき」と「下向き矢印キーが押されたとき」ブロックをドラッグします。 .. image:: img/10_servo_when_up.png 5. 上矢印が角度を減らす(見上げる)ようにプログラムします。 .. image:: img/10_servo_when_up2.png 6. 下矢印が角度を増やす(見下ろす)ようにプログラムします。 .. image:: img/10_servo_when_down.png 全画面ボタンをクリックして、コントロールを開始しましょう!矢印キーを使ってローバーの視点を調整し、スプライトをクリックしてリセットします。あなたはカメラオペレーターです! .. _tilt_system: タッチコントロールでカメラ角度を調整 ------------------------------------------------------------- タッチコントロールのカメラを作りましょう!矢印をドラッグして、ローバーのカメラを好きな場所に向けます。 1. 既存のスプライトを削除してステージをクリアにします。 .. image:: img/6_animate_delete.png 2. タッチコントローラーとしてArrowスプライトを追加します。 .. image:: img/10_servo_arrow.png 3. 「このスプライトがクリックされたとき」から始めて、タッチコントロールを開始します。 .. image:: img/6_animate_when_touch.png :width: 200 4. 矢印に触れている間実行されるループを作成します。 .. image:: img/6_animate_repeat_touching.png :width: 400 5. ドラッグすると、矢印が指の方向を向くようにします。 .. image:: img/10_servo_arrow_point_toward.png :width: 400 6. 矢印の方向をカメラ角度にリンクします。矢印を回すと、カメラが動きます! .. image:: img/10_servo_arrow_angle_direction.png :width: 800 7. カメラを0~135度の範囲に保つための制限を設定します。 .. image:: img/10_servo_arrow_135.png :width: 400 .. image:: img/10_servo_arrow_0.png :width: 400 矢印に触れてドラッグし、ローバーのカメラを狙いましょう!矢印を滑らかに動かし、タッチに瞬時に反応させて、リアルなコントロール感を実現します。 サーボ制御ブロック ------------------------------- * サーボを特定の角度(0~135度)に設定 .. image:: img/block/servo_set_angle.png * サーボ角度を増減(減少させるには負の数を使用) .. image:: img/block/servo_increase_angle.png * 現在のサーボ角度を確認 .. image:: img/block/servo_value.png