吳俊杰
創(chuàng)客項(xiàng)目的評價(jià)往往是一個(gè)很多人都關(guān)注的問題,我在教學(xué)中更加傾向于一個(gè)創(chuàng)客作品中成本和產(chǎn)出之間的差距、創(chuàng)客作品的可分享性和創(chuàng)客作品分享之后其他人的效仿情況。在2016年的全國電腦作品比賽中,中央電化教育館首次引入了創(chuàng)客項(xiàng)目,其評審標(biāo)準(zhǔn)包括規(guī)范性、創(chuàng)新性、技術(shù)性和藝術(shù)性,其中規(guī)范性的一個(gè)重要指標(biāo)就是這個(gè)作品是否有一個(gè)他人可以效仿的技術(shù)文檔。Mixly開源項(xiàng)目設(shè)計(jì)的寫作過程也是一個(gè)比較規(guī)范的技術(shù)文檔的寫作過程,就像語文教材中的名家名篇和標(biāo)準(zhǔn)范文告訴學(xué)生如何用文字來敘事狀物一樣,創(chuàng)客教材中的文字能夠幫助學(xué)生寫好一篇規(guī)范、邏輯清晰、敘述清楚的技術(shù)文檔,如果能夠融合適當(dāng)?shù)膫€(gè)人風(fēng)格就更好了。本次,我們將做一個(gè)很簡單的創(chuàng)客項(xiàng)目——新舊電池檢測器。
● 制作:信息的輸入
在UNO控制板的規(guī)范中,USB口向上,右側(cè)為數(shù)字輸出,左側(cè)為電源和模擬輸入,電源區(qū)常用的端口為5V和GND,5V代表USB輸出電壓,也是板子上端口的最高電壓,之前我們點(diǎn)亮一個(gè)LED時(shí),會(huì)將LED的正極的電壓升高到5V,但是數(shù)字輸出引腳的電流輸出能力很弱,不能驅(qū)動(dòng)像舵機(jī)一類的大電流元器件,這時(shí)需要使用電源區(qū)的5V引腳,GND表示0V。模擬輸入?yún)^(qū)有A0、A1、A2、A3、A4、A5共計(jì)6個(gè)模擬輸入引腳,每個(gè)孔相當(dāng)于一個(gè)電壓表,其輸入范圍為0~1023的整數(shù),0對應(yīng)0V電壓,1023對應(yīng)5V電壓,具體的對應(yīng)關(guān)系,我會(huì)在玩轉(zhuǎn)環(huán)節(jié)中具體介紹。
像普通的電壓表一樣,我們需要連接一個(gè)正極的紅色夾子和負(fù)極的黑色夾子。用一個(gè)夾子夾住另一個(gè)夾子,撥去夾子的絕緣套,在夾子的孔中穿入導(dǎo)線,穿兩圈,擰緊導(dǎo)線,再將絕緣套套回。導(dǎo)線的長度大約為45cm,一端連接夾子,另一端連接控制板,需要提前撥線,如圖1、圖2所示。

紅色導(dǎo)線相當(dāng)于電壓表的正極(紅表筆)將其連接到A0上,黑色導(dǎo)線相當(dāng)于電壓表的負(fù)極(黑表筆)將其連接到GND上,連接需要使用兩頭長排針和繞線棒(如圖3)。

實(shí)驗(yàn)發(fā)現(xiàn),在黑表筆接電池負(fù)極、紅表筆接電池正極的情況下,當(dāng)電池為新電池時(shí),圖3中的LED亮;當(dāng)電池為舊電池時(shí),LED不亮。這樣我們就完成了一個(gè)初步的新舊電池檢測器的研發(fā)工作(如圖4)。
● 改裝:增加指示燈
從系統(tǒng)的美觀和安全性的角度考慮,最好不要把電路板裸露在外,可以將LED引出在盒子上,這樣更加美觀,還可以在盒子上寫出新舊電池檢測器的使用方式。在此之前,我們一般將LED直接插在數(shù)字輸出端口上,但是從更加專業(yè)的角度來看,應(yīng)該在LED的正極或者負(fù)極一端串聯(lián)一個(gè)保護(hù)電阻,這樣能夠讓LED的使用壽命更長,電阻又起到限制電流的作用。一般來說,綠色LED的工作電壓為2V,D13端口電壓為5V,LED的工作電流為10mA即0.01A,這樣保護(hù)電阻兩端的電壓就是5V-2V=3V,其通過的電流也是0.01A,通過歐姆定律可以測算出保護(hù)電阻的阻值為其兩端的電壓除以通過它的電流,數(shù)值為3V/0.01A=300歐姆(如圖5)。這體現(xiàn)出,在創(chuàng)客項(xiàng)目中需要綜合利用各個(gè)學(xué)科的知識特別是物理學(xué)的知識的特點(diǎn)。

