翁浩峰
(浙江省寧波中學(xué),浙江寧波 315100)
“Arduino,是一個基于開放源代碼的軟硬件平臺,構(gòu)建于開放源代碼simple I/O接口版,并且具有使用類似Java、C語言的Processing/Wiring開發(fā)環(huán)境.讓您可以快速使用Arduino 語言與 Macromedia Flash、Processing、Max/MSP、Pure Data、SuperCollider等軟件作出互動作品.Arduino可以使用開發(fā)完成的電子元件例如Switch或傳感器或其他控制器件、LED、步進(jìn)馬達(dá)或其他輸出裝置.Arduino也可以獨立運作成為一個可以跟軟件溝通的接口,例如Macromedia Flash、Processing、Max/MSP 、Pure Data、VVVV 或其他互動軟件等.Arduino開發(fā)IDE接口基于開放源代碼,可以讓您免費下載使用開發(fā)出更多令人驚艷的互動作品.”以上這段文字來自維基百科.Arduino可以連接傳感器,并將傳感器的信號傳輸至計算機,并由計算機上的軟件如Macromedia Flash軟件制作的動畫接受這些信息,并將其顯示出來.Arduino甚至可以接受Macromedia Flash軟件制作的動畫發(fā)送的信號,并由此來控制一些動作器件(如步進(jìn)馬達(dá)等).由此可知,通過Arduino我們可以實現(xiàn)外部世界與計算機的互動.
DISLab——(Digital Information System Lab)數(shù)字化信息系統(tǒng)實驗室,其基本的構(gòu)造是傳感器,數(shù)據(jù)采集器和計算機軟件.基本原理是由數(shù)據(jù)采集器采集傳感器上的數(shù)據(jù),并傳輸?shù)诫娔X上通過軟件顯示出來.近幾年,DISLab在中學(xué)物理實驗中應(yīng)用比較廣泛,使用的DISLab產(chǎn)品也有很多,例如國內(nèi)的朗威DISLab系統(tǒng),GQY DISLab系統(tǒng)等等.
對比 Arduino與DISLab系統(tǒng),可以發(fā)現(xiàn) Arduino完全可以實現(xiàn)DISLab的各項功能,并且還可以通過軟件反過來控制一些動作器件,加上其構(gòu)建于開放源代碼,可以實現(xiàn)許多現(xiàn)在的DISLab無法實現(xiàn)的功能.所以用Arduino進(jìn)行DISLab的開發(fā),能創(chuàng)造出更多獨特的實驗,開發(fā)出界面更好的互動課件.
筆者下面利用Arduino和做互動課件常用的軟件Macromedia Flash來制作一個DISLab實驗.
本實驗需要1個Arduino開發(fā)板和1個超聲波傳感器元件(如圖1所示),以及 1臺安裝了 Flash cs3和Arduino軟件的計算機.
首先對Arduino開發(fā)板寫入一下程序(此處省略若干定義語句).
上述寫在Arduino里的程序的功能主要是讀出超聲波傳感器發(fā)射超聲波到接受反射回來的波所經(jīng)過的時間差,然后將這個時間差發(fā)送出去,讓電腦接收.
圖1
寫入程序后,將超聲波傳感器的輸入輸出端連接到Arduino的端口4和端口5,電源輸入端連接到Arduino的高電平輸出端,接地端連接到Arduino的接地端.這樣超聲波傳感器與Arduino的連接就完成了.接下去開始寫計算機端的Flash程序.
Arduino與Flash并不能直接通信,必須通過一個服務(wù)器轉(zhuǎn)接,這里選擇Serproxy進(jìn)行轉(zhuǎn)接.Serproxy的作用在于它會建立一個xml服務(wù)器,將來自Arduino的數(shù)據(jù)轉(zhuǎn)換為xml格式,儲存在它臨時建立的虛擬服務(wù)器上.然后Flash便可以從serproxy建立的虛擬服務(wù)器中讀取xml格式的數(shù)據(jù).Serproxy服務(wù)器從國外的網(wǎng)站www.arduino.cc上直接下載得到.下面編寫Flash端的程序,因為代碼過多,此處省去,如有需要,可以向筆者索取.
程序完成了將得到的從Arduino發(fā)送的時間間隔轉(zhuǎn)換為距離值,并且完成將距離值實時顯示出來,以及用屏幕上的物塊來實時模擬實際物體的移動.在按下記錄按鈕后能夠每5 ms讀取一個數(shù)據(jù),然后對每4個數(shù)據(jù)取平均,以每20 ms記錄一次將這些數(shù)據(jù)依次記錄到數(shù)組中,并依次顯示出來,同時畫出距離—時間圖像(如圖2所示),還可以通過對圖像的選擇來保留選中的數(shù)據(jù).
圖2
通過上述程序,可以看到通過Arduino和Flash開發(fā)的這個課件具有實時的測量并記錄物體位移的功能.有了這個功能,可以完成很多物理實驗,例如研究物體加速度與力、質(zhì)量的關(guān)系,研究小球簡諧運動的圖像等等.當(dāng)然,這個課件在數(shù)據(jù)處理上的功能可能并不強大,但是我們可以將課件中記錄下來的距離數(shù)據(jù)復(fù)制到 Excel中,利用Excel強大的功能來進(jìn)行數(shù)據(jù)的分析和處理,甚至計算出每個時刻物體的速度,畫出速度—時間圖像等等.
下面,我們就用剛開發(fā)的這個DISLab來完成一個簡單的物理實驗.
實驗任務(wù):研究小車在無外力作用下從某一速度減為零的運動過程,分析小車位移隨時間變化的情況,畫出小車的位移-時間圖像,并用曲線擬合的方式分析小車的運動情況.
首先放置好器材,打開serproxy服務(wù)器,打開剛制作完的課件,如果顯示出小車的距離,說明連接成功.試著移動小車,觀察課件中小車的運動情況,如正常,點擊開始采集數(shù)據(jù)按鈕,然后馬上推動小車給小車一個初速度.觀察課件中的圖線的變化情況,待小車停止后,點擊暫停數(shù)據(jù)采集按鈕.接下去點擊圖像選擇按鈕,在圖像上點下鼠標(biāo)左鍵并拖動鼠標(biāo),選擇你所要保留的圖像范圍,最后點擊保留選中數(shù)據(jù)按鈕,在課件的數(shù)據(jù)表格內(nèi)便得到了我們這次實驗的數(shù)據(jù).
然后將課件中數(shù)據(jù)表格內(nèi)的數(shù)據(jù)全部復(fù)制到Excel表格中,注意使用文本導(dǎo)入向?qū)?選擇分隔符號,點擊下一步,再選擇空格,點擊完成.這樣就將課件中的數(shù)據(jù)復(fù)制到了Excel表格中了,這些數(shù)據(jù)有兩列,第1列為時間,第2列為該時間對應(yīng)的位移值,單位是cm.接下去便可以利用Excel強大的圖像數(shù)據(jù)處理功能來分析數(shù)據(jù)了.選擇插入—圖表里面的XY散點圖,選擇平滑線散點圖,點擊下一步,再點擊完成即可.這樣就將得到的數(shù)據(jù)又復(fù)原成了位移-時間圖像了(如圖3所示).然后再對圖像進(jìn)行研究,右擊圖像中的圖線,選擇添加趨勢線,在趨勢線里面選擇多項式,階數(shù)選擇2,然后在選項里面將顯示公式前面的框里打上鉤,最后點擊確定.這樣就完成了對圖線的研究,觀察趨勢線與圖線是否吻合,如果不吻合,則需要重新添加其他的趨勢線,如吻合,則說明位移與時間滿足這樣的關(guān)系.通過位移與時間的關(guān)系,我們可以得出小車做的是勻減速直線運動,從關(guān)系式也可以得到小車的加速度的大小.
圖3
雖然筆者寫的這個Flash課件功能并不強大,但是因為Arduino的開源性,Flash的強大互動功能,相信可以開發(fā)出更多更有新意的實驗課件.也可以一改以往使用傳感器只能夠使用廠商提供界面來操作的缺點,開發(fā)出更利于學(xué)生接受的全新的界面,并且融入課件與人的互動功能,甚至可以通過課件來控制一些互動器件,來完成一些遠(yuǎn)程的實驗操作.
雖然現(xiàn)在傳感器在中學(xué)課堂已經(jīng)普及,但是一些農(nóng)村學(xué)?;蛘呓?jīng)濟(jì)狀況不是很好的學(xué)校還是沒有能力采購一整套的傳感器設(shè)備.而利用Arduino和Flash開發(fā)的DISLab不僅功能上可以達(dá)到商用DISLab的功能,并且價格上有著很大的優(yōu)勢.唯一的不足是對教師的要求過高,但是也可以通過會編程的教師預(yù)先制作各個Flash程序模塊,普通教師在制作時將各個模塊拼接便可制作有個性的實驗界面、甚至遠(yuǎn)程控制的實驗項目等等.
隨著科技的飛速發(fā)展,教師的教學(xué)工具乃至教學(xué)方法都在不斷的發(fā)生著變化.對于一名普通的教師來說,是一直守著自己的那點知識不變還是不斷的學(xué)習(xí)新的知識,決定了一名教師能否適應(yīng)未來的教學(xué).在一些商用DISLab不斷在中學(xué)普及的時候,我們當(dāng)然需要努力的學(xué)習(xí)這種新的教學(xué)工具帶來的新的教學(xué)方法,并不斷思考如何更好的利用這樣新的教學(xué)工具.在應(yīng)用的時候,也需要帶著一種批判的眼光,畢竟并非科技含量越高的就越好.筆者也是因為在使用這些商業(yè)DISLab軟件時感覺軟件界面不是很適合課堂教學(xué),所以才想到用Flash來開發(fā)DISLab的界面.但是自己制作的一些傳感器精度上卻很難達(dá)到預(yù)定的目標(biāo),所以Arduino和Flash開發(fā)DISLab的路其實非常艱難.筆者非常希望那些商業(yè)的DISLab廠商能夠公開其傳感器接口的具體參數(shù),讓我們教師也能使用自制的課件來讀取商業(yè)傳感器的數(shù)據(jù),畢竟這是一個崇尚創(chuàng)新、崇尚個性的時代.