.. note:: こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。 **参加する理由は?** - **エキスパートサポート**:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。 - **学び&共有**:ヒントやチュートリアルを交換してスキルを向上させましょう。 - **独占的なプレビュー**:新製品の発表や先行プレビューに早期アクセスしましょう。 - **特別割引**:最新製品の独占割引をお楽しみください。 - **祭りのプロモーションとギフト**:ギフトや祝日のプロモーションに参加しましょう。 👉 私たちと一緒に探索し、創造する準備はできていますか?[|link_sf_facebook|]をクリックして今すぐ参加しましょう! .. _sh_light_ball: 2.10 光感知ボール ============================== このプロジェクトでは、フォトレジスターを使用してステージ上のボールを上方向に飛ばします。フォトレジスターの上に手を置いて、受ける光の強さをコントロールします。手がフォトレジスターに近づくほど、その値は小さくなり、ステージ上でボールはより高く飛びます。そうでなければボールは落ちます。ボールが線に触れると、美しい音がして星の光がきらめきます。 .. image:: img/18_ball.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_breadboard` - |link_breadboard_buy| * - :ref:`cpn_wires` - |link_wires_buy| * - :ref:`cpn_resistor` - |link_resistor_buy| * - :ref:`cpn_photoresistor` - |link_photoresistor_buy| 学べること --------------------- - スプライトに色を塗る - スプライト間のタッチ 回路の構築 ----------------------- フォトレジスターまたはフォトセルは、光によって可変する抵抗器です。フォトレジスターの抵抗は、入射光の強度が増すと減少します。 以下の図に従って回路を構築します。 フォトレジスターの一方の端を5Vに、もう一方の端をピン35に接続し、この端に10Kの抵抗をGNDと直列に接続します。 したがって、光の強度が増すと、フォトレジスターの抵抗が減少し、10Kの抵抗の電圧分割が増加し、ピン35によって得られる値が大きくなります。 .. image:: img/circuit/8_light_alarm_bb.png プログラミング ------------------ 私たちが得たい効果は、あなたの手がフォトレジスターに近づくほど、ステージ上のボールスプライトが上に上がり続け、そうでなければボウルスプライトに落ちるということです。上がったり落ちたりする途中でラインスプライトに触れると、音楽の音がして、あらゆる方向に星スプライトを放出します。 **1. スプライトと背景の選択** デフォルトのスプライトを削除し、 **Ball**、 **Bowl**、 **Star** スプライトを選択します。 .. image:: img/18_ball1.png **Bowl** スプライトをステージの底の中央に移動し、サイズを大きくします。 .. image:: img/18_ball3.png **Ball** スプライトを上方向に動かす必要があるため、向きを0に設定します。 .. image:: img/18_ball4.png **Star** スプライトのサイズと向きを180に設定します。下方向に落ちる必要があるためですが、他の角度に変更することもできます。 .. image:: img/18_ball12.png 次に、 **Stars** 背景を追加します。 .. image:: img/18_ball2.png **2. Line スプライトの描画** Line スプライトを追加します。 .. image:: img/18_ball7.png **Line** スプライトの **Costumes** ページに移動し、キャンバス上の赤い線の幅を少し狭くして、それを5回コピーして線を揃えます。 .. image:: img/18_ball8.png 次に、線を好きな色で塗ります。好きな色を選んで、 **Fill** ツールをクリックし、マウスを線の上に移動して色を塗ります。 .. image:: img/18_ball9.png 同じ方法で他の線の色を変更します。 .. image:: img/18_ball10.png **3. Ball スプライトのスクリプト** **Ball** スプライトの初期位置を設定し、光の値が1500未満の場合(環境に応じて他の値にすることもできます。)、Ballを上に移動させます。 light_value 変数をステージ上に表示させ、いつでも光の強度の変化を観察できるようにします。 .. image:: img/18_ball5.png そうでない場合、 **Ball** スプライトは落下し、Y座標の最小値を-100に制限します。これは、 **Bowl** スプライトの上に落ちているように見えるように変更できます。 .. image:: img/18_ball6.png **Line** スプライトに触れたとき、現在のY座標を変数 **ball_coor** に保存し、 **Bling** メッセージをブロードキャストします。 .. image:: img/18_ball11.png **4. Star スプライトのスクリプト** スクリプトが開始されたとき、まず **Star** スプライトを隠します。 **Bling** メッセージを受け取ったとき、 **Star** スプライトをクローンします。 .. image:: img/18_ball13.png **Star** スプライトがクローンとして現れたとき、効果音を鳴らし、その座標を **Ball** スプライトと同期させます。 .. image:: img/18_ball14.png **Star** スプライトの登場効果を作り、必要に応じて調整します。 .. image:: img/18_ball15.png