牟曉東
較為傳統(tǒng)的高中物理實(shí)驗一般是通過使用打點(diǎn)計時器來實(shí)現(xiàn)“重力加速度的測量”。或像高中物理“勻變速直線運(yùn)動的研究”中“用手機(jī)測自由落體加速度”提及的“安裝能顯示加速度情況的應(yīng)用程序”,借助于智能手機(jī)中的加速度傳感器進(jìn)行的“直觀”測量。而在“機(jī)械振動”中“用單擺測量重力加速度”實(shí)驗,則是先測量出單擺周期及擺長再通過公式g=4π1/T計算出重力加速度的大小。除此之外,還有其他使用彈簧秤、圓錐擺、氣墊導(dǎo)軌等設(shè)備進(jìn)行測量和計算的方法。
如果將“重力加速度的測量”這一課題拿到“編程創(chuàng)客”實(shí)踐活動中,我們可以通過改進(jìn)版的“滴水法”、手機(jī)Phyphox雙線擺、掌控板mPython X 圖形化編程和樹莓派Python代碼編程等多種方式來進(jìn)行探究。
自來水、水盆、米尺、手機(jī)的“秒表”、電子表格Excel。
首先,將水盆底部朝上,放置于自來水的水龍頭正下方;接著,輕微打開并小心調(diào)整閥門,控制水滴以“一滴、一滴”自然滴下的狀態(tài)做自由落體運(yùn)動,最好是上一滴水剛滴落到盆底發(fā)出聲音的同時,下一滴水恰好從水龍頭中剛開始滴落,分別進(jìn)行兩組共6次測量,使用手機(jī)的“秒表”來計時50個水滴的滴落總時長,即從第1次水滴撞擊盆底發(fā)聲至第51次“發(fā)聲”為止(如圖1)。

第一組實(shí)驗,在水盆下方水平墊入約0.1m高的木板,用米尺測得從水龍頭滴出水滴處至盆底的高度h為1.160m;三次測量出50個水滴自由落體運(yùn)動的周期時長分別為24.20s、24.36s和24.74s,需要特別注意手指的觸動“秒表”動作必須迅速,將結(jié)果輸入Excel表格;
第二組實(shí)驗,撤掉水盆下方的木板,測量新的高度值h為1.255m,三次測量的周期時長分別為25.32s、25.42s和25.68s,輸入Excel表格中。
在Excel中先計算出一滴水滴的平均周期值(即除以50),接著在單元格E2根據(jù)公式g=4π1/T進(jìn)行重力加速度g值大小的計算:“(2*B2)/(D2*D2)”,然后向下拖動計算出其余5個g值的大小,分別是9.903695103m/s、9.774024552m/s、9.476077479m/s、9.787827966m/s、9.710970565m/s和9.515326423m/s;另外,六次實(shí)驗測量和計算得到的重力加速度平均值是9.69465368144189m/s2,這是一個比較理想的實(shí)驗結(jié)果(如圖2)。

改進(jìn)版的“滴水法”測量重力加速度借助手機(jī)的“秒表”來測量周期,可以有效替代傳統(tǒng)的秒表;借助Excel表格進(jìn)行數(shù)據(jù)的處理,計算速度和精度均優(yōu)于使用計算器,且計算的結(jié)果便于存儲。缺點(diǎn)是測量高度仍然使用了米尺,且手機(jī)的“秒表”受人為因素影響較大。
鐵架臺、米尺、安裝有Phyphox軟件(中文譯為“手機(jī)物理工坊”)的智能手機(jī)、鐵夾兩支、細(xì)繩、軟布(比如:擦眼鏡布)。
目前的智能手機(jī)均內(nèi)置有MEMS(微電子機(jī)械系統(tǒng)),通常包括光線傳感器、加速度傳感器和磁力傳感器等。作為針對物理學(xué)實(shí)驗而打造的Phyphox軟件,提供了直接訪問手機(jī)傳感器測量數(shù)據(jù)的功能,并且可以對實(shí)驗數(shù)據(jù)進(jìn)行即時分析計算以得出相關(guān)物理量(比如重力加速度)的數(shù)值,計算公式為:g=4π1/T。
首先用軟布包住手機(jī)中部,兩側(cè)用鐵夾固定;調(diào)整好鐵架臺的水平,用2條細(xì)繩穿過鐵夾尾部,上方系于鐵架臺橫梁,組成一個“雙線擺”;調(diào)整好平衡,讓手機(jī)能夠平穩(wěn)地進(jìn)行小幅度(小于5°)的擺動(如圖3)。

