利用Arduino裝置測定反應速率—
兼談此裝置的教學特色
鄭志鵬
臺北市立龍山國民中學
[email protected]
Arduino是什麼?在創客(Maker)風潮席捲全球的這幾年,就算是不會寫程式的人,或多或少會聽過或看過這個名詞。實際上,Arduino開發板是一種開源硬體,裡面整合一些微處理器和控制器的電路板。簡單地說,它就是一台小電腦,有潛力可以做很多事,只是我們要教它,它才會做一些事。我們要怎麼教會這小電腦做事?就是用程式的語言來教會它。
其實,在日常生活中有很多電器裝置裡有一些具有單晶片的小電路板。它就像一台小電腦,由設計者寫入程式,就能讓這塊電路板具備特定的功能,在冷氣、冰箱、電視遙控器、音響和紅外線自動感應沖水系統等電子設備裡扮演某種角色。這不是什麼最新科技,而是人類社會已經使用很久的技術。
在Arduino問世之後,這樣的技術就從專門的業界下放到普羅大眾。大眾可以用便宜的價格購買零件自己組裝,用相對簡單易學的程式語言寫程式並灌進去,就能擁有專屬於自己的,100%客製化的電子裝置。如果你問Arduino的玩家們「這個裝置到底可以作些什麼?」,他們會告訴你「什麼都可以啊,只要你想得到…」。
在這幾年來,創客思維席捲教育圈,Arduino和其他相關的軟硬體,大量的出現在教育界中,學生和教師常以Arduino或其他開發板進行各種專案課程。這些課程大多是設計機器人、自走車或其他自動控制的裝置。這些專案課程可以訓練學生進行編程和機電整合等科技方面的學習。我身為科學教師,看到這些裝置的想法就是:「Arduino裝置可以用在科學教育上嗎?」如果你問Arduino的玩家們,他們也會告訴你:「可以啊,只要你想得到」。於是,在經過一番努力之後,我從一個寫程式和電子裝置設備的門外漢,慢慢學習並瞭解這些元件的運作原理,也慢慢有能力設計一些裝置來幫助科學課程的進行。
「探究學習」是科學教育的核心,學習探究自然現象,學生要知道如何觀察現象、提出假設、設計實驗、進行實驗、收集資料並做出結論。在中學階段,科學教師面臨的挑戰是,如何用淺顯易懂的方式,讓學生進行適當的實驗,取得可信的數據,並且學習如何分析數據做出論述。當然,這裡所謂的「適當」和「可信」的標準,是中學教育的標準,而非科學家的標準。
目前在中學課程裡面,取得數據的方式,有時會採取傳統的器材,例如:使用上皿天平,有時使用容易操作且容易取得數據的方式,例如:生物課用「接尺」來取得人體反應時間;化學課用硫代硫酸鈉與鹽酸反應產生不透明的硫沉澱,直到「遮住十字」的時間測定來測量反應速率。
以「遮住十字」的時間取得化學反應速率來說,就有很明顯的實驗誤差來自於觀察者判定的標準不一致。這樣的實驗方式取得的數據誤差很大,有時會造成實驗數據誤差大到無法分析。若要以高階的儀器來取得夠好的數據,通常就需要購買昂貴的器材。儀器價格太高或是難以取得夠好的實驗數據,也是科學教師不願意進行真實實驗的原因之一。
我們可以利用Arduino來設計一個相對便宜、原理易懂且能取得相對精準結果的實驗裝置。這個裝置要以Arduino代替人眼來判定「遮住十字」的時間,能讓學生容易上手,而且在簡短的解說之後學生就能使用。
如何用Arduino組裝實驗裝置呢?我們可以製作一組光閘門搭配計時器,即可組裝完成。光閘門是由一組雷射模組(見圖一左)和光敏電阻模組(見圖一中)組成的。雷射模組是一個可以發出雷射的LED燈,訊號輸入就發光。光敏電阻模組是由一個硫化鎘的光敏電阻,串聯一個電阻,使環境光強度轉成電位訊號,並以Arduino讀取。我們設定亮度越高時,訊號的數字就越大,數字分布從0~1023。在實際使用時,將雷射直接打到光敏電阻上,可以將亮度輸出數字拉到約1000。沒有雷射光時,由於有環境光,數字有時會達到五六百甚至以上。此時,可以拿一個黑色塑膠套(例如熱縮套)套在光敏電阻上,就可以減少環境光的影響(見圖一右)。
圖一:雷射模組(左);雷射光射入的光敏電阻模組(中);以及套上熱縮套阻隔環境光的光敏電阻模組(右)
在操作此實驗裝置時,一開始先調整雷射方向,讓雷射打到光敏電阻上,再由Arduino收取光敏電阻的數值。放置裝有1M硫代硫酸鈉的燒杯(或試管)在光敏電阻與雷射模組之間,由於硫代硫酸鈉的水溶液是透明的,因此光敏電阻讀到的亮度數值是高的(見圖二左),此時設定一個數值作為閾值(threshold)(見圖二中),當光敏電阻數值低於閾值時,就代表「遮住」(見圖二右)。
圖二:當雷射光直射光敏電阻時,顯示數值超過1000(左);用手遮住雷射時,顯示數值降低到327左右(中);以及用藍色旋鈕調整閾值到500,當亮度數值降低到500以下時,視為「遮住」(右)。
放置裝有1M硫代硫酸鈉的燒杯(或試管)在光敏電阻與雷射模組之間,設定並調整閾值後(見圖三左),倒入1M的鹽酸,並且按下紅色按鈕,讓計時器開始計時(見圖三右)。
圖三:放置裝有硫代硫酸鈉水溶液的燒杯(或試管)在雷射與光敏電阻之間,調整容器位置,讓雷射光可以直射光敏電阻(左);在設定完成後,倒入鹽酸並且按下紅色按鈕,碼表開始計時,同時顯示亮度變化(右)。
隨著反應的進行,硫的沉澱會越來越多(見圖四左)。當硫的沉澱物會越來越多時,就會遮住雷射光,使光敏電阻的數值越來越低,低於設定的閾值時,就會自動停止計時(見圖四右)。
圖四:當產生硫沉澱後,越來越多的雷射光會遮住,使光敏電阻數值下降(左);以及當亮度數值降低到閾值以下之後,計時器就自動停止計時,顯示反應時間(右)。
在不同濃度的硫代硫酸鈉溶液和鹽酸混合之後,當計時器就自動停止計時(設定閾值為300),顯示反應時間。在同一條件下,進行三次實驗並取得平均反應時間。
使用不同濃度的硫代硫酸鈉溶液和鹽酸反應時間的實驗數據和處理,如表一所示。
表一:硫代硫酸鈉溶液和鹽酸反應速率的實驗數據
硫代硫酸鈉濃度 |
第一次 |
第二次 |
第三次 |
平均 |
時間倒數 |
0.4 |
33.33 |
32.66 |
33.19 |
33.06 |
0.0302 |
0.5 |
27.87 |
26.94 |
26.54 |
27.12 |
0.0369 |
0.7 |
18.84 |
18.84 |
18.96 |
18.88 |
0.0530 |
0.8 |
17.37 |
17.10 |
16.57 |
17.01 |
0.0588 |
0.9 |
15.24 |
15.91 |
15.78 |
15.64 |
0.0639 |
1.0 |
14.58 |
14.44 |
14.72 |
14.58 |
0.0686 |
以硫代硫酸鈉溶液的濃度對反應時間倒數作圖,其趨勢線如圖五所示。
圖五:硫代硫酸鈉溶液的濃度與反應速率的關係
實驗發現:硫代硫酸鈉溶液的濃度與反應時間的倒數之間呈現線性關係,亦即硫代硫酸鈉溶液的濃度越高,反應時間的倒數越小。
基本上,這個反應速率的測定與傳統課本的設定相同,只是以Arduino取代人的眼睛(傳碼表的手。解說實驗原理與傳統課程的差異不大。教師在解說實驗的時候,也可以先說明傳統課本設計的測量方式),讓學生討論傳統課本可能的缺點。引進Arduino裝置,讓學生比較兩種實驗方法的差別。
以傳統實驗的方式,學生觀看「遮住十字」的判定時間,有時候會不確定地提出「到底遮住了沒?」。不同學生的判定標準有時差異很大,甚至差異高達50%。相對於傳統的作法,Arduino實驗裝置的再現性高。實際測試的結果,反應時間差異小於8%。
在中學階段的實驗,很少有機會探討「閾值」,例如:在「純水是不導電的,電解質溶解在水中時,水溶液會導電」。測試導電的裝置是電池和燈泡相接,然後中間電路被截斷。被截斷的部分插到水溶液中,再觀察燈泡是否發光來判斷水溶液是否導電。對國中生而言,測量的觀念就是很簡單的非黑即白。釐清「背景值」和「訊號」的觀念,對於國中生來說比較困難。因此教師在進行實驗的時候,要先設定閾值,讓背景值消失,讓訊號突顯出來,例如:串聯一個適當的電阻,或是選用雜質更少的水。在Arduino實驗裡,教師可以嘗試作簡單的說明。討論「什麼叫做被遮住」、「數值降低到多少的時候,叫做遮住了」。這個閾值的設定,是實驗進行過程中的一部分。傳統的實驗方式,是用「眼睛看不到十字」作為閾值的觀念。只是對人來說,這個數值會浮動。以光閘門的實驗來說,因為要經由人為設定數值的關係,就可以藉由這過程簡單說明「閾值」觀念。
以數位化測量實驗數據,除了可以取得相對穩定的數值之外,還可以在實驗課程的設計上進行一些調整,讓課程進行更加順暢有效率。例如:在觀察水沸點的實驗中,我們想長時間加熱水來觀察水溫上升的趨勢,當溫度到達沸點時,繼續加熱不會讓溫度繼續上升的現象。如果實驗活動的設計是讓學生守在酒精燈旁,定時紀錄溫度的數據直到沸騰,往往需要耗費許多時間。如果使用Arduino裝置來進行實驗,設定每30秒取得一個數據。就可以在裝置架設好之後,開始實驗並自動收取數據。在這段時間,教師就可以先解說別的主題。等到水沸騰,再將數據製作成統計圖後,教師就可以解說水從常溫到沸騰的加熱趨勢線。
使用Arduino裝置,除了可以取得需要較長時間的實驗數據外,也可以取得極短時間的實驗數據,例如:測量聲音速度。如果要測量聲音速度,對一般中學實驗室來說,會遇到速度太快,時間太短的問題。若使用Arduino來進行測量音速,可以取得毫秒甚至微秒等級的時間間隔的數據,可以輕易的取得人類反應時間以內的實驗數據。
最後也是最大的優點就是教師可以依照實驗的需求,製作自己的客製化實驗裝置。市面上有許多套裝的軟硬體可以用於課堂中進行實驗。然而,這些軟硬體的設計是不是符合教師上課的需求,那就不一定了。在這個創客的年代,身為一個科學教師,其實可以應用Arduino、3D列印和雷射切割機等設備,製作一套自己的實驗裝備,視自己與學生的狀況進行調整功能,讓我們更能夠在課堂中進行探究實驗課程。
對於科學課程的進行,最重要的是要學生學習到科學的種種面向。使用方便取得數據的工具,有時候會讓「取得數據」的過程太過輕易而缺少科學實驗學習的深刻感受。教師有時候會希望學生去感受守在實驗裝置旁邊,耐心的取得數據的過程,細心的操作器材,以取得較精準的數據。這些情意面的學習,可能會因工具的方便使用而缺乏或弱化。在教學目標中,希望學生學習某一種測量的技術或背後的原理,也會因工具的改變而產生變化。因此,在使用Arduino或其他方便的工具時,在達成方便或加速的目的之下必須要小心使用。原本該有的技能和情意方面的學習會不會被弱化了?如果會的話,教師應該視情況而定。在這個單元,若因運用Arduino工具而削弱的部分,應該在其他單元強化。
另外,使用Arduino進行測量,有一個部分要非常小心的就是往往這些測量的裝置並沒有經過校正,可能會有數據不準的問題。以我的經驗來說,在一般教學的使用上,是綽綽有餘的。如果只是要觀看定性的比較數值,那更是沒有問題。然而,如果要取得在科學研究上精準的數據,或是在測量體溫判斷是否發燒的醫療用途的話,就必須更謹慎的看待數據的精準度了。
Arduino是一個方便有效的工具,可以幫助我們達成許多教學目標,也能有效的增進教學的效率。雖然教師剛開始接觸對Arduino不熟悉,但是經過一段時間的學習,一定可以自己製作一些工具來輔助教學。在我學習Arduino的過程中,領悟到許多以前不甚清楚的測量相關的概念,是非常有價值的學習。在相對便宜的價格和客製化的優點之下,教師一定可以讓探究實驗的教學有更多可能性。