吳俊杰
“鬧鐘”是非常常見的創(chuàng)客作品的主題,我們發(fā)現(xiàn)凡是跟人的生活和健康密切相關(guān)的產(chǎn)品,其價值總會高一些,如一個LED在閃爍,雖然做成一個閃燈和做成一個鬧鐘或做成一個用來美容護(hù)膚的光波美容裝置的原材料的成本都是類似的,但卻因為同一個原理用在了具有不同附加值的領(lǐng)域,它們的價格就產(chǎn)生了很大的差別。這就如同寫作文,使用同樣的文字,不同的組合、不同的對象、不同的時機就自然產(chǎn)生了不同的價格。本次,我們設(shè)計的是一個免打擾鬧鐘,它安裝在眼罩中,當(dāng)設(shè)定的時間到來時,眼罩會發(fā)出紅色的閃光,被眼睛接收到,達(dá)到叫醒使用者的目的。相對于聲音或者震動的叫醒方式,這種原理的鬧鐘對他人的影響更小一些。
制作:制作一個眼罩鬧鐘的原型
原型階段是創(chuàng)客作品常常需要經(jīng)歷的一個設(shè)計階段,這個階段的核心要求是制作一個核心功能完善的樣本,用于檢驗這件作品最基礎(chǔ)的設(shè)置。此次制作需要一個UNO主板作為主控,一個旋鈕來設(shè)定多長時間發(fā)出警報,一個LED來表示警報來臨。在原型階段的接線,我們之前常常采用繞線器來完成,繞線器的優(yōu)點是方便制作作品,便于將電路圖和實物鏈接對應(yīng)起來,但其效率和速度遠(yuǎn)不如面包板。因此,此次的連線階段,我們使用面包板來實現(xiàn)。
如圖1所示,面包板兩側(cè)標(biāo)有“+”號和“-”號的兩行都是相互導(dǎo)通的,中間abcde這個單元同一列之間是相互導(dǎo)通的,fghij這個單元中同一列也是相互導(dǎo)通的,但不同的單元之間是不導(dǎo)通的。從中我們能夠看出,旋鈕的最外側(cè)引腳實際上和棕色的線之間是導(dǎo)通的,同理中間引腳和綠色的線導(dǎo)通,另一側(cè)引腳和紅色的線導(dǎo)通。
如果將面包板的背膠撕去,我們可以更加明顯地看到這種連通關(guān)系,如圖2所示。
導(dǎo)通的行或者列背后是用同一塊鐵片連接的,這樣我們可以使用面包板更加快速地將旋鈕和UNO主控板連接起來。具體的連接方式為,中間的線連A0端口,兩側(cè)分別接5V和GND端口,如圖3所示。
我們將旋鈕旋轉(zhuǎn)到GND接線的一側(cè),重啟主控板的電源,此時會看到主板上的L指示燈開始閃爍,這就是免打擾鬧鐘開始運行時程序的執(zhí)行效果。稍稍旋向5V一側(cè),我們便能夠看到指示燈不再閃爍,這表示系統(tǒng)已經(jīng)進(jìn)入鬧鐘提醒模式,這時連接串口監(jiān)視器可以得知幾分鐘以后LED開始閃爍,如圖4所示,系統(tǒng)顯示8分鐘后LED開始閃爍。
我們將旋鈕旋轉(zhuǎn)到不同的位置,就可看到定時提醒功能的效用,如將旋鈕旋動到5V的時候,我們可以看到旋鈕會在480分鐘也就是8小時之后開始閃爍。這樣我們就完成了鬧鐘原型的制作,接下來我們需要將其改裝為一個真正可以使用的鬧鐘。
改裝:完成免打擾鬧鐘的制作
首先,我們來規(guī)范一下電路圖的連接圖,如圖5所示。
按照圖5連接電路,裁剪3段6cm寬、80cm長的布條,在中間的布條上用繞線器接線,接著前后各覆蓋一層布條,讓導(dǎo)線和LED都被包裹在布條里,然后用縫紉機或者針線封口,就形成了如圖6所示的眼罩。需要特別強調(diào)的是,在制作眼罩的過程中,需要注意測量眼睛的瞳距以適應(yīng)不同用戶的需求。
其次,給旋鈕設(shè)計一個操控面板,旋轉(zhuǎn)旋鈕到不同的位置(如圖7),然后結(jié)合串口反饋的數(shù)值,記錄鬧鐘的設(shè)置結(jié)果,標(biāo)記在紙盒上,形成操作面板。
這樣,我們就完成了定時提醒免打擾鬧鐘的設(shè)計和制作,圖8是鬧鐘的使用效果,利用眼前的閃爍的紅光可以有效地叫醒熟睡中的用戶。
如果需要改進(jìn)這個鬧鐘,可以在電路上添加一個蜂鳴器,這樣除了閃光之外,還有一個聲音提醒功能確保有效叫醒。如圖9所示,這是創(chuàng)客項目中常常使用的用模擬電路來達(dá)到數(shù)字電路效果的做法。
玩轉(zhuǎn):使用系統(tǒng)計時器
從程序的角度來看,這個項目一開始期望做一個8小時的鬧鐘,如圖10所示,但效果并不理想。
后來,我們發(fā)現(xiàn)原來是程序有些偏差,那就是延時效果始終是錯誤的,這時我們用串口監(jiān)視器查看變量item的數(shù)值發(fā)現(xiàn)其竟然出現(xiàn)了負(fù)數(shù),這是為什么呢?原來主要的錯誤在于變量的類型,整數(shù)型變量的數(shù)值變化范圍是-32768~32768,而需要換算的范圍的最大值28800000卻超出這個范圍很多倍;從而導(dǎo)致數(shù)據(jù)出現(xiàn)錯誤,如圖11所示。
因此,我們對這個程序進(jìn)行了改進(jìn),主要有兩個關(guān)鍵點:一是建立變量time表示等待時間,但是time的單位是秒而不是毫秒,這樣其最大值縮小了1000倍,變?yōu)?8800,就不再超出數(shù)據(jù)范圍了;二是用系統(tǒng)運行時間/1000的結(jié)果與設(shè)置的鬧鐘時間相比較,然后判斷是否執(zhí)行鬧醒程序,這樣程序在執(zhí)行的過程中不斷地顯示串口反饋出的設(shè)定好的鬧醒時間,可便于對旋鈕進(jìn)行標(biāo)定,如圖12所示。
此外,還要對部分旋鈕在旋動到0的時候偶爾出現(xiàn)的數(shù)據(jù)漂移現(xiàn)象進(jìn)行修正,讓A0數(shù)值小于10的時候,time的數(shù)值始終設(shè)定為0。我們通過不斷地解決算法方面的一些問題,既學(xué)習(xí)了數(shù)據(jù)結(jié)構(gòu)方面的知識,又提高了解決問題的能力。
分享:基于產(chǎn)品的學(xué)習(xí)
至此,一個可以用來售賣的創(chuàng)客DIY套裝就完成了。我們之前曾經(jīng)描述過這樣一種觀點:一個已經(jīng)下載好程序的主控板的價格和一個沒有任何程序的主控板的價格是不同的,因為在下載程序的過程中,程序設(shè)計者的知識產(chǎn)權(quán)價值得到了體現(xiàn)。而在家庭創(chuàng)客空間孵化課程的淘寶店上,則允許用戶自己出版DIY套件,只需要使用相應(yīng)的元器件設(shè)計出一個DIY產(chǎn)品,像這個免打擾鬧鐘一樣,淘寶店主就會將其制作稱為一個DIY套件并且像正規(guī)出版社一樣向作者支付知識產(chǎn)權(quán)的費用,如圖13所示。
這樣做就避免了學(xué)生不知道分享一個創(chuàng)客作品以后能夠有哪些具體的收益的問題發(fā)生。我們將創(chuàng)客教育中通過一個模塊可重用的產(chǎn)品的設(shè)計的過程來體現(xiàn)算法思維、設(shè)計思維、建模思維、產(chǎn)品思維即創(chuàng)客思維提升過程的學(xué)習(xí)方式稱為基于產(chǎn)品的學(xué)習(xí)。在這一學(xué)習(xí)方式中,學(xué)生不再只是被動地做一個東西,而是很有可能成為一個新的流行單品的設(shè)計者。這個過程,打破了課堂的限制,突破了學(xué)校的圍墻,學(xué)生的收獲將是真實的社會和整個人生。
本案例的分享視頻將會在以下公眾號中陸續(xù)登載。