運(yùn)行Phyphox,點(diǎn)擊“力學(xué)”下的“擺”項目,這樣你的手機(jī)作為擺的同時又可以確定重力常數(shù);點(diǎn)擊右上角的選項設(shè)置(三個豎點(diǎn)),在彈出的菜單項中先將“定時運(yùn)行”項勾選,其默認(rèn)設(shè)置是將“啟動延遲”3秒、“實(shí)驗時長”10秒,目的是“過濾”開始3秒的不穩(wěn)定時間段;然后勾選“允許遠(yuǎn)程控制”,啟用遠(yuǎn)程訪問功能,這樣可以通過瀏覽電腦瀏覽器的網(wǎng)頁(http://192.168.1.105:8080/)來即時訪問Phyphox的實(shí)驗過程(如圖4)。

點(diǎn)擊切換至“G”重力加速度測量項,調(diào)整擺線的長度并使用米尺測量擺長,輸入至Phyphox的“擺長”項中(cm);然后小幅度啟動雙線擺,在網(wǎng)頁中點(diǎn)擊“開始”按鈕啟動實(shí)驗,很快就顯示有周期、頻率以及計算出的重力加速度的數(shù)值。繼續(xù)調(diào)節(jié)擺線的長度,共進(jìn)行六次實(shí)驗,測得擺長分別為:41.60cm、45.70cm、48.50cm、51.50cm、55.00cm和57.59cm,得到的重力加速度值分別為:9.64m/s、9.71m/s、9.52m/s、9.87m/s、9.76m/s和9.68m/s。六次平均值是9.69666666666667m/s,也是一個比較理想的實(shí)驗結(jié)果(如圖5)。

借助于手機(jī)中的MEMS加速度傳感器系統(tǒng)和Phyphox軟件進(jìn)行重力加速度的測量實(shí)驗非常方便,只須測量出不同的擺長下的數(shù)據(jù)即可計算出接近于當(dāng)?shù)刂亓铀俣戎档臄?shù)據(jù),省去了實(shí)驗者的計算過程。
缺點(diǎn)是受限于智能手機(jī)內(nèi)置的傳感器精度,米尺測量的擺長需要估算智能手機(jī)的中心點(diǎn)位置而產(chǎn)生的誤差,最終都會在一定程度上影響到重力加速度的測量。
掌控板、百靈鴿擴(kuò)展板、數(shù)據(jù)線、mPython X編輯器。
掌控板內(nèi)部集成的加速度傳感器可以通過多種軟件編程的方式進(jìn)行數(shù)據(jù)的讀取,包括X、Y和Z三個軸的單向加速度值。
將百靈鴿擴(kuò)展板與掌控板連接好,連接電腦的USB接口;在電腦上運(yùn)行mPython X,進(jìn)行圖形化編程。通過循環(huán)結(jié)構(gòu)控制先后8次讀取掌控板的三軸加速度值,相鄰兩次間的時間間隔為0.01秒。
需要注意的是,要將掌控板中讀取的“X軸加速度”、“Y軸加速度”和“Z軸加速度”三個數(shù)據(jù)先求平方和再開平方根,而且再進(jìn)行單位換算(乘以10),即:

單位是m/s;建立變量my_list存儲8個重力加速度的測量值,最終在掌控板的OLED顯示屏上輸出(如圖6)。

將程序刷入掌控板并運(yùn)行,很快就測量得到8個重力加速度數(shù)據(jù):9.812777、9.819073、9.806555、9.851265、9.812699、9.883816、9.845144、和9.851265,分別輸出顯示在電腦的mPython X編程界面和掌控板的OLED顯示屏上;8次的平均值是9.83532425m/s,這是一個非常理想的實(shí)驗結(jié)果(如圖7)。

