宋俊玉 黃淼
(河南大學(xué)計(jì)算機(jī)與信息工程學(xué)院 河南開封 475004)
嵌入式產(chǎn)品隨著物聯(lián)網(wǎng)的發(fā)展廣泛地出現(xiàn)在人們?nèi)粘I罟ぷ鳟?dāng)中;隨著5G技術(shù)的發(fā)展,嵌入式會(huì)愈發(fā)應(yīng)用廣泛。當(dāng)今社會(huì)對(duì)嵌入式人才的需求越來越迫切。嵌入式集計(jì)算機(jī)系統(tǒng)、通信原理、程序設(shè)計(jì)、電路等知識(shí)于一體,課程重點(diǎn)是加強(qiáng)學(xué)生理論聯(lián)系實(shí)際的能力,培養(yǎng)應(yīng)用型人才[1]。國(guó)內(nèi)由于嵌入式起步較晚,高校嵌入式人才培養(yǎng)跟不上技術(shù)發(fā)展的潮流,與實(shí)際嵌入式開發(fā)需求脫軌,導(dǎo)致大學(xué)生就業(yè)沒有專業(yè)開發(fā)能力,企業(yè)無法招聘到符合崗位需求的人才。為迎合社會(huì)需求,嵌入式教學(xué)改革要加大實(shí)踐課程教學(xué) ,特別是將創(chuàng)新項(xiàng)目實(shí)例引進(jìn)教學(xué),能夠很大程度上提升學(xué)生的實(shí)踐能力、設(shè)計(jì)能力和創(chuàng)新能力。同時(shí)不同學(xué)校不同專業(yè)應(yīng)當(dāng)根據(jù)自身特點(diǎn),靈活調(diào)整教學(xué)內(nèi)容,發(fā)揮各自的優(yōu)勢(shì),培養(yǎng)出專業(yè)相關(guān)型嵌入式開發(fā)人才。本文就嵌入式課程實(shí)踐教學(xué)以及培養(yǎng)應(yīng)用型人才等問題進(jìn)行了思考和探討。
嵌入式開發(fā)課程作為一門應(yīng)用開發(fā)類課程,需要學(xué)生具有電路基礎(chǔ)、編程基礎(chǔ)、模擬電路和數(shù)字電路、信號(hào)與系統(tǒng)、單片機(jī)原理和接口技術(shù)、微機(jī)原理等前導(dǎo)課程相關(guān)知識(shí)。實(shí)際教學(xué)過程中,由于任課老師之間缺乏溝通,可能導(dǎo)致課程安排不合理以及內(nèi)容重復(fù)等問題,導(dǎo)致課時(shí)浪費(fèi)。傳統(tǒng)嵌入式教學(xué)主要以ARM+Linux為核心,介紹ARM的體系結(jié)構(gòu)、ARM指令尋址方式和ARM指令集的使用以及Linux系統(tǒng)在嵌入式系統(tǒng)上的應(yīng)用和QT/Embedded界面編程開發(fā)。嵌入式開發(fā)課程在理論上承接了“單片機(jī)原理與應(yīng)用”、“微型計(jì)算機(jī)原理與接口技術(shù)”以及嵌入式前期課程“物聯(lián)網(wǎng)與嵌入式系統(tǒng)開發(fā)”等課程,這些課程在內(nèi)容以及結(jié)構(gòu)上有重復(fù)和相似的地方,例如指令、尋址方式等方面,因此在理論教學(xué)上浪費(fèi)較多學(xué)時(shí),學(xué)生沒有足夠的精力去學(xué)習(xí)課程以外的知識(shí),對(duì)嵌入式開發(fā)淺嘗輒止,無法勝任嵌入式系統(tǒng)開發(fā)的工作[2]。
嵌入式開發(fā)屬于定制開發(fā),硬件可定制,軟件可裁剪,這就要求開發(fā)人員對(duì)軟硬件有深入的了解,只有在實(shí)際開發(fā)和實(shí)驗(yàn)才能真正地掌握嵌入式技術(shù)。嵌入式課程要求學(xué)生有將理論聯(lián)系實(shí)踐的能力。實(shí)踐教學(xué)與理論學(xué)習(xí)相輔相成,然而目前高校的嵌入式課程仍然以理論教學(xué)為主,實(shí)踐教學(xué)時(shí)間不足總學(xué)時(shí)的三分之一。目前嵌入式課程開設(shè)的實(shí)驗(yàn)有,嵌入式開發(fā)環(huán)境搭建:(1)WMware Workstation的安裝、使用。(2)Radhat獲取和在虛擬機(jī)中配置。(3)虛擬機(jī)NFS共享設(shè)置。(4)Windows超級(jí)終端配置和使用。嵌入式實(shí)驗(yàn)?zāi)繕?biāo)機(jī)配置:(1)燒寫Linux操作系統(tǒng)的BootLoaderuboot。(2)配置燒寫Linux操作系統(tǒng)內(nèi)核-zImage。(3)燒寫Linux根文件系統(tǒng)?;赒T的嵌入式圖形界面實(shí)驗(yàn)、嵌入圖形界面移植實(shí)驗(yàn)和嵌入式觸摸屏實(shí)驗(yàn)。但這些實(shí)驗(yàn)主要是對(duì)教材范例和試驗(yàn)箱范例的驗(yàn)證,而沒有一個(gè)完整的工程項(xiàng)目,工程開發(fā)的分析、設(shè)計(jì)、調(diào)試和運(yùn)行是我們實(shí)踐教學(xué)缺失的環(huán)節(jié)。而且在以教學(xué)為主、實(shí)驗(yàn)為輔的教學(xué)體系下,實(shí)驗(yàn)課程時(shí)間較少,實(shí)驗(yàn)內(nèi)容枯燥,多為驗(yàn)證性實(shí)驗(yàn),學(xué)生總是跟著教師指導(dǎo)和實(shí)驗(yàn)指導(dǎo)書走,無法吸引學(xué)生興趣和發(fā)揮學(xué)生的想象力,因而取得的效果不好。在一些較為綜合性實(shí)驗(yàn)中,學(xué)生表現(xiàn)的較差,具體存在的問題是代碼編譯無法通過,集成開發(fā)環(huán)境配置不好等問題。此外,由于教學(xué)設(shè)備限制,多是老師講解操作方法,學(xué)生自己做,很少將實(shí)驗(yàn)過程給學(xué)生演示,學(xué)生在試驗(yàn)中具有盲目性,從而缺乏積極性,選擇敷衍了事,嚴(yán)重影響實(shí)驗(yàn)效果。
嵌入式學(xué)習(xí)開發(fā)包括三個(gè)階段“熟悉”、“嘗試”、“開發(fā)”。“熟悉”即了解開發(fā)的環(huán)境和開發(fā)流程,熟悉開發(fā)平臺(tái)和開發(fā)軟件的使用?!皣L試”階段是指學(xué)生了解軟硬件設(shè)計(jì)方法,開發(fā)一些小的模塊和小項(xiàng)目,鍛煉學(xué)生的實(shí)踐能力。“開發(fā)”階段是指學(xué)生在掌握軟硬件開發(fā)能力的基礎(chǔ)上,進(jìn)行實(shí)際項(xiàng)目的開發(fā),在這個(gè)過程中,不僅需要嵌入式開發(fā)能力,還要求學(xué)生綜合運(yùn)用所學(xué)課程和知識(shí)進(jìn)行系統(tǒng)設(shè)計(jì)和開發(fā)的能力,培養(yǎng)學(xué)生獨(dú)立思考、設(shè)計(jì)創(chuàng)新和團(tuán)隊(duì)協(xié)作能力。然而在大部分高校都停留在前兩個(gè)階段。帶領(lǐng)學(xué)生進(jìn)行嵌入式項(xiàng)目的開發(fā),需要指導(dǎo)老師有扎實(shí)的專業(yè)背景和項(xiàng)目經(jīng)驗(yàn)。目前,大部分高校在嵌入式方面師資力量嚴(yán)重不足,軟硬件都有建樹的老師較少,有工作研發(fā)經(jīng)歷的老師更是匱乏。
傳統(tǒng)嵌入式系統(tǒng)開發(fā)課程考核以試卷形式為主,導(dǎo)致考試時(shí)突擊背書就能拿到不錯(cuò)的成績(jī)。理論考試碎片化的知識(shí)點(diǎn)并不能讓學(xué)生真正掌握嵌入式開發(fā)。實(shí)驗(yàn)打分主要以學(xué)生提交的實(shí)驗(yàn)報(bào)告為打分標(biāo)準(zhǔn),并不能反映學(xué)生真實(shí)的實(shí)驗(yàn)操作水平,同時(shí)嵌入式系統(tǒng)的整體方案設(shè)計(jì)能力以及在設(shè)計(jì)中與其他相關(guān)學(xué)科的結(jié)合能力無法考察。實(shí)踐內(nèi)容的考核多為模塊化設(shè)計(jì)考核,缺乏實(shí)際項(xiàng)目開發(fā)能力的考核。
嵌入式開發(fā)課程具有多門前導(dǎo)課程應(yīng)當(dāng)與嵌入式作為一個(gè)完整的體系進(jìn)行規(guī)劃。任課教師和院系領(lǐng)導(dǎo)要加強(qiáng)交流,制定合理的教學(xué)方案,減少重復(fù)內(nèi)容的講述,同時(shí)相關(guān)的地方要做到相互呼應(yīng)。在課程之間,軟硬件協(xié)調(diào)之間,應(yīng)當(dāng)以知識(shí)為線索,貫穿整個(gè)教學(xué)過程。首先,在低年級(jí)首先開設(shè)C語言編程基礎(chǔ),此時(shí)大部分學(xué)生對(duì)于計(jì)算機(jī)的理解能力有限,同時(shí)開設(shè)電路基礎(chǔ),為以后的開發(fā)學(xué)習(xí)打好基礎(chǔ)。在后續(xù)課程中,通過匯編語言學(xué)習(xí)和單片機(jī)的學(xué)習(xí)和實(shí)際開發(fā),使得學(xué)生將軟硬件結(jié)合起來,并具有一定開發(fā)能力。有了以上基礎(chǔ),學(xué)生再來學(xué)習(xí)嵌入式開發(fā)會(huì)水到渠成??梢赃m當(dāng)合并嵌入式系列的實(shí)踐課程,不僅能夠增加實(shí)踐教學(xué)的課時(shí),又能提高各課程之間的聯(lián)系,充分發(fā)揮課程相互促進(jìn)的作用。
課程實(shí)踐是嵌入式教學(xué)中的重要環(huán)節(jié),在總學(xué)時(shí)不變的前提下,盡量縮減理論授課課時(shí),增加實(shí)驗(yàn)課程的學(xué)時(shí),甚至可以在機(jī)房實(shí)驗(yàn)室上課,在講到具體知識(shí)點(diǎn)時(shí),可以方便馬上進(jìn)行練習(xí),以增加對(duì)課程內(nèi)容的掌握,同時(shí)提升學(xué)生的興趣。在授課內(nèi)容上,由于有“物聯(lián)網(wǎng)與嵌入式”、“微型計(jì)算機(jī)原理與接口技術(shù)”等前導(dǎo)課程,因此可以適當(dāng)減少對(duì)硬件結(jié)構(gòu)和指令系統(tǒng)的講解,增加嵌入式開發(fā)流程和環(huán)境等與實(shí)踐相關(guān)內(nèi)容的講解和演示,如虛擬機(jī)VMware的安裝使用、NFS共享設(shè)置等。為了更好理解嵌入式系統(tǒng)工作原理,對(duì)Bootloader-Uboot的構(gòu)成和作用做重點(diǎn)講解,以及Linux操作系統(tǒng)內(nèi)核-zImage和Linux根文件系統(tǒng)的介紹和制作過程演示,從而保證學(xué)生在實(shí)踐過程中,得到更好的效果。同時(shí)學(xué)院應(yīng)提供學(xué)生實(shí)踐的必要硬件條件,除了開放實(shí)驗(yàn)室,還可以利用實(shí)驗(yàn)室現(xiàn)有的小型嵌入式實(shí)驗(yàn)板或者購(gòu)買一批用于學(xué)生課下實(shí)踐開發(fā)。嵌入式課程實(shí)踐教學(xué)應(yīng)當(dāng)采用實(shí)驗(yàn)和項(xiàng)目實(shí)踐相結(jié)合的形式。實(shí)驗(yàn)采用章節(jié)教學(xué)的方式,貫穿理論教學(xué)的全程,實(shí)踐課程通常是放在理論課程和相關(guān)實(shí)驗(yàn)完成之后,進(jìn)行綜合實(shí)踐訓(xùn)練,學(xué)生可自由組隊(duì),同時(shí)安排指導(dǎo)老師指導(dǎo)學(xué)生利用所學(xué)理論進(jìn)行嵌入式系統(tǒng)開發(fā),使所學(xué)知識(shí)能夠融會(huì)貫通,應(yīng)用于實(shí)踐。
嵌入式開發(fā)具有跨學(xué)科性強(qiáng)、軟硬件結(jié)合緊密、應(yīng)用廣泛等特點(diǎn),因此要培養(yǎng)出來綜合素質(zhì)過硬,滿足社會(huì)需求的嵌入式開發(fā)人員,除了要有與社會(huì)需求相關(guān)的最新教材和實(shí)驗(yàn)設(shè)備外,還需要一支強(qiáng)大的師資團(tuán)隊(duì)。這樣的隊(duì)伍需要具有扎實(shí)的專業(yè)基礎(chǔ)同時(shí)還需要具有工程項(xiàng)目經(jīng)驗(yàn)。有人提出直接找企業(yè)嵌入式開發(fā)人員進(jìn)行授課,但是教學(xué)需要整體規(guī)劃,考慮前導(dǎo)課程和相關(guān)課程之間的銜接,而且掌握原理對(duì)于學(xué)生后續(xù)發(fā)展非常重要,不能割裂理論和實(shí)踐一味搞開發(fā)??梢悦嫦蛏鐣?huì)招聘具有開發(fā)經(jīng)驗(yàn)的“雙資老師”,或者在周末等課余時(shí)間,請(qǐng)企業(yè)中的開發(fā)人員來學(xué)校進(jìn)行宣講,對(duì)社會(huì)實(shí)際需求和項(xiàng)目實(shí)際開發(fā)流程進(jìn)行講解,同時(shí)可以請(qǐng)他們帶領(lǐng)學(xué)生進(jìn)行課程設(shè)計(jì)、專業(yè)比賽,甚至畢業(yè)設(shè)計(jì)。另外可以為學(xué)校年輕任課老師提供更多學(xué)習(xí)交流機(jī)會(huì),定期到嵌入式開發(fā)企業(yè)進(jìn)行實(shí)地考察和學(xué)習(xí)。
針對(duì)嵌入式課程的特點(diǎn),嵌入式開發(fā)課程的考核形式應(yīng)該不拘一格,試卷考試可采用開卷考試,考查學(xué)生對(duì)基本概念的掌握,避免學(xué)生死記硬背。實(shí)驗(yàn)要當(dāng)堂打分,學(xué)生完成實(shí)驗(yàn)并且回答老師提出的問題后方可獲得本節(jié)實(shí)驗(yàn)課程的分?jǐn)?shù),加強(qiáng)考查學(xué)生嵌入式開發(fā)的整體設(shè)計(jì)、功能模塊的使用以及在具體場(chǎng)景中的應(yīng)用的能力。此外,為了提高學(xué)生整體方案設(shè)計(jì)能力、獨(dú)立思考能力和課程結(jié)合能力,指導(dǎo)學(xué)生進(jìn)行創(chuàng)新項(xiàng)目開發(fā),項(xiàng)目結(jié)束時(shí)進(jìn)行評(píng)定,并計(jì)入實(shí)驗(yàn)成績(jī)。
嵌入式開發(fā)以應(yīng)用為核心,軟硬件可裁剪,功能可定制,對(duì)嵌入式的成本,體積,與可靠性有嚴(yán)格的要求[3]。在進(jìn)行實(shí)際項(xiàng)目開發(fā)之前,首先通過章節(jié)實(shí)驗(yàn)確保學(xué)生對(duì)功能模塊原理掌握并可以熟練應(yīng)用,如顯示屏、DAC、ADC、存儲(chǔ)器、WiFi模塊等,在完成模塊化學(xué)習(xí)后,可以帶領(lǐng)學(xué)生做一些小的產(chǎn)品,如紅外報(bào)警系統(tǒng)等。在此基礎(chǔ)上,引導(dǎo)學(xué)生開發(fā)創(chuàng)新項(xiàng)目。創(chuàng)新項(xiàng)目可由小組配合完成,既能提高學(xué)生積極性,又可以起到鍛煉學(xué)生團(tuán)隊(duì)意識(shí)的作用,團(tuán)隊(duì)成員自由分工,每個(gè)人在團(tuán)隊(duì)中選擇自己擅長(zhǎng)的方面,同時(shí)相互配合,共同完成創(chuàng)新項(xiàng)目。下面以具體項(xiàng)目實(shí)例進(jìn)行開發(fā)流程的講解。
創(chuàng)新項(xiàng)目一方面要具有綜合性,同時(shí)可以結(jié)合其他課程,如單片機(jī)等;另一方面,要具有創(chuàng)新性和趣味性,選擇當(dāng)下流行的技術(shù)如語音識(shí)別等。本項(xiàng)目選擇一個(gè)以語音識(shí)別為核心的機(jī)器人,且結(jié)合單片機(jī)技術(shù),使得機(jī)器人具備語音聊天和進(jìn)行簡(jiǎn)單運(yùn)動(dòng)等功能。
進(jìn)行實(shí)際的開發(fā)首先要選擇合適的嵌入式開發(fā)板,本項(xiàng)目選擇樹莓派4B板,該版是一款基于ARM的微型電腦主板,采用ARM-Cortex-A72架構(gòu),功能強(qiáng)大,且具有豐富的外設(shè)以及接口。軟件方面在wukongrobot開源項(xiàng)目的基礎(chǔ)上進(jìn)行二次開發(fā),實(shí)現(xiàn)對(duì)語音機(jī)器人的運(yùn)動(dòng)控制。硬件方面選購(gòu)合適的電源、小車部件、音響和麥克風(fēng)等。實(shí)際開發(fā)通過串口或網(wǎng)絡(luò)連接樹莓派,直接在樹莓派上配置和開發(fā)。首先進(jìn)行語音模塊的搭建和開發(fā),利用百度、圖靈等語音識(shí)別和處理API實(shí)現(xiàn)語音聊天并為語音控制奠定基礎(chǔ);第二步,通過編寫特定程序?qū)崿F(xiàn)對(duì)控制命令的識(shí)別處理;第三步,通過樹莓派的GPIO口控制驅(qū)動(dòng)電路實(shí)現(xiàn)小車的前進(jìn)后退轉(zhuǎn)彎等。有余力的同學(xué)還可以在此基礎(chǔ)上進(jìn)行進(jìn)一步開發(fā),如通過內(nèi)網(wǎng)穿透軟件實(shí)現(xiàn)遠(yuǎn)程控制機(jī)器人的目的。通過項(xiàng)目實(shí)例開發(fā)為以后的嵌入式開發(fā)打下堅(jiān)實(shí)的基礎(chǔ)。
高等學(xué)校的嵌入式開發(fā)課程需要與市場(chǎng)接軌,合理編排課程內(nèi)容和形式。整合嵌入式系列課程的銜接,注重實(shí)踐教學(xué),帶領(lǐng)學(xué)生進(jìn)行更有趣且與社會(huì)聯(lián)系緊密的創(chuàng)新性項(xiàng)目開發(fā),提高學(xué)生積極性,培養(yǎng)學(xué)生綜合開發(fā)能力和創(chuàng)新能力。
科技創(chuàng)新導(dǎo)報(bào)2020年32期