饒珺
[摘? ? ? ? ? ?要]? 為培養(yǎng)學(xué)生學(xué)科交叉創(chuàng)新與科技融合的能力,上海大學(xué)工程訓(xùn)練國家級實(shí)驗(yàn)教學(xué)示范中心不斷提升實(shí)驗(yàn)教學(xué)水平,并組織學(xué)科競賽,倡導(dǎo)學(xué)生通過自主設(shè)計(jì)和制作完成項(xiàng)目作品。Arduino控制板因其操作簡單、功能豐富等優(yōu)點(diǎn),被廣泛應(yīng)用于高校課題項(xiàng)目開發(fā)。在項(xiàng)目開發(fā)實(shí)施過程中,為更清晰直觀地觀察數(shù)據(jù)變化,可通過Arduino自帶串口繪圖器直接顯示。提出在Arduino實(shí)驗(yàn)教學(xué)中引入數(shù)據(jù)可視化的實(shí)驗(yàn)設(shè)計(jì),由此強(qiáng)化學(xué)生對Arduino控制板的運(yùn)用,提升學(xué)生的項(xiàng)目開發(fā)能力。
[關(guān)? ? 鍵? ?詞]? 工程訓(xùn)練;實(shí)驗(yàn)教學(xué);Arduino;串口通信;示波器
[中圖分類號]? G642? ? ? ? ? ? ? ? ? ?[文獻(xiàn)標(biāo)志碼]? A? ? ? ? ? ? ? ? ? ? ? [文章編號]? 2096-0603(2018)35-0201-01
一、Arduino項(xiàng)目引入工程訓(xùn)練中心的意義
上海大學(xué)工程訓(xùn)練國家級實(shí)驗(yàn)教學(xué)示范中心(后文簡稱“工程訓(xùn)練中心”)是“學(xué)研產(chǎn)”一體化的綜合性人才培養(yǎng)基地,它不再是傳統(tǒng)意義上的金工、電工基礎(chǔ)技能培訓(xùn)中心,而是以“傳統(tǒng)+現(xiàn)代”“基本+先進(jìn)”、綜合性為重心的工程能力培養(yǎng)中心。為貫徹“拆除四堵墻”的教學(xué)理念[1],工程訓(xùn)練中心增加了多項(xiàng)學(xué)科競賽及實(shí)驗(yàn)課程。基于工程訓(xùn)練中心豐富的資源優(yōu)勢,越來越多課程設(shè)計(jì)在此完成。課題項(xiàng)目的開發(fā)工具種類較多,Arduino因其價(jià)格低廉、操作簡單等特點(diǎn),被廣泛應(yīng)用于高校課題項(xiàng)目中。且Arduino堅(jiān)持開源理念,有利于學(xué)生對源代碼進(jìn)行二次開發(fā)。在實(shí)驗(yàn)教學(xué)中,增加Arduino學(xué)習(xí)十分有必要。
課題的開發(fā)工具種類較多,如Eddison、Raspberry、Arduino等,其中Arduino有價(jià)格低廉、操作簡單、拓展性強(qiáng)等優(yōu)點(diǎn),高校中許多課題項(xiàng)目選擇采用Arduino控制板。Arduino平臺堅(jiān)持開源理念,有利于學(xué)生對源代碼進(jìn)行二次開發(fā)。在工程訓(xùn)練中心實(shí)驗(yàn)教學(xué)中,增加Arduino學(xué)習(xí)十分有必要。
二、Arduino串口繪圖器及實(shí)驗(yàn)設(shè)計(jì)
Arduino與計(jì)算機(jī)通信最常用的方式是串口通信,使用USB線將Arduino與計(jì)算機(jī)連接,即可建立串口通信、互傳數(shù)據(jù)。在項(xiàng)目開發(fā)過程中,常通過串口監(jiān)視器對數(shù)據(jù)流進(jìn)行顯示、分析、測試。串口監(jiān)控器是一個(gè)非常實(shí)用的工具,當(dāng)數(shù)據(jù)量較龐大,圖形化的界面能顯示數(shù)據(jù)變化趨勢并有效提高調(diào)試效率。Arduino IDE自帶的串口繪圖器功能可直觀地對數(shù)據(jù)進(jìn)行線性顯示。
以繪圖器顯示正弦波、余弦波為例,代碼如下:
double i = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
double temp = i*3.1415926/10.0;
Serial.print(sin(temp));
Serial.print(',');
Serial.println(cos(temp));
i+=0.1;
delay(5);
}
參照以上代碼,要實(shí)現(xiàn)串口與計(jì)算機(jī)通信,首先需使用Serial.begin()函數(shù)對Arduino的串口通信功能進(jìn)行初始化,即設(shè)定串口通信速率,串口通信的雙方須使用相同的波特率才能正常進(jìn)行通信。常用的波特率為9600 bit/s,表示每秒傳送的二進(jìn)制數(shù)據(jù)為9600位(bit)。
串口初始化完成后,通過串口輸出函數(shù)[2]向計(jì)算機(jī)發(fā)送數(shù)據(jù),使用Arduino自帶的串口繪圖器即可實(shí)現(xiàn)數(shù)據(jù)可視化。如果要實(shí)現(xiàn)多組數(shù)據(jù)的顯示,則需使用‘,隔開,并在最后一組數(shù)據(jù)使用Serial.println()函數(shù)換行。
基于Arduino的項(xiàng)目開發(fā)過程中,如需研究外部輸入電現(xiàn)象的變化過程時(shí),可通過增加外部電路和顯示模塊制成數(shù)字示波器[3],通過模數(shù)轉(zhuǎn)換器(Analog-to-Digital Converter)把被測電壓轉(zhuǎn)換為數(shù)字信息。由于儀器資源有限、不便攜帶,在課題項(xiàng)目中成品示波器難以普及使用,因此可在實(shí)驗(yàn)教學(xué)中提出結(jié)合Arduino內(nèi)部自帶的模數(shù)轉(zhuǎn)換器,連接顯示屏,制作數(shù)字示波器的設(shè)計(jì)要求。模擬信號輸入后先將連續(xù)信號數(shù)字化,即離散化采樣,采樣獲得的數(shù)據(jù)以數(shù)組形式存入單片機(jī)存儲(chǔ)器內(nèi),Arduino通過SPI總線與顯示屏通信,將處理后的數(shù)據(jù)輸出給液晶屏完成一幀波形的顯示,再重復(fù)以上過程。
三、結(jié)束語
基于Arduino的課題項(xiàng)目不僅能提高學(xué)生的創(chuàng)新思維,也有利于交叉學(xué)科的學(xué)習(xí)。在實(shí)驗(yàn)教學(xué)中增加可視化數(shù)據(jù)的學(xué)習(xí),能將數(shù)據(jù)以曲線形式直觀顯示,大大提高項(xiàng)目調(diào)試效率。此外,還提出在實(shí)驗(yàn)教學(xué)中增加制作簡易示波器的進(jìn)階實(shí)驗(yàn),加深學(xué)生對Arduino的應(yīng)用。
參考文獻(xiàn):
[1]李旭.教育要“拆四堵墻”[J].教育與職業(yè),2010(28):105.
[2]吳漢清.玩轉(zhuǎn)Arduino電子制作[M].北京:機(jī)械工業(yè)出版社,2016:77-78.
[3]張群群.基于Android的數(shù)字示波器操作界面及手勢設(shè)計(jì)[D].黑龍江:哈爾濱工業(yè)大學(xué),2013:3-6.