使用掌控板的優(yōu)點(diǎn)是器材簡單,連接非常方便,而且得到的實(shí)驗數(shù)據(jù)精度也比較高;缺點(diǎn)是實(shí)驗數(shù)據(jù)的獲取過程不太直觀,較高集成度的“智能化”剝奪了通過實(shí)驗感知重力加速度的過程。
樹莓派、古德微擴(kuò)展板、鐵架臺、擺球、細(xì)繩、米尺、游標(biāo)卡尺、紅外線傳感器、Python程序編輯器Spyder。
物理“機(jī)械振動”的“實(shí)驗:用單擺測量重力加速度”中,為了精確地測量出當(dāng)?shù)氐膅值,我們必須要盡可能地減小實(shí)驗過程和數(shù)據(jù)計算處理過程中的各種誤差。比如在使用秒表測量單擺周期T值時,通常是先記下擺球做50次全振動所用的總時長t,然后通過T=t/50取平均值。如果是在樹莓派上通過Python編程來做同樣的實(shí)驗,借助紅外線傳感器實(shí)時監(jiān)測擺球每次到達(dá)平衡位置的時刻并進(jìn)行記錄存儲,同樣也是記錄幾十個周期后取平均值;然后通過公式g=4π1/T計算出重力加速度的大小,同時也可以根據(jù)實(shí)驗數(shù)據(jù)做出T-l圖像并進(jìn)行描點(diǎn)擬合。
在本次的單擺測量重力加速度實(shí)驗中,我們需要使用對環(huán)境光線適應(yīng)能力較強(qiáng)的紅外線傳感器,其有效檢測的距離范圍為2-30cm,通過頂端的一對紅外線發(fā)射與接收管來檢測擺球是否到達(dá)平衡位置。
第1步:實(shí)驗器材的連接與調(diào)試
首先將擺球通過細(xì)繩連接至鐵架臺,使用游標(biāo)卡尺測量出擺球的直徑;然后將紅外線傳感器插入樹莓派擴(kuò)展板的24號插孔;接著,調(diào)節(jié)好紅外線傳感器與擺球的位置,使其頂端正對著擺球靜止時的平衡位置;最后,給樹莓派通電啟動操作系統(tǒng),并且讓擺球正常擺動起來,觀察紅外線傳感器的輸出指示燈是否會在其到達(dá)平衡位置時閃亮,指示燈如果能在擺球到達(dá)平衡位置時發(fā)光,說明可以進(jìn)行實(shí)驗檢測(如圖8)。

第2步:Python編程測量單擺的周期T
在電腦上通過Windows的“遠(yuǎn)程桌面程序”登錄樹莓派,進(jìn)入Python IDE編程環(huán)境,編寫程序進(jìn)行單擺周期數(shù)據(jù)的采集。
第一次實(shí)驗設(shè)計采集50個周期總時長,語句“for i in range(101)”控制紅外傳感器監(jiān)測擺球到達(dá)平衡位置的次數(shù)為101次,每次均使用“time.time()”記錄下該時刻的“時間戳”;語句“time.sleep(0.7)”的作用是消除擺球“途經(jīng)”紅外線傳感器時的短暫停留期(可根據(jù)實(shí)際情況進(jìn)行調(diào)節(jié)),防止擺球在同一次到達(dá)平衡位置時采集了多個時刻數(shù)據(jù);最開始記錄的一次時刻t0是實(shí)驗的起始值,它與最后一個時刻間的總時長(t-t)再除以50,即得到該次實(shí)驗所測得的周期T。
按照實(shí)驗要求,控制擺球在小于5°的范圍內(nèi)開始擺動后,運(yùn)行Python程序進(jìn)行數(shù)據(jù)的采集;結(jié)束后,程序輸出“T is: 1.4047615098953248”,單位是秒(如圖9)。

