于方軍++張永亮
編者按:學術界普遍認為科學的研究方法分為理論推演、實驗研究和科學計算,而科學計算則是電子計算機發(fā)展起來以后新產(chǎn)生的一種獨特的科學研究方法,這種方法隨著人類研究領域的深入正變得日益重要。用Scratch進行物理實驗仿真,并不是要替代真實的實驗,確切地說,是一個建模的過程,將實驗研究和理論推演的結論內(nèi)化之后,應用到模型建構的過程中,是一種很有意義的STEM教育的實踐方式。
Scratch在學科融合中的應用可以從測量、記錄、控制、仿真四個方面進行嘗試:①測量就是通過傳感器來獲得需要的數(shù)值,如我們通過溫度傳感器測量獲取所需要的溫度數(shù)值。②記錄就是用電腦程序代替人工記錄數(shù)據(jù),通過程序的方式記錄可以把人解脫出來,并且更容易對數(shù)據(jù)進行分析,如我們會把數(shù)據(jù)導入學習過的電子表格,對數(shù)據(jù)進行分析。③控制簡單地說就是通過程序做出適當?shù)姆磻缭谔柕紫氯绻杏X到熱了,我們會走到陰涼的地方,“走”就是人腦對“腿”做出的控制。④仿真就是模仿真實世界,如可以根據(jù)光的放射定律模仿平面鏡、凸透鏡成像,讓學生理解成像規(guī)律;可以把重力加速度加入到游戲中去,讓角色的落地更接近于真實;還可以用程序的方式模擬分子運動……本文從仿真的角度做了一些案例嘗試。
● 用Scratch仿真平面鏡成像
這個仿真程序可以讓學生理解平面鏡的特點和規(guī)律,為進一步完成凸透鏡成像的仿真打好基礎,如圖1為平面鏡成像的程序界面。
程序設計的過程中光線會隨著操作者的控制隨時變化,如移動物體遠近、大小時光線會隨時變化,所以這里的黃色光線及物體用畫筆完成。我們先自定義一個畫線的模塊(如圖2)。
我們只要提供兩組坐標,然后調(diào)用這個程序就能完成中間的線。而對兩組坐標我們可以在程序中設計一些特殊的點作為角色,如物體就是用底部A點和頂部箭頭決定的。在Scratch程序中的這種畫圖方式可以解決動態(tài)變化的問題,如果你把這個例子中的“物”畫成一個固定角色,后期的調(diào)整物體大小和位置就很難實現(xiàn)。
平面鏡成像的規(guī)律是“像和物大小相等,像和物離平面鏡距離相等,像和物連線于鏡面垂直”,如何在程序中體現(xiàn)這一點呢?這里也需要設計一個模塊體現(xiàn)平面鏡成像規(guī)律腳本(如圖3)。
在這個基礎上,我們可以設計凸透鏡成像的程序,主要也是在光線和成像規(guī)律上。下頁圖4為凸透鏡成像界面。
通過Scratch設計的這種程序具有開放性,是學生可以參與的仿真實驗程序。在設計的過程中,學生要理解相應的物理規(guī)律,如果是教師設計完成的,學生則可在使用過程中加入一些游戲元素。
● 用Scratch仿真分子運動
分子運動這種微觀現(xiàn)象,如何能直觀地讓學生體驗到?除了用傳統(tǒng)多媒體的方式,也可以用Scratch程序做一些模擬。我們這里用Scratch的一個擴展版本BYOB完成了這個例子,之所以選擇用BYOB是因為它有一個非常不錯的拓展功能“錨點”。錨點的主要作用就是把一個角色“附著”到另一個角色上,并且兩個角色可以獨立編輯腳本。圖5為BYOB界面,在圖中的例子中,“孫悟空”和“金箍棒”是兩個不同的角色,可以分別編輯腳本。我們可以用鼠標“拖拽”金箍棒到舞臺上的孫悟空處,這時候角色“金箍棒”右上角就多了一個錨點標志,說明金箍棒已附著到了孫悟空上,孫悟空就可以邊運動邊玩他的金箍棒了。
分子熱運動就是利用這個錨點功能來實現(xiàn)的,圖6是用BYOB的升級版本Snap完成的分子熱運動的例子。Snap是一個網(wǎng)頁編輯的圖形化編程軟件,所以可用瀏覽器打開。在這個例子中,我們設計了一個“小立方體”角色,然后建立9個分子小球角色,讓這9個分子附著到小立方體上,當小立方體運動時,小分子會隨之運動。我們構造好了這樣一個神奇的小立方體,便可以在物理學習中加以應用了。
小立方體可以在后期的熱學中得到應用,作為分子熱運動的例子,在這里我們把9個小分子的運動腳本設計為圖7。我們只要給變量a賦一個初始值,小分子就會在-a~a之間選擇一個隨機數(shù),小分子的X、Y坐標會在原來坐標基礎上有輕微變化,仿真出分子熱運動的物理現(xiàn)象。如果把這個a值與外接的溫度傳感器關聯(lián),當溫度升高時a值增加,分子熱運動會加劇。
● 用Scratch仿真小球的自由落體運動
自由落體運動是勻加速運動的一個典型實例,對學生來說徹底理解自由落體運動后,很多運動的問題就都能解決了。如果用Scratch來模擬體驗這個過程,并實時反映出速度、距離、時間的變化,學生將會非常直觀地了解和感受到自由落體,比看公式()算數(shù)字要好得多。圖8為小球的自由落體腳本。
添加一個對象“sprite1”的小球,將該對象的位置定位在(0,170)的坐標上,設置一個變量“y”記錄當前所處的位置,“計時器”表示小球下落的時間,小球設置的初始高度為170,在Scratch中表示為170像素,重力加速度為9.8米每秒,放到Scratch中表示為9.8像素每秒。那么小球下落的距離就是(),即。然后用最初的位置高度170減去這個下落的距離,就能得出當前小球的y坐標。如圖9所示,坐標有正負170,因此小球相當于從340米的高空做自由落體運動。
通過這種仿真程序的設計,我們還可以給物體一個質量、彈性系數(shù)來研究小球的反彈,給小球一個初速度來研究小球的運動情況,這種仿真如果用到動畫設計中,會使得角色更逼真。
● 小結
仿真作為建模的一種應用,其在圖形化可編程領域的應用,正日益成為STEM教育的一個重要方向。而原本在物理教學界,人們普遍擔心的是用仿真實驗來代替真實實驗,使得學生的動手實踐能力和對真實世界的觀察能力減弱,但是作為在理解物理模型之上的一種綜合應用,學生通過Scratch軟件進行建模,還原物理現(xiàn)象的數(shù)學本質,則對學生的綜合能力是一種巨大的提升。此外,物理領域的建模,只是建模這種方法的一種簡單應用,更有意義的研究則是其在社會生活中的應用,因此通過仿真獲取大量的數(shù)據(jù)進行大數(shù)據(jù)分析的訓練,也是一個很好的研究方向。