2.12 光感知ボール

このプロジェクトでは、フォトレジスタを使用して、ステージ上のボールを上方に飛ばします。フォトレジスタの上に手を置いて、受け取る光の強度をコントロールします。手をフォトレジスタに近づけるほど、その値は小さくなり、ステージ上のボールはより高く飛びます。そうでなければ、ボールは落ちます。ボールが糸に触れると、きれいな音ときらきらとした星の光が放たれます。

../_images/18_ball.png

学べること

  • スプライトを色で塗りつぶす

  • スプライト間の接触

必要な部品

このプロジェクトで必要な部品は以下の通りです。

キット全体を購入すると、確かに便利です。リンクはこちら:

名前

このキットのアイテム

リンク

3 in 1 Starter Kit

380+

3 in 1 Starter Kit

以下のリンクから個別に購入することもできます。

コンポーネントの紹介

購入リンク

SunFounder R3ボード

BUY

ブレッドボード

BUY

ジャンパーワイヤー

BUY

抵抗器

BUY

フォトレジスタ

BUY

回路の作成

フォトレジスタまたはフォトセルは、光に制御される可変抵抗器です。フォトレジスタの抵抗は、入射光の強度が増えると減少します。

以下の図に従って回路を組み立てます。

フォトレジスタの一方の端子を5Vに、他方の端子をA0に接続し、この端子で10Kの抵抗をGNDと直列に接続します。

したがって、光の強度が増えると、フォトレジスタの抵抗が減少し、10K抵抗の電圧分割が増加し、A0で取得される値が大きくなります。

../_images/photoresistor_circuit.png

プログラミング

目指す効果は、手をフォトレジスタに近づけるほど、ステージ上のボールのスプライトが上に上がり続け、そうでなければボウルのスプライト上に落ちることです。上を歩くか、下に落ちる際に、ラインのスプライトに触れると、楽音を発し、全方向に星のスプライトを放出します。

1. スプライトと背景の選択

デフォルトのスプライトを削除し、 BallBowl 、および Star スプライトを選択します。

../_images/18_ball1.png

Bowl スプライトをステージの下中央に移動し、そのサイズを拡大します。

../_images/18_ball3.png

上に移動する必要があるので、 Ball スプライトの方向を0に設定します。

../_images/18_ball4.png

Star スプライトのサイズと方向を180に設定します。これにより、下に落ちるようになりますが、別の角度に変更することもできます。

../_images/18_ball12.png

Stars の背景を追加します。

../_images/18_ball2.png

2. Lineスプライトの描画

Lineスプライトを追加します。

../_images/18_ball7.png

Line スプライトの Costumes ページに移動し、キャンバス上の赤いラインの幅を若干狭め、それを5回コピーしてラインを整列させます。

../_images/18_ball8.png

ラインに異なる色を塗りつぶします。好きな色を選択し、 Fill ツールをクリックして、ラインの上でマウスを動かして色を塗りつぶします。

../_images/18_ball9.png

同じ方法で、他のラインの色を変更します。

../_images/18_ball10.png

3. Ballスプライトのスクリプト

Ball スプライトの初期位置を設定し、光の値が800未満の場合(現在の環境に応じて別の値にすることができます)、Ballを上に動かします。

light_valueの変数をステージ上で表示させて、光の強度の変化を随時観察することができます。

../_images/18_ball5.png

そうでなければ、 Ball スプライトは落ち、そのY座標を-100の最小値に制限します。これを修正して、 Bowl スプライト上に落ちているように見せることができます。

../_images/18_ball6.png

Line スプライトが当たったとき、現在のY座標を ball_coor 変数に保存し、 Bling メッセージがブロードキャストされます。

../_images/18_ball11.png

4. Starスプライトのスクリプト

スクリプトが開始されたとき、まず Star スプライトを隠します。 Bling メッセージを受信すると、 Star スプライトをクローンします。

../_images/18_ball13.png

Star スプライトがクローンとして表示されると、音声効果を再生し、その座標を Ball スプライトと同期させます。

../_images/18_ball14.png

Star スプライトの表示効果を作成し、必要に応じて調整します。

../_images/18_ball15.png