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