作って遊ぼう&学校の応援

 最近JavaScriptを取得、学校支援の〈動く教材〉を作っています。

〔動く教材〕〔シミュレーション〕物質の三態変化粒子モデル 中学校理科 高校物理・化学

2023-09-02 21:37:21 | 教材の開発
永らく投稿ができませんでしたが、プログラミングで絵を描くことを勉強していました。JavaScript(ジャバスクリプト)のCanvas(キャンバス)という描画です。勉強していく中で「1秒間に数十枚の描画を置き替えることでシミュレーションが作れる!」ということがわかりました。Basic(ベイシック)でプログラミングしていた40年ほど前にはとても考えられなかったことができます。1枚の描画にたくさんの計算をして描いていますが、それを瞬時にやってしまいます。これまでのパソコンの進歩は驚くばかりです。

 これからまずスクリーンショットの写真で説明していきますが、スマホやパソコンで実際に使えるところを紹介しますので、後ほどぜひ使ってみてください。

 最初に作ったのが「アナログ時計」です。
 これはCanvasのシミュレーションを学んで実践する登竜門、初心者が挑戦して力を確かめるもののようです。ということで私もチャレンジしました。
 パソコンはデジタルですが、その数字を拾って計算してアナログ時計に描画していきます。sinやcosもπ(パイ)なんかも使って計算して外周の円にある目盛や時針分針秒針を描いています。それを20分の1秒で描いて、消して、また描くということを繰り返すプログラムです。するとアナログ時計になります。
 だいたいのプログラムの仕組みがおわかりになったと思います。こういう仕組みを使って本命の粒子モデルにチャレンジすることにしました。これはもっと素速い動きなので50分の1秒としました。
 物質は温度を上げていくと固体・液体・気体と変化していきます。その境目には融点(ゆうてん):とける温度・沸点(ふってん):液体の中から気体が飛び出してくるところがあります。氷が解けたりやかんの水がボコボコ鳴り出したりして現象的にはわかりますが、実際ミクロな粒子の世界ではどんな動きをしているのかをシミュレーションで示せそうです。
 まず作ったのが粒子の数を100個と決めて固体内や液体内で温度によって粒子がどう変化していくか、また固体から液体へと変わる融点でどう変化していくかのシミュレーションです。

 「物質の三態変化粒子モデル〈固体・液体〉プログラム」です。
固体の状態です。

 スクリーンショットですから動きは表現できませんが、実は細かくランダムな方向に振動しています。温度が高くなるとその振動の幅が大きくなっていきます。固体の状態は、振動する基準となる位置が動きません。固体の形が変わらないのはそういう理由です。

液体の状態です。

 位置がバラバラという感じです。温度が上がって振動の幅が大きくなっていくと隣り合う粒子の間が小さくなって反発し合って基準の場所から跳ね飛ばされてしまいます。するともう基準の場所には戻れません。1個跳ね飛ばされると次々にそんな粒子が増えていって全部の粒子が振動しながらランダムに移動していきます。これが液体です。さらに温度を上げていくと振動の大きさがもっともっと大きくなっていきます。こういう状況が見て取れます。

 ここまで来たら気体も観てみたいですね。しかし、気体では体積が急に大きくなるのでこのモデルでは表現できません。
 そこで粒子の数を25個と決めて、その表現にチャレンジすることにしました。
 それがこれです。


 小さな容器を作っておいて、そこに25個の粒子を入れて固体(上図)と液体(下図)の状態を表現します。液体の温度を上げていって沸点の温度になると、容器の中から、振動が大きくなった粒子から飛び出していきます。

 沸点になったばっかりの状態がこれです。

 7個の粒子が飛び出しています。その後、次々に飛び出していって全部飛び出したのが気体の状態です。

 これがパソコンの中では壁にぶつかりながらはね返り永遠に動き続けます。こういう粒子(分子原子)の世界(ミクロの世界)では減衰(げんすい)するということはありません。それも表現しています。「温度ってなに?」という質問にも答えになっていると思いますがいかがでしょう。

 最後ですが、できれば中学校理科や高校の化学や物理の授業で使っていただけるよう活動もしていきたいと考えています。
 実物は次の画像をクリックしてもらえるとプログラムが開いて使うことができます。
 ぜひ皆さんに広めていただければ嬉しいです。特に学校関係者への紹介をよろしくお願いします。

物質の三態変化粒子モデル固体液体シミュレーションです。
 プログラムが開いたらきれいにならんだ粒子が小さく振動しています。下の温度目盛のどこを押してもその温度の動きを観ることができます。融点沸点を超えて温度を下げることはできません。右一番下の「全温度 低温→高温」ボタンを押してもおもしろいですよ。
 プログラムが開いたら下の温度目盛を押してください。その温度の粒子の動きを観ることができます。融点沸点を越えて温度を下げることはできません。
 右下の「全温度 低→高」ボタンを押すと全温度変化を観ることができます。沸点融点のところは劇的に変化します。特に沸点の粒子の飛び出すところは開放された気分になります。


アナログ時計です。
 円を描いて60個のメモリを引いて、5メモリごとに太くして、30ごとにもっと太くして外枠を描きます。ここは一回だけ描くだけです。内側はパソコンやスマホの中にあるデジタル時計の数字(アナログ時計の下に表示されているのがその数字)を使って時針分針秒針を描いていきます。しばらく間をおいて消すのは円を描くだけです。これを20分の1秒ごとに繰り返すとこんなになめらかなアナログ時計となります。また、これを1秒毎にくり返すと「カクカク」とした一般の機械式時計の動きにくいなります。


 開発したプログラムを一括して掲載したホームページがあります。ぜひここもご覧ください。
〔関連ホームページhttp://hirakaretagakkou.web.fc2.com/siennpuroguramu.html〕

QRコードはこちらになります。他の人に紹介するとき使ってください。


 最後まで読んでいただきありがとうございました。
 2学期になりましたので、放課後子ども教室やクラブ活動が始まります。これから準備に取りかかります。まずは紙トンボです。