電阻和LED的負(fù)極相連,需要用一段導(dǎo)線將針腳串聯(lián)起來,保護(hù)電阻的另一端接GND,LED的正極接D13端口,這樣我們就將LED固定在了盒子上(如圖6)。
● 玩轉(zhuǎn):“如果……否則……”結(jié)構(gòu)
我們在使用通訊菜單中的“打印串口(自動(dòng)換行)”指令時(shí),可以查看A0端口的數(shù)值(如圖7)。

在串口查看器中我們注意到A0端口的數(shù)值在不斷變化,這種變化是由空氣中的隨機(jī)電磁干擾造成的(如圖8)。
但是我們在將A0端口和5V端口連接的時(shí)候,會(huì)發(fā)現(xiàn)串口監(jiān)視器的數(shù)值變?yōu)?023,并且處于穩(wěn)定輸出狀態(tài)(如下頁圖9)。

既然要判斷電池的電壓是否大于1.5V,我們可以將一節(jié)電池放在A0端口上,實(shí)驗(yàn)發(fā)現(xiàn)數(shù)據(jù)始終保持在320左右,而舊電池在300以下。這個(gè)現(xiàn)象可以解釋為:A0端口的數(shù)值和輸入電壓成正比,1.5V可以換算為(1.5V/5V)×1023=306.9,由于A0端口輸入值為整數(shù),我們可以判斷當(dāng)A0端口數(shù)值大于307的時(shí)候13號燈亮,否則13號燈滅(如圖10)。

在Mixly中使用如果指令時(shí)需要在如果指令中添加否則結(jié)構(gòu),這就需要點(diǎn)擊如果菜單中的齒輪按鈕添加否則指令。在“如果……否則……”結(jié)構(gòu)中設(shè)定邏輯判斷值為真時(shí),端口13數(shù)值為高,LED燈亮,邏輯判斷值為假時(shí),端口13的數(shù)值設(shè)為低,LED熄滅(如圖11)。這樣就完成了LED的設(shè)置,可以用于檢測電池的新舊。
● 分享:在網(wǎng)絡(luò)上尋找問題的答案
我在實(shí)驗(yàn)中發(fā)現(xiàn),不做測量時(shí)LED一直都在閃爍,產(chǎn)生這個(gè)現(xiàn)象的原因是在A0端口空載時(shí),數(shù)值會(huì)受到空氣中隨機(jī)電磁干擾的影響,一直變化,數(shù)值有時(shí)大于307,有時(shí)小于307,所以LED會(huì)閃爍。分享本身并不總是告訴他人一個(gè)已經(jīng)很完整的問題解決方案,一個(gè)有待解決的問題也是非常值得分享的,它能夠細(xì)致而規(guī)范地描述這個(gè)問題。大家可以參考www.dfrobot.com.cn上的各種社區(qū)上的帖子,看一看有沒有人提過類似的問題,或者向他人提問尋找答案,這些經(jīng)歷都是非常重要的學(xué)習(xí)過程(如圖12)。

至此,我們已從數(shù)字輸出端口的學(xué)習(xí),轉(zhuǎn)向數(shù)字輸入端口的學(xué)習(xí),并且通過程序邏輯將輸入和輸出結(jié)合起來,雖然這只是一個(gè)比較簡單的“如果……否則……”結(jié)構(gòu),但是已經(jīng)能夠看出一個(gè)項(xiàng)目學(xué)習(xí)的雛形,接下來有必要改進(jìn)這個(gè)設(shè)計(jì),一是解決LED閃爍的問題,二是希望提高測量的精度,真正做一個(gè)電壓表。我們在這個(gè)過程中不斷地發(fā)現(xiàn)問題和解決問題,同時(shí)這個(gè)過程是積極主動(dòng)的,是創(chuàng)客教育中非常獨(dú)特的一種學(xué)習(xí)體驗(yàn),而且估算成本以后,我們可以發(fā)現(xiàn)“新舊電池檢測器”是一個(gè)很實(shí)用的“市場空白”,此時(shí)解決這個(gè)問題的動(dòng)力就更大了。
親愛的讀者,您能解決這個(gè)問題嗎?答案見下期。
本案例的分享視頻將會(huì)在以下公眾號中陸續(xù)登載。