創客項目的評價往往是一個很多人都關注的問題,我在教學中更加傾向於一個創客作品中成本和產出之間的差距、創客作品的可分享性和創客作品分享之後其他人的效仿情況。在2016年的全國電腦作品比賽中,中央電化教育館首次引入了創客項目,其評審標準包括規範性、創新性、技術性和藝術性,其中規範性的一個重要指標就是這個作品是否有一個他人可以效仿的技術文檔。Mixly開源項目設計的寫作過程也是一個比較規範的技術文檔的寫作過程,就像語文教材中的名家名篇和標準範文告訴學生如何用文字來敘事狀物一樣,創客教材中的文字能夠幫助學生寫好一篇規範、邏輯清晰、敘述清楚的技術文檔,如果能夠融合適當的個人風格就更好了。本次,我們將做一個很簡單的創客項目——新舊電池檢測器。
● 製作:信息的輸入
在UNO控制板的規範中,USB口向上,右側為數字輸出,左側為電源和模擬輸入,電源區常用的埠為5V和GND,5V代表USB輸出電壓,也是板子上埠的最高電壓,之前我們點亮一個LED時,會將LED的正極的電壓升高到5V,但是數字輸出引腳的電流輸出能力很弱,不能驅動像舵機一類的大電流元器件,這時需要使用電源區的5V引腳,GND表示0V。模擬輸入區有A0、A1、A2、A3、A4、A5共計6個模擬輸入引腳,每個孔相當於一個電壓表,其輸入範圍為0~1023的整數,0對應0V電壓,1023對應5V電壓,具體的對應關係,我會在玩轉環節中具體介紹。像普通的電壓表一樣,我們需要連接一個正極的紅色夾子和負極的黑色夾子。用一個夾子夾住另一個夾子,撥去夾子的絕緣套,在夾子的孔中穿入導線,穿兩圈,擰緊導線,再將絕緣套套回。導線的長度大約為45cm,一端連接夾子,另一端連接控制板,需要提前撥線,如圖1、圖2所示。
紅色導線相當於電壓表的正極(紅表筆)將其連接到A0上,黑色導線相當於電壓表的負極(黑表筆)將其連接到GND上,連接需要使用兩頭長排針和繞線棒(如圖3)。實驗發現,在黑表筆接電池負極、紅表筆接電池正極的情況下,當電池為新電池時,圖3中的LED亮;當電池為舊電池時,LED不亮。這樣我們就完成了一個初步的新舊電池檢測器的研發工作(如圖4)。
● 改裝:增加指示燈
從系統的美觀和安全性的角度考慮,最好不要把電路板裸露在外,可以將LED引出在盒子上,這樣更加美觀,還可以在盒子上寫出新舊
電池檢測器的使用方式。在此之前,我們一般將LED直接插在數字輸出埠上,但是從更加專業的角度來看,應該在LED的正極或者負極一端串聯一個保護電阻,這樣能夠讓LED的使用壽命更長,電阻又起到限制電流的作用。一般來說,綠色LED的工作電壓為2V,D13埠電壓為5V,LED的工作電流為10mA即0.01A,這樣保護電阻兩端的電壓就是5V-2V=3V,其通過的電流也是0.01A,通過歐姆定律可以測算出保護電阻的阻值為其兩端的電壓除以通過它的電流,數值為3V/0.01A=300歐姆(如圖5)。
這體現出,在創客項目中需要綜合利用各個學科的知識特別是物理學的知識的特點。電阻和LED的負極相連,需要用一段導線將針腳串聯起來,保護電阻的另一端接GND,LED的正極接D13埠,這樣我們就將LED固定在了盒子上(如圖6)。
● 玩轉:「如果……否則……」結構
我們在使用通訊菜單中的「列印串口(自動換行)」指令時,可以查看A0埠的數值(如圖7)。
在串口查看器中我們注意到A0埠的數值在不斷變化,這種變化是由空氣中的隨機電磁幹擾造成的(如圖8)。
但是我們在將A0埠和5V埠連接的時候,會發現串口監視器的數值變為1023,並且處於穩定輸出狀態(如下頁圖9)。
既然要判斷電池的電壓是否大於1.5V,我們可以將一節電池放在A0埠上,實驗發現數據始終保持在320左右,而舊電池在300以下。這個現象可以解釋為:A0埠的數值和輸入電壓成正比,1.5V可以換算為(1.5V/5V)×1023=306.9,由於A0埠輸入值為整數,我們可以判斷當A0埠數值大於307的時候13號燈亮,否則13號燈滅(如圖10)。
在Mixly中使用如果指令時需要在如果指令中添加否則結構,這就需要點擊如果菜單中的齒輪按鈕添加否則指令。在「如果……否則……」結構中設定邏輯判斷值為真時,埠13數值為高,LED燈亮,邏輯判斷值為假時,埠13的數值設為低,LED熄滅(如圖11)。
這樣就完成了LED的設置,可以用於檢測電池的新舊。
● 分享:在網絡上尋找問題的答案
我在實驗中發現,不做測量時LED一直都在閃爍,產生這個現象的原因是在A0埠空載時,數值會受到空氣中隨機電磁幹擾的影響,一直變化,數值有時大於307,有時小於307,所以LED會閃爍。分享本身並不總是告訴他人一個已經很完整的問題解決方案,一個有待解決的問題也是非常值得分享的,它能夠細緻而規範地描述這個問題。大家可以參考www.dfrobot.com.cn上的各種社區上的帖子,看一看有沒有人提過類似的問題,或者向他人提問尋找答案,這些經歷都是非常重要的學習過程(如圖12)。
至此,我們已從數字輸出埠的學習,轉向數字輸入埠的學習,並且通過程序邏輯將輸入和輸出結合起來,雖然這只是一個比較簡單的「如果……否……」結構,但是已經能夠看出一個項目學習的雛形,接下來有必要改進這個設計,一是解決LED閃爍的問題,二是希望提高測量的精度,真正做一個電壓表。我們在這個過程中不斷地發現問題和解決問題,同時這個過程是積極主動的,是創客教育中非常獨特的一種學習體驗,而且估算成本以後,我們可以發現「新舊電池檢測器」是一個很實用的「市場空白」,此時解決這個問題的動力就更大了。