第3步:Python編程計算重力加速度g
返回Windows中啟動Spyder進(jìn)行Python編程,計算重力加速度g。
語句“import math”的作用是導(dǎo)入數(shù)學(xué)庫,變量math.pi即為圓周期率π,值為3.141592653589793;本次實(shí)驗測量的擺長l值為0.4896m,即擺線部分與小球半徑之和;語句“g = (4*math.pi**2*l)/(T**2)”的作用是計算g的大小(“*”表示乘法運(yùn)算,“T**2”表示周期的平方),這是公式g=4π1/T在Python編程中的表達(dá)式書寫方法。
運(yùn)行程序,得到結(jié)果:“第一次測試的g數(shù)值為: 9.79480845649939”,單位為m/s(如圖10)。

第4步:再測量并獲取五組實(shí)驗數(shù)據(jù)
第一次實(shí)驗結(jié)束之后,繼續(xù)再做五次實(shí)驗,調(diào)節(jié)并測量擺線的長度l分別為0.6386m、0.7206m、0.7376m、0.8076m和0.9796m;在樹莓派中通過Python程序測量的對應(yīng)周期T分別為1.6047531366348267 s、1.7047476148605347 s、1.7246245098114015 s、1.8050039768218995 s和1.9851537227630616 s。
將對應(yīng)數(shù)據(jù)分別在Windows的Python環(huán)境中進(jìn)行運(yùn)算,得到五次實(shí)驗的重力加速度值分別是:9.789763143321407 m/s、9.788898187722923 m/s、
9.790199394007589m/s、9.785876280226173m/s和9.813416423616557 m/s。
第5步:Python編程作T2-l圖像
六次實(shí)驗完成之后,將測量的擺長l和周期T數(shù)據(jù)(包括通過公式計算得到的重力加速度g數(shù)據(jù))填入右下表格。
在Python中導(dǎo)入numpy、matplotlib等庫模塊和進(jìn)行必要的作圖設(shè)置之后,將六次實(shí)驗的擺長l和周期T數(shù)據(jù)分別存儲至列表,其中的周期T還要通過一次循環(huán)計算得到平方值,最后進(jìn)行數(shù)據(jù)點(diǎn)顯示和擬合,得到T2-l圖像(如圖11)。

第6步:實(shí)驗數(shù)據(jù)分析
從圖像上可以看到,六次實(shí)驗的數(shù)據(jù)“散點(diǎn)”(以藍(lán)色*表示)在經(jīng)過擬合后,非常接近于過原點(diǎn)(0,0)的一條直線,其擬合曲線y=kx+b表示為:y=4.028x+0.001868。由于T=4π/gl,直線在T2-l圖像中的斜率k=4π/g,所以重力加速度g=4π/k;如果忽略擬合時的“0.001868”極小誤差值,并且將k值(4.028)代入,則有g(shù)=4π2/k≈9.800997419155273m/s(同樣可在Python中編程求解),這就是六次實(shí)驗測量和計算的結(jié)果;六次實(shí)驗測量和計算得到的重力加速度值取平均值,結(jié)果是9.793826980899006m/s,一個非常理想的結(jié)果。
使用樹莓派進(jìn)行Python代碼編程測量重力加速度的實(shí)驗優(yōu)點(diǎn)是,不管是周期T的測量、圓周率π的取值及計算重力加速度g,數(shù)據(jù)均精確至小數(shù)點(diǎn)后15位數(shù)字,尤其是使用紅外線傳感器監(jiān)測記錄擺球到達(dá)平衡位置的時刻數(shù)據(jù),精確度要遠(yuǎn)遠(yuǎn)高于使用秒表來測量周期,實(shí)驗的誤差小得多。通過查詢各地的重力加速度數(shù)據(jù),青島(北緯35°35′~37°09′)的重力加速度值約為9.7985 m/s,而筆者所在地是煙臺(北緯36°16′~38°23′),理論上的重力加速度值應(yīng)該是稍大于青島地區(qū)9.7985m/s2的,與實(shí)驗結(jié)果吻合。
而且,通過Python代碼編程來進(jìn)行最終實(shí)驗數(shù)據(jù)的分析及圖像擬合展示,都極具說服力。缺點(diǎn)是實(shí)驗較復(fù)雜,包括器材的連接以及Python代碼編程,適合高中生進(jìn)行小組協(xié)作式項目探究,還需要信息技術(shù)老師的協(xié)助。
