鄭祥 謝作如
● 教材分析
《用安卓手機(jī)控制開源硬件》位于校本課程《安卓應(yīng)用程序的設(shè)計與開發(fā)》第三章,其教學(xué)內(nèi)容是開發(fā)能夠控制開源硬件的手機(jī)App。課程中選擇的開源硬件是虛谷號,支持藍(lán)牙和Wi-Fi兩種形式與手機(jī)通信。相對來說,用Wi-Fi形式更加方便,更符合物聯(lián)網(wǎng)的常見通信形式。本節(jié)課的教學(xué)內(nèi)容需要2個課時,采用連堂課的形式開展。要求學(xué)生能夠通過Web服務(wù)的方式,即WebGPIO來控制虛谷號,不僅要完成一系列的信息實驗,還要能自主開發(fā)安卓手機(jī)的應(yīng)用程序,通過App按鈕來控制虛谷號上的電風(fēng)扇模塊。
● 教學(xué)對象
本節(jié)課的教學(xué)對象是初中學(xué)生,他們不僅熟悉安卓手機(jī)App的一般開發(fā)過程,能夠用AppInventor2編寫簡單的App,還初步接觸過開源硬件,熟悉Arduino等開源硬件的引腳、PWM的使用,能夠用Mind+之類的軟件為開源硬件編寫代碼。
● 教學(xué)目標(biāo)
知識與技能目標(biāo):理解WebGPIO的概念,掌握在虛谷號上運行WebGPIO服務(wù)端的方法,掌握HTTP協(xié)議中的GET、POST請求方法;熟悉AppInventor2開發(fā)平臺中的Web客戶端組件,能開發(fā)控制虛谷號的安卓App應(yīng)用程序。
過程與方法目標(biāo):通過實驗操作,掌握AppInventor2開發(fā)平臺中Web客戶端組件的一般使用方法。
情感態(tài)度與價值觀目標(biāo):通過安卓手機(jī)App的開發(fā)對虛谷號上硬件模塊的控制,消除對遠(yuǎn)程物聯(lián)網(wǎng)控制的神秘感,提高對信息技術(shù)的學(xué)習(xí)興趣。
● 教學(xué)重難點
重點:POST方法的參數(shù)設(shè)置,掌握遠(yuǎn)程控制的安卓App的開發(fā)。
難點:理解POST和GET兩種HTTP請求方法的區(qū)別。
● 教學(xué)過程
1.激發(fā)興趣,導(dǎo)入新課
投屏展示:通過安卓App遠(yuǎn)程控制虛谷號上風(fēng)扇模塊的“打開”與“關(guān)閉”。提問:安卓手機(jī)App是怎么完成對風(fēng)扇模塊的控制的?虛谷號在這個過程中,又起到了什么作用呢?
引導(dǎo)學(xué)生討論并歸納:安卓手機(jī)App是通過無線Wi-Fi來發(fā)送控制風(fēng)扇模塊的信號給虛谷號;虛谷號起著信號接受的作用。
虛谷號上運行了一個Web服務(wù)WebGPIO;通過這個Web服務(wù),安卓手機(jī)App就可以非常方便地控制開源硬件虛谷號了。
設(shè)計意圖:通過展示遠(yuǎn)程控制風(fēng)扇模塊的開與關(guān),激發(fā)學(xué)生興趣,并引出主題。
2.講解新知,探知原理
虛谷號WebGPIO服務(wù):GPIO是通用型之輸入(GPI)輸出(GPO)的簡稱,即PIN引腳。顧名思義,WebGPIO可以通過Web的方式控制GPIO。
虛谷號的WebGPIO服務(wù)采用了簡單的設(shè)計,即用HTTP的GET請求方法獲取虛谷號PIN引腳狀態(tài),用POST請求方法控制引腳電平。
WebGPIO的協(xié)議:HTTP請求有很多種方式,最常見的是POST請求和GET請求。虛谷號的WebGPIO協(xié)議采用GET方式獲取引腳狀態(tài)信息,采用POST方式發(fā)送控制命令,具體參數(shù)介紹如下表所示。
①參數(shù)Pin對應(yīng)虛谷號上的引腳為:A0-A5,D0-D13;②參數(shù)Value對應(yīng)的值為:虛谷號對應(yīng)引腳的數(shù)值;③參數(shù)Type對應(yīng)控制的類型:可以是1、2、3,分別代表“digital”“analog”“servo”。
設(shè)計意圖:引入課堂主要內(nèi)容——原理講解,分散教學(xué)重難點。
3.實驗操作,驗證原理
(1)提問:通過POST/GET方法,是否真的能夠控制虛谷號?接下來要通過信息實驗來驗證。本次實驗需要明確完成哪些內(nèi)容呢?
引導(dǎo)學(xué)生列舉出實驗所需的操作任務(wù):①在虛谷號上運行WebGPIO服務(wù)器程序;②明確POST/GET方法向WebGPIO服務(wù)器程序傳值的參數(shù);③驗證POST/GET方法是否真的能控制虛谷號;④做好實驗記錄,完成實驗報告。
設(shè)計意圖:通過引導(dǎo)學(xué)生通過實驗的方式驗證自己的設(shè)想,并列舉實驗操作的任務(wù)步驟,讓學(xué)生能明確實驗任務(wù)目標(biāo)。
(2)學(xué)生以小組形式領(lǐng)取實驗器材,參考實驗報告,小組合作討論完成實驗。教師巡視學(xué)生的實驗操作,并及時給予幫助和引導(dǎo)。
設(shè)計意圖:通過實驗操作鞏固學(xué)生POST/GET方法參數(shù)的設(shè)置,為后面的項目開發(fā)做好準(zhǔn)備。
4.頭腦風(fēng)暴,開發(fā)項目
(1)教師介紹App invneotr2中的Web客戶端組件,指出:Web客戶端組件為非可視組件,用于發(fā)送HTTP的GET、POST、PUT及DELETE請求。App中需要增加Web客戶端組件,實現(xiàn)對虛谷號的控制。
(2)提問:借助WebGPIO功能,安卓手機(jī)App可以開發(fā)怎樣的應(yīng)用?要求學(xué)生小組合作討論,開展頭腦風(fēng)暴,把創(chuàng)意想法畫出來或?qū)懺诩埳稀#ń處熣故靖餍〗M的創(chuàng)意想法,引導(dǎo)學(xué)生一起分享交流,并吸收建議)
(3)教師提供相應(yīng)的硬件模塊和安卓App開發(fā)范例幫助文檔,要求學(xué)生通過小組合作開發(fā)項目,并完成作品的測試。教師巡視教室,并及時解答學(xué)生的各種問題。
5.作品展示,心得分享
教師投屏展示各小組完成的項目,并且邀請學(xué)生派代表展示運行效果。學(xué)生交流、分享自己小組內(nèi)的感受、收獲等。
這節(jié)課通過討論交流、實驗,讓學(xué)生嘗試了通過WebGPIO控制開源硬件虛谷號,而且還開發(fā)出了相應(yīng)的安卓App程序。其中涉及了GPIO的概念、POST/GET方法參數(shù)及AppInventor2的Web客戶端組件,體驗了軟硬件相結(jié)合的創(chuàng)客作品開發(fā)過程。
● 教學(xué)反思
本次課的學(xué)習(xí)主題是通過安卓手機(jī)控制開源硬件。學(xué)生通過“新知講解、探知原理”“實驗操作、驗證原理”“頭腦風(fēng)暴、開發(fā)項目”這三個主要環(huán)節(jié)逐步實現(xiàn)對知識技能的學(xué)習(xí)、實踐和運用。此外,在“實驗操作、驗證原理”環(huán)節(jié),學(xué)生能夠直接利用工具,驗證學(xué)習(xí)的WebGPIO協(xié)議,表現(xiàn)出莫大的興趣;在“頭腦風(fēng)暴、開發(fā)項目”環(huán)節(jié),學(xué)生在App測試方面,也用到了實驗中學(xué)到的方法??梢?,先完成信息實驗再應(yīng)用知識開發(fā)項目,學(xué)以致用,對一些復(fù)雜的信息技術(shù)知識學(xué)習(xí)是很有幫助的。