趙偉剛 山東省淄博市基礎(chǔ)教育研究院
候繼倉(cāng) 山東省日照市教育科學(xué)研究院
孫波 山東省教育科學(xué)研究院
“開源硬件項(xiàng)目設(shè)計(jì)”是《普通高中信息技術(shù)課程標(biāo)準(zhǔn)(2017年版2020年修訂)》(以下簡(jiǎn)稱“課程標(biāo)準(zhǔn)”)設(shè)置的選擇性必修課程,旨在滿足學(xué)生個(gè)性化發(fā)展需要,激發(fā)和培養(yǎng)學(xué)生的創(chuàng)新興趣和動(dòng)手實(shí)踐能力。[1]“開源硬件項(xiàng)目流程”是課程模塊的第二部分,通過(guò)該部分學(xué)習(xí),能夠讓學(xué)生對(duì)開源硬件項(xiàng)目開發(fā)過(guò)程有一個(gè)宏觀的了解,幫助學(xué)生從整體把握后續(xù)的項(xiàng)目開展,提前思考預(yù)期項(xiàng)目成果,掌握從創(chuàng)意生成到調(diào)試迭代的科學(xué)方法,為學(xué)生能夠順利開展基于開源硬件的作品設(shè)計(jì)與制作奠定基礎(chǔ)。
“開源硬件項(xiàng)目流程”對(duì)應(yīng)課程標(biāo)準(zhǔn)內(nèi)容要求的6.2,該部分內(nèi)容可以分解為兩塊:一是通過(guò)對(duì)已有的開源硬件作品案例進(jìn)行剖析,讓學(xué)生體驗(yàn)基于開源硬件完成項(xiàng)目開發(fā)的基本流程;二是通過(guò)對(duì)實(shí)例分解剖析,讓學(xué)生知道常用開源硬件的功能與特征。對(duì)此處提及的“開源硬件”有兩種理解。理解一:包括開源硬件主控板及軟件開發(fā)平臺(tái)。理解二:在理解一的基礎(chǔ)上還包括基本的輸入輸出組件及相關(guān)控制模塊。但在實(shí)際教學(xué)中,多數(shù)學(xué)生對(duì)開源硬件還很陌生,對(duì)利用開源硬件進(jìn)行項(xiàng)目設(shè)計(jì)和制作的基本流程還不了解?;谝陨蠈W(xué)情分析及后續(xù)學(xué)習(xí)的需要,此處對(duì)開源硬件的理解,筆者傾向于理解二[1],比內(nèi)容要求6.1中提及的開源硬件范圍有所擴(kuò)展。
在教學(xué)中,教師要引導(dǎo)學(xué)生根據(jù)開源硬件項(xiàng)目解決問(wèn)題的需要,自覺、主動(dòng)地尋求合適的方法去獲取和處理信息,培養(yǎng)學(xué)生信息意識(shí)。通過(guò)學(xué)習(xí)開源硬件系統(tǒng)構(gòu)成,了解程序指令和各硬件模塊在小型信息系統(tǒng)自動(dòng)控制實(shí)現(xiàn)過(guò)程中的功能,并能夠運(yùn)用合理算法,形成問(wèn)題解決方案,發(fā)展學(xué)生計(jì)算思維。讓學(xué)生在運(yùn)用開源硬件這一數(shù)字化學(xué)習(xí)工具解決問(wèn)題的過(guò)程中,感受開源硬件平臺(tái)在創(chuàng)造性解決問(wèn)題中的優(yōu)勢(shì),培養(yǎng)學(xué)生數(shù)字化學(xué)習(xí)與創(chuàng)新的習(xí)慣。通過(guò)具體項(xiàng)目實(shí)踐,體驗(yàn)基于開源硬件的項(xiàng)目開發(fā)流程,促進(jìn)學(xué)生理性判斷,并以積極的學(xué)習(xí)態(tài)度應(yīng)用信息技術(shù)創(chuàng)新,以培養(yǎng)學(xué)生信息社會(huì)責(zé)任。
各版本教材對(duì)該部分內(nèi)容的處理各有特色,內(nèi)容設(shè)計(jì)、活動(dòng)形式及課時(shí)安排差別較大,具體如下頁(yè)表所示。教科版對(duì)開源硬件項(xiàng)目開發(fā)一般流程的介紹最為簡(jiǎn)潔,在簡(jiǎn)要概述了項(xiàng)目規(guī)劃、項(xiàng)目實(shí)現(xiàn)、測(cè)試與優(yōu)化三個(gè)步驟后就迅速轉(zhuǎn)入內(nèi)容豐富的三大類十六個(gè)小項(xiàng)目的學(xué)習(xí)活動(dòng)。
對(duì)于項(xiàng)目開發(fā)基本流程的概括,各教材表述不同,概括起來(lái)也都從創(chuàng)意需求分析、設(shè)計(jì)方案、制作實(shí)現(xiàn)(含硬件搭建和程序設(shè)計(jì))、測(cè)試運(yùn)行等環(huán)節(jié)做了闡述?;浗贪娼榻B了生命周期法、快速原型法等項(xiàng)目開發(fā)方法,有助于學(xué)生進(jìn)一步理解項(xiàng)目開發(fā)流程?;浗贪妗⒄憬贪娼榻B了頭腦風(fēng)暴、思維樹等創(chuàng)意思維工具,可以更好地指導(dǎo)學(xué)生做好項(xiàng)目的需求設(shè)計(jì)與構(gòu)思。浙教版、人教-中圖版通過(guò)剖析“智能鳥蛋”典型案例,從項(xiàng)目的由來(lái)、分析論證、具體實(shí)施及項(xiàng)目的意義,梳理了開源硬件項(xiàng)目開發(fā)的一般流程。
各版本教材大都以Arduino開發(fā)板為例展開項(xiàng)目活動(dòng),本文也以Arduino為例進(jìn)行闡述。
鑒于多數(shù)學(xué)生對(duì)開源硬件還很陌生的學(xué)情,教師可以帶領(lǐng)學(xué)生先從簡(jiǎn)單電路的搭建入手,如在電路實(shí)驗(yàn)板上實(shí)現(xiàn)按下按鈕來(lái)點(diǎn)亮LED的小任務(wù),這個(gè)任務(wù)并沒(méi)有涉及Arduino主控板的過(guò)多應(yīng)用,只是讓學(xué)生嘗試搭建一個(gè)簡(jiǎn)單電路,回顧物理學(xué)習(xí)中電路設(shè)計(jì)的全部基本要素,教會(huì)學(xué)生如何通過(guò)串聯(lián)電阻來(lái)保護(hù)LED、如何正確使用面包板的預(yù)制連接快速搭建電路、開發(fā)板使用要注意哪些安全事項(xiàng)、如何通過(guò)主控板獲取實(shí)驗(yàn)電源等。通過(guò)這樣的任務(wù),讓學(xué)生逐步認(rèn)識(shí)常用開源硬件的基本構(gòu)造、硬件連接和使用方法,初步具備將無(wú)形的電流轉(zhuǎn)化為現(xiàn)實(shí)中可以體驗(yàn)到的物理現(xiàn)象的能力,為后續(xù)項(xiàng)目的順利開展奠定基礎(chǔ)。
接下來(lái)可以通過(guò)搭建功能簡(jiǎn)單、結(jié)構(gòu)簡(jiǎn)潔的開源硬件信息系統(tǒng),讓學(xué)生辨識(shí)、理解開源硬件系統(tǒng)各模塊的功能實(shí)現(xiàn),以及“智能”背后的程序控制。例如,控制一個(gè)LED閃爍的小實(shí)驗(yàn),在搭建好物理連接后,借助Arduino IDE編程環(huán)境,來(lái)自動(dòng)控制電路電流變化,實(shí)現(xiàn)閃爍功能。通過(guò)如上簡(jiǎn)單實(shí)驗(yàn),教師引導(dǎo)學(xué)生認(rèn)識(shí)到系統(tǒng)是在程序代碼和微控制器的共同作用下,自動(dòng)控制電路,實(shí)現(xiàn)燈光閃爍,進(jìn)一步加深了學(xué)生對(duì)開源硬件系統(tǒng)組成的認(rèn)識(shí)。
各版本教材“開源硬件項(xiàng)目流程”知識(shí)框架
在此基礎(chǔ)上,教師組織學(xué)生開展頭腦風(fēng)暴,將LED閃爍實(shí)驗(yàn)進(jìn)一步拓展,嘗試模擬生活場(chǎng)景的具體應(yīng)用。學(xué)生想到了城市夜景的流水燈、充電進(jìn)度的指示燈、出租車上的字幕燈、交通信號(hào)燈。接下來(lái)就可以引導(dǎo)學(xué)生根據(jù)創(chuàng)意來(lái)設(shè)計(jì)初步方案,選擇元器件,進(jìn)行可行性驗(yàn)證實(shí)驗(yàn),進(jìn)一步詳細(xì)設(shè)計(jì),制作原型,嘗試編寫代碼,測(cè)試優(yōu)化作品。隨著活動(dòng)的深入,學(xué)生發(fā)現(xiàn)的問(wèn)題、遇到的困難會(huì)越來(lái)越多,尤其是代碼編寫環(huán)節(jié)。教師要有充分的預(yù)設(shè),預(yù)先準(zhǔn)備若干套解決方案和功能代碼,給學(xué)生足夠的提示,供學(xué)生選用、借鑒和改造。通過(guò)這樣漸次遞進(jìn)的教學(xué)推進(jìn),有助于學(xué)生深刻體驗(yàn)基于開源硬件的項(xiàng)目開發(fā)流程,初步掌握常用基本開源硬件的功能、特征及安全使用注意事項(xiàng)。
隨著該部分教學(xué)的深入,開源硬件元器件的選擇和電路的搭建成為教學(xué)的重點(diǎn),而對(duì)于多數(shù)學(xué)生,控制代碼的編寫和功能實(shí)現(xiàn)就是學(xué)習(xí)的難點(diǎn)。在教學(xué)中,教師可以根據(jù)學(xué)情,借助圖形化編程軟件,簡(jiǎn)化程序代碼的編寫,降低代碼學(xué)習(xí)難度。教師要指導(dǎo)學(xué)生規(guī)范使用自然語(yǔ)言去描述算法,能準(zhǔn)確讀懂算法流程圖,學(xué)會(huì)使用流程圖表達(dá)簡(jiǎn)單算法思想,能夠理解學(xué)習(xí)資源中給出的代碼與算法意圖和功能實(shí)現(xiàn)的對(duì)應(yīng)關(guān)系,根據(jù)自己的設(shè)計(jì)需求改造代碼,初步掌握利用編程語(yǔ)言,控制數(shù)據(jù)驅(qū)動(dòng)致動(dòng)器(執(zhí)行裝置),形成解決問(wèn)題的方案,更好地培養(yǎng)學(xué)生計(jì)算思維。
筆者在教學(xué)實(shí)踐中深刻感受到,只有結(jié)合好學(xué)情,通過(guò)科學(xué)設(shè)計(jì)教學(xué)活動(dòng),讓探究任務(wù)漸次深入,才能讓學(xué)生系統(tǒng)地掌握開源硬件項(xiàng)目開發(fā)的基本流程。只有引導(dǎo)學(xué)生關(guān)注算法設(shè)計(jì),切身體驗(yàn)代碼實(shí)現(xiàn)到功能實(shí)現(xiàn),才能讓學(xué)生深刻理解算法、程序與開源硬件項(xiàng)目應(yīng)用的關(guān)系。當(dāng)教師借助頭腦風(fēng)暴,看到學(xué)生在探討選擇哪些元件、交通信號(hào)的切換有哪些規(guī)律、怎樣實(shí)現(xiàn)信號(hào)無(wú)縫切換、怎樣功能優(yōu)化、如何根據(jù)車流變化自動(dòng)調(diào)整等候時(shí)間以優(yōu)化交通資源配置的時(shí)候,學(xué)生深入探究的欲望和嘗試創(chuàng)新的火花就被有效激發(fā)了。