王禹
摘 要:?jiǎn)纹瑱C(jī)歷來(lái)是中職學(xué)校電子電氣自動(dòng)化專業(yè)繞不過(guò)去又比較難教難學(xué)的一門課。Arduino單片機(jī)結(jié)合ArduBlock插件為中職學(xué)校單片機(jī)教學(xué)的順利推廣提供了另一種途徑。本文以單片機(jī)控制LED燈閃爍課程為例,結(jié)合中職學(xué)生的客觀實(shí)際情況,探索單片機(jī)教學(xué)的新思路,為構(gòu)建高效課堂提供參考。
關(guān)鍵詞:?jiǎn)纹瑱C(jī)教學(xué) 圖形化編程
一、單片機(jī)教學(xué)的重要性
單片機(jī)又名“微控制器”或“微電腦”,它把一個(gè)計(jì)算機(jī)系統(tǒng)集成到了一個(gè)芯片上,概括地講:一塊芯片就成了一臺(tái)計(jì)算機(jī)。隨著物聯(lián)網(wǎng)、智能化等技術(shù)的推廣,單片機(jī)技術(shù)生活中的應(yīng)用越來(lái)越廣泛,單片機(jī)課程的重要性日益突出。電類專業(yè)中,單片機(jī)課程又是核心專業(yè)課,在中等職業(yè)學(xué)校受到越來(lái)越多的重視與關(guān)注。
二、單片機(jī)教學(xué)的困境
1.編程語(yǔ)言學(xué)習(xí)困難
單片機(jī)編程可以選匯編語(yǔ)言或者C語(yǔ)言,但是無(wú)論選哪種語(yǔ)言都需要接觸一定量的英文;中職學(xué)生的文化基礎(chǔ)薄弱,對(duì)英文最為頭痛。C語(yǔ)言靈活強(qiáng)大,語(yǔ)法規(guī)則嚴(yán)格,短時(shí)間難以掌握;C語(yǔ)言是大小寫敏感的語(yǔ)言,即一個(gè)單詞只要有一個(gè)字符大小寫不一樣,對(duì)C編譯器來(lái)說(shuō)就是完全不一樣的兩個(gè)詞。代碼大小寫,全角符號(hào)等任何的輸入錯(cuò)誤都會(huì)導(dǎo)致編程失敗。初學(xué)者在這點(diǎn)上屢屢犯錯(cuò),入門階段的失敗最容易導(dǎo)致學(xué)生產(chǎn)生畏難情緒,影響后續(xù)教學(xué)。選匯編語(yǔ)言還需記憶大量指令、寄存器、硬件結(jié)構(gòu)等知識(shí),編程代碼更加難寫難讀,所以學(xué)習(xí)難度還高于C語(yǔ)言。對(duì)中職學(xué)生來(lái)說(shuō),單片機(jī)入門尤為困難。
2.單片機(jī)實(shí)訓(xùn)室建設(shè)成本高
單片機(jī)學(xué)習(xí)需要專業(yè)軟件和硬件,市場(chǎng)主流都是商業(yè)軟件,采購(gòu)價(jià)格昂貴。
(1)硬件方面,需要單片機(jī)實(shí)訓(xùn)電路板(開(kāi)發(fā)板),下載燒寫器,電源適配器。市場(chǎng)上各種單片機(jī)實(shí)訓(xùn)電路板很多,具有一定指導(dǎo)性的中職單片機(jī)全國(guó)技能大賽官方指定設(shè)備為YL-236。該設(shè)備配備十余種模塊,功能豐富,也具備一定的靈活性,但設(shè)備體積龐大,萬(wàn)余元價(jià)格,不利于普遍推廣。其他小廠商也有單片機(jī)實(shí)訓(xùn)開(kāi)發(fā)板,但各自為政,標(biāo)準(zhǔn)不一;配齊燒寫器等必備的工具,硬件成本最少也需要百余元。近幾年有Proteus等仿真軟件應(yīng)用,在一定程度上彌補(bǔ)了硬件的缺點(diǎn),但高昂的軟件授權(quán)費(fèi)用仍舊將許多學(xué)校拒之門外。
(2)軟件方面,通常需要開(kāi)發(fā)IDE和編譯器軟件。以教學(xué)中常用的MSC51系列單片機(jī)為例,基本上只有Keil一家公司獨(dú)占市場(chǎng),Keil C51開(kāi)發(fā)IDE軟件每臺(tái)計(jì)算機(jī)授權(quán)費(fèi)用也大約一萬(wàn)元。
高成本的實(shí)訓(xùn)設(shè)備對(duì)中職學(xué)校來(lái)說(shuō)無(wú)疑提高了學(xué)生專業(yè)教學(xué)的門檻,要做到一人一機(jī)非常難,而這樣又不利于學(xué)生實(shí)踐操作的學(xué)習(xí)。所以目前,單片機(jī)教學(xué)的難點(diǎn)在于實(shí)訓(xùn)設(shè)備的局限導(dǎo)致教學(xué)方法的局限。
三、Arduino單片機(jī)平臺(tái)和圖形化編程
Arduino,由意大利兩位教師提出,是一個(gè)基于開(kāi)放源碼和硬件規(guī)格的軟硬件平臺(tái)。硬件有Arduino系列開(kāi)發(fā)板,如圖1(a)所示為其中最常見(jiàn)的Arduino UNO;軟件有Arduino IDE,自帶編輯器,編譯器等各種工具。如表1所示,與傳統(tǒng)MSC51單片機(jī)教學(xué)相比,Arduino平臺(tái)用于單片機(jī)教學(xué)有以下優(yōu)點(diǎn)。
1.成本極低,容易推廣
在硬件上,Arduino的電路圖設(shè)計(jì)文件是公開(kāi)提供的,官方提供的Eagle格式PCB,SCH電路圖,及簡(jiǎn)化的Arduino模組,用戶可以自己搭建電路。國(guó)內(nèi)使用最多Arduino UNO,淘寶網(wǎng)售價(jià)低于20元人民幣。此外Arduino自帶USB下載、供電,不需要其他下載器、電源適配器等硬件。軟件方面,Arduino開(kāi)發(fā)IDE已經(jīng)包括編譯器等全部軟件,而且都是免費(fèi)的開(kāi)源軟件。實(shí)訓(xùn)場(chǎng)地要求低:目前中職學(xué)校的配置最低的計(jì)算機(jī)機(jī)房也可勝任,Arduino開(kāi)發(fā)IDE為免安裝軟件,機(jī)房上課教師將軟件下發(fā)即可使用;一些入門實(shí)訓(xùn)項(xiàng)目只需一根USB線即可開(kāi)課。
2.性能強(qiáng)大,緊跟市場(chǎng)
Arduino采用基于AVR指令集的8位處理器,頻率 20MHz,程序存儲(chǔ)器空間 32kB,內(nèi)存2kB,集成EEPROM等大量常用外圍器件電路,遠(yuǎn)遠(yuǎn)超過(guò)MSC51系列單片機(jī)的8kB程序存儲(chǔ)器,256B的內(nèi)存配置。Arduino單片機(jī)性能更強(qiáng)悍,功能更豐富,更貼近工業(yè)生產(chǎn),緊跟市場(chǎng)技術(shù)潮流。
3.針對(duì)教學(xué),資源豐富
最初研發(fā)Arduino的目的是教育,因此Arduino團(tuán)隊(duì)在易用性各方面做了優(yōu)化:簡(jiǎn)化了單片機(jī)工作的流程,重新封裝了 AVRC。例如,以阿拉伯?dāng)?shù)字1~13指代各個(gè)輸入輸出引腳。Arduino硬件規(guī)格統(tǒng)一,這些措施使得Arduino代碼可復(fù)用性非常高。Arduino IDE中集成大量成熟例程代碼,特別適合老師,學(xué)生和一些業(yè)余愛(ài)好者們使用。
4.圖形編程,學(xué)習(xí)無(wú)礙
相比C語(yǔ)言或匯編語(yǔ)言等文字編程,圖形化編程可以大大降低了單片機(jī)編程開(kāi)發(fā)難度。Arduino軟件的開(kāi)源可擴(kuò)展特性,任何第三方公司都可以編寫自己的工具。國(guó)內(nèi)一家名為新車間公司開(kāi)發(fā)了一款依附在Arduino上,遵循開(kāi)源協(xié)議并免費(fèi)的ArduBlock插件,如圖1(b)所示。其編程如同積木搭建,而且軟件是中文界面,有效降低了職業(yè)學(xué)校學(xué)生學(xué)習(xí)單片機(jī)的門檻。
四、Arduino教學(xué)實(shí)踐
以單片機(jī)控制LED燈閃爍一課為例,參照項(xiàng)目教學(xué)法,該課為單片機(jī)入門第3節(jié)課。本節(jié)教學(xué)內(nèi)包括C語(yǔ)言的變量定義、函數(shù)調(diào)用、延時(shí)時(shí)間計(jì)算等知識(shí),以及正負(fù)邏輯與TTL電平關(guān)系等數(shù)字電路知識(shí)。教學(xué)內(nèi)容多,細(xì)節(jié)要求高。最簡(jiǎn)單代碼如圖2所示。
借助Arduino平臺(tái)完成單片機(jī)點(diǎn)亮LED燈的項(xiàng)目,則是以面向?qū)ο蟮乃悸罚恍枞?。如圖2所示,第一步,拖入1個(gè)“主程序”方塊,2個(gè)“設(shè)定數(shù)字針腳值”方塊和2個(gè)“微秒延遲”方塊三個(gè)積木方塊;第二步,根據(jù)硬件接線,更改“設(shè)定數(shù)字針腳值”方塊的輸出引腳為“13”號(hào)引腳、輸出電平為一個(gè)“高(數(shù)字)”,另一個(gè)為“低(數(shù)字)”,其余均使用默認(rèn)值;第三步,按照LED燈閃爍的邏輯順序排列即可,如圖3所示。整個(gè)編程過(guò)程不用書寫任何一個(gè)單詞。
在學(xué)校高一14(3+2)應(yīng)用電子和2014五年一貫電子兩個(gè)平行班分別以傳統(tǒng)教學(xué)方式和Arduino圖形編程方式開(kāi)展教學(xué)試驗(yàn),收集項(xiàng)目完成評(píng)價(jià)及學(xué)生評(píng)價(jià)情況,見(jiàn)表2。對(duì)比教學(xué)實(shí)踐發(fā)現(xiàn),采用Arduino圖形化編程教學(xué)的班級(jí)學(xué)生參與度高,教學(xué)目標(biāo)達(dá)成度好,教學(xué)進(jìn)度推行更順利,教學(xué)效果更佳。
五、小結(jié)
單片機(jī)課程是實(shí)踐性特別強(qiáng)的課程,尤其在強(qiáng)調(diào)動(dòng)手能力的中職教育中,培養(yǎng)學(xué)生單片機(jī)相關(guān)的動(dòng)手能力非常重要。采用Arduino+ArduBlock圖形化編程拋開(kāi)編程語(yǔ)言束縛,直接切入單片機(jī)學(xué)習(xí)的核心——迅速把所學(xué)單片機(jī)知識(shí)轉(zhuǎn)化為動(dòng)手應(yīng)用能力,學(xué)習(xí)過(guò)程簡(jiǎn)單直觀易懂,符合職業(yè)高中學(xué)生認(rèn)知規(guī)律,在職高單片機(jī)教學(xué)中推廣能取得更好的教學(xué)效果。
參考文獻(xiàn):
[1]Massimo Banzi,于欣龍,郭浩赟.愛(ài)上Arduino(第2版)[M].北京:人民郵電出版社,2012.
(作者單位:慈溪職業(yè)高級(jí)中學(xué))