.. note:: こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。 **参加する理由は?** - **エキスパートサポート**:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。 - **学び&共有**:ヒントやチュートリアルを交換してスキルを向上させましょう。 - **独占的なプレビュー**:新製品の発表や先行プレビューに早期アクセスしましょう。 - **特別割引**:最新製品の独占割引をお楽しみください。 - **祭りのプロモーションとギフト**:ギフトや祝日のプロモーションに参加しましょう。 👉 私たちと一緒に探索し、創造する準備はできていますか?[|link_sf_facebook|]をクリックして今すぐ参加しましょう! .. _sh_parrot: 2.15 GAME - フラッピーパロット ============================== ここでは超音波モジュールを使ってフラッピーパロットゲームを楽しんでいます。 スクリプト実行後、緑の竹がゆっくりとランダムな高さで右から左へ移動します。超音波モジュールの上に手を置き、手と超音波モジュールとの距離が10未満の場合、パロットは上昇し、それ以外の場合は下降します。 手と超音波モジュールとの距離をコントロールして、パロットが緑の竹(パドル)を避けられるようにしてください。もし触れたら、ゲームオーバーです。 .. image:: img/15_parrot.png 必要な部品 --------------------- このプロジェクトには以下のコンポーネントが必要です。 全キットを購入するのが確かに便利です。こちらがリンクです: .. list-table:: :widths: 20 20 20 :header-rows: 1 * - 名前 - このキットのアイテム - リンク * - ESP32 Starter Kit - 320+ - |link_esp32_starter_kit| また、以下のリンクから個別に購入することもできます。 .. list-table:: :widths: 30 20 :header-rows: 1 * - コンポーネントの紹介 - 購入リンク * - :ref:`cpn_esp32_wroom_32e` - |link_esp32_wroom_32e_buy| * - :ref:`cpn_esp32_camera_extension` - |link_esp32_extension_board| * - :ref:`cpn_wires` - |link_wires_buy| * - :ref:`cpn_ultrasonic` - |link_ultrasonic_buy| 回路の構築 ----------------------- 超音波センサーモジュールは、超音波を使って対象物までの距離を測定する機器です。 2つのプローブがあります。一つは超音波を送信し、もう一つは受信して送受信時間を距離に変換し、装置と障害物との距離を検出します。 以下の図に従って回路を構築してください。 .. image:: img/circuit/16_flappy_parrot_bb.png プログラミング ------------------ 目指す効果は、超音波モジュールを使ってスプライト **Parrot** の飛行高度を制御し、 **Paddle** スプライトを避けることです。 **1. スプライトの追加** デフォルトのスプライトを削除し、 **Choose a Sprite** ボタンを使用して **Parrot** スプライトを追加します。そのサイズを50%に設定し、位置を左の中央に移動します。 .. image:: img/15_sprite.png 次に **Paddle** スプライトを追加し、サイズを150%に設定、角度を180に設定し、初期位置を右上の隅に移動します。 .. image:: img/15_sprite1.png **Paddle** スプライトの **Costumes** ページに移動し、アウトラインを削除します。 .. image:: img/15_sprite2.png **2. パロットスプライトのスクリプティング** 超音波モジュールの検出距離によって飛行高度が決定される飛行中の **Parrot** スプライトのスクリプトを作成します。 * 緑の旗がクリックされたら、常に飛行中であるようにコスチュームを0.2秒ごとに切り替えます。 .. image:: img/15_parr1.png * 超音波モジュールの値を読み取り、[round]ブロックで四捨五入してから変数 **distance** に格納します。 .. image:: img/15_parr2.png * 超音波検出距離が10cm未満の場合は、y座標を50増やし、 **Parrot** スプライトが上昇します。それ以外の場合は、y座標の値を40減らし、 **Parrot** は落下します。 .. image:: img/15_parr3.png * **Parrot** スプライトが **Paddle** スプライトに触れると、ゲームが終了し、スクリプトの実行が停止します。 .. image:: img/15_parr4.png **3. パドルスプライトのスクリプティング** ステージ上でランダムに出現する必要がある **Paddle** スプライトのスクリプトを書きます。 * 緑の旗がクリックされたら **Paddle** スプライトを隠し、同時に自分自身のクローンを作成します。[`create clone of `_] ブロックは、コントロールブロックでありスタックブロックです。引数のスプライトのクローンを作成します。実行中のスプライトもクローンすることができ、クローンのクローンを再帰的に作成します。 .. image:: img/15_padd.png * **Paddle** がクローンとして提示されると、x座標は220(最も右)であり、y座標はランダム(高さランダム)で-125から125になります。 .. image:: img/15_padd1.png * [repeat]ブロックを使用して、x座標の値をゆっくりと減少させ、 **Paddle** スプライトのクローンが右から左へゆっくりと移動し、消えるまで見えるようにします。 .. image:: img/15_padd2.png * 新しい **Paddle** スプライトを再クローンし、前のクローンを削除します。 .. image:: img/15_padd3.png