.. note:: こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。 **参加する理由は?** - **エキスパートサポート**:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。 - **学び&共有**:ヒントやチュートリアルを交換してスキルを向上させましょう。 - **独占的なプレビュー**:新製品の発表や先行プレビューに早期アクセスしましょう。 - **特別割引**:最新製品の独占割引をお楽しみください。 - **祭りのプロモーションとギフト**:ギフトや祝日のプロモーションに参加しましょう。 👉 私たちと一緒に探索し、創造する準備はできていますか?[|link_sf_facebook|]をクリックして今すぐ参加しましょう! .. _sh_light_ball: 2.12 光感知ボール ============================== このプロジェクトでは、フォトレジスタを使用して、ステージ上のボールを上方に飛ばします。フォトレジスタの上に手を置いて、受け取る光の強度をコントロールします。手をフォトレジスタに近づけるほど、その値は小さくなり、ステージ上のボールはより高く飛びます。そうでなければ、ボールは落ちます。ボールが糸に触れると、きれいな音ときらきらとした星の光が放たれます。 .. image:: img/18_ball.png 学べること --------------------- - スプライトを色で塗りつぶす - スプライト間の接触 必要な部品 --------------------- このプロジェクトで必要な部品は以下の通りです。 キット全体を購入すると、確かに便利です。リンクはこちら: .. list-table:: :widths: 20 20 20 :header-rows: 1 * - 名前 - このキットのアイテム - リンク * - 3 in 1 Starter Kit - 380+ - |link_3IN1_kit| 以下のリンクから個別に購入することもできます。 .. list-table:: :widths: 30 20 :header-rows: 1 * - コンポーネントの紹介 - 購入リンク * - :ref:`cpn_uno` - |link_Uno_R3_buy| * - :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に、他方の端子をA0に接続し、この端子で10Kの抵抗をGNDと直列に接続します。 したがって、光の強度が増えると、フォトレジスタの抵抗が減少し、10K抵抗の電圧分割が増加し、A0で取得される値が大きくなります。 .. image:: img/circuit/photoresistor_circuit.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** スプライトの初期位置を設定し、光の値が800未満の場合(現在の環境に応じて別の値にすることができます)、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