理科「屈折のシミュレーションを作ろう」
 <概要>
 光は密度が高いガラスの中を通過するときは,少しだけ遅くなります。光は、波として互いに影響しあって振る舞うので,4輪車の片側の車輪がぬかるみにとらわれたときのように,遅くなる方へ屈折します。このような考え方をそのままLOGO言語のプログラムとして、記述してみます。
 左の写真には、カメ1とカメ2の2匹のカメを光子とし、左から右に進むことが光線とします。カメ1とカメ2は、互いに位置関係を調べ平行に進むようにプログラムします。
このとき、カメの速さをプリズムの上で遅くするようにすると、2匹のカメは屈折して動くことがわかります。
 これらのプログラムは、LOGO言語で行うと、たった1行のプログラミングです

 <LOGOの作品> 以下をクリックすると、LOGO言語の作品が開きます。
  プリズムの屈折.
  半円レンズの屈折
  板ガラスの屈折
  光ファイバーの全反射

 

<動機>
 光源装置から発した光は,どのように台形のガラスを進みましたか。覚えていますか。
 もしも,光源装置から出た光が2匹のLOGOカメだとすると,どうなるでしょう。
 ガラスを通過する光が曲がる(屈折する)様子をカメが光になって、確かめてみよう。

<背景>
 ホイヘンスの説明で考えると高校物理になってしまうが、カメで考えるなら小学生でも容易に理解できる。
 光は、「粒子と波の性質と波の性質を持つ」と考えられているが、カメを光子として、「光子という粒子のカメは通過する物体による速さで直進する」「波としてのカメは、近くのカメと影響しあっている」という条件をたった1行でプログラムすることによって、屈折と全反射をシミュレーションする。
 このプログラムは、プログラムを変えることなく、レンズの色を変えだけで屈折率が変わり、さらに長方形のガラスの中で実行すると光ファイバーのように全反射する様子までシミュレーションできる。

<学習活動の流れ>
 光としてカメのふるまいは、進む場所によって速さが変わります。これは、背景の色によって、カメの速さを決めるようにすれば良いでしょう。
 光のカメは、波として、近くのカメとつながって動こうとします。これは、カメとカメがお互いに離れないようにプログラムすれば良いでしょう。
 これらの2つの条件をプログラムしただけで、光がプリズムで曲がる様子をシミュレーションできるのでしょうか。プログラムして試すのが楽しみですね。
留 意 点
 学 習 の 流 れ
 プログラミングの留意点
光源装置から出た光は,空気中を直進しましたね。「光の直進」は,光の進み方を考える上で大切な性質です。  最初に,空気中の光と同じようにLOGOカメを直進させてみましょう。

(1)のボタンをクリックしてかめ1をつくります。
(2)かめ1の上を右クリックして,
命令の中に
 前へ 1
と書きいれます。

「回数を無限に」をチェックしてOKします。
これでLOGOカメが光と同じように直進します。
 光としてLOGOカメを直進する命令は
 前へ 数字
です。
 光の速度は,物質によってきまります。
真空中が最も速く,真空より空気が,空気よりガラスの中が遅くなります。野球のボールでも空気中で速くても水中は遅くなりますね。
 このままだと,光となったLOGOカメが止まりません。光が壁にぶつかったら止まるようにしましょう。
(1)グラフィックで画面をピンク135で塗ります。
(2)画面の右端に光を止める壁を白0で描きます。
(3)もう一度,かめ1の上を右クリックして,かめ1の設定画面にします。
(4)命令を修正しましょう。
 前へ (下の色 / 100)

どうでしょうか?
今度は,光になったLOGOカメが白い壁のところで止まりました。白い壁は,色の数字が0なので,LOGOカメの進みが0になったのです。 
光の速さ(カメの速さ)は、背景の色で決まります。そのため色の番号が重要です。ここでは,ピンクを使いましょう。


海岸にうちよせる波は、つらなっています。つらなった波の上を2つのサーフボードが海岸を目指しているように2匹のカメを進めてみます。
 
LOGOカメでも,平行な光をつくってみましょう。
2匹のLOGOカメがお互いに同じ向きに進めば平行になりますね。
(1)かめ1に加えて,かめ2をつくります。
(2)かめ1の命令を修正します。
 方向 "かめ2 左へ 90 前へ (下の色 / 100)
(3)かめ2には,かめ1と並行に進む命令を入れます。
方向 "かめ1 右へ 90 前へ (下の色 / 100) 
1匹のカメだけプログラムを実行すると円運動になります。

カメとカメが離れないようにするのに、平行に進めることにしています。平行に進めるには、2匹のカメが同時に90度の角度で進めれば良いとしたのが目のつけどころです。

命令語の区切りのスペースを忘れないようにしましょう。 
プログラムを実行するボタンを作りましょう。 かめ1とかめ2を一斉にスタートさせるためにボタンをつくります。
 全部「クリックオン」

これで,画面左に上下にかめ1,かめ2を並べてから,ボタンをクリックすると,2匹の光のLOGOカメが左から右へ平行に進む様子が表現できました。 

2匹のカメのプログラムを同時に実行させるために、
 全部「クリックオン」

としています。
 プリズムの中を光が進むと,光が屈折します。どの方向に屈折したかな?











今日の学習のまとめをしましょう。
光になったLOGOカメも屈折するでしょうか。
画面の中央にプリズムを水色で描いて試してみましょう。

2匹の光のLOGOカメの速度が変化して,LOGOカメは屈折したかな?
どちらの方向へ曲がりましたか。
わかったことをテキストボックスに書いてまとめておくといいですね。
 2匹のLOGOカメは,平行に進むのですから,上下に並べないと真横方向に進みません。

プリズムは、水色85で描いています。
プリズムの色番号を変えると屈折率も変わります。

スタートの位置にカメを戻すボタンを作ると良いでしょう。

コマンドセンターが広がりすぎて邪魔なときは、
表示→コマンドセンターのチェックをはずす
とするか、
手順は スタートアップ
設定する "さくひん  "コマンドセンターか "うそ
終わり

を書き加えます。

<学習を終えて>
  この学習では、なぜ、カメが曲がるのかということを説明していませんが、プログラミングが終わるころには、学習者どうしが、なぜ曲がるのかを説明しあっている様子が見られます。

 プリズムを使った実験を行ったときは、屈折するという事実確認が中心になり、なぜ屈折するかに関心の無い学習者も多いのですが、LOGOのカメを使ったプログラミングで、なぜというところに関心が深まります。
 ▲ TOP