張保新,黃閩華
(廣東嶺南職業(yè)技術(shù)學(xué)院,廣東廣州,510663)
隨著電子信息化與各行各業(yè)的不斷融合,特別是物聯(lián)網(wǎng)應(yīng)用不斷深入,對掌握嵌入式、通信、信息處理等廣泛綜合知識和技能人才的需求快速增加。但相關(guān)領(lǐng)域的人才培養(yǎng)所需要的教學(xué)與創(chuàng)新實(shí)踐條件卻無法跟上快速發(fā)展的步伐,現(xiàn)有教學(xué)平臺及環(huán)境,過于程式化、缺少靈活性和適應(yīng)性,民辦院校中問題尤為突顯。如何利用現(xiàn)有的主流設(shè)備、器件、開發(fā)手段,綜合設(shè)計開發(fā)出針對性強(qiáng)、靈活性好、便于獲得的物聯(lián)網(wǎng)綜合實(shí)驗(yàn)平臺,成為迫切需要?;诖?,通過大量實(shí)踐活動及綜合分析,設(shè)計開發(fā)了本平臺。該平臺(也可以看成是一種理念平臺)可以由最基本的部分搭建,隨著學(xué)生的知識不斷豐富,該平臺也可以進(jìn)行擴(kuò)展。通過購買各種元件、組件來構(gòu)建本平臺,從最底層開始,鍛煉學(xué)生的自主解決問題的能力。與物聯(lián)網(wǎng)應(yīng)用技術(shù)相關(guān)的三層體系中,該平臺可用于嵌入式系統(tǒng)的學(xué)習(xí)開發(fā)、傳感器的使用、執(zhí)行機(jī)構(gòu)的控制、通信的建立、應(yīng)用軟件開發(fā)設(shè)計等多個方面的教學(xué)與創(chuàng)新活動。本平臺與常見的多功能試驗(yàn)箱相比,更側(cè)重于實(shí)踐性、創(chuàng)新性及易獲得性。
本平臺的機(jī)械結(jié)構(gòu)基于四驅(qū)小車套件構(gòu)建,通過控制兩組(左、右各一組)減速直流電機(jī),實(shí)現(xiàn)平臺的移動性,包括前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、駐車等運(yùn)動狀態(tài),速度可調(diào)。這些工作,受控于通過藍(lán)牙通道無線連接的,位于移動智能終端(遙控器)上的APP。移動平臺的運(yùn)動狀態(tài)和溫度(或其它類型)數(shù)據(jù),顯示在信息顯示模塊的同時,也可以通過藍(lán)牙無線通道,傳遞給APP顯示。由于直流電機(jī)驅(qū)動和主要邏輯電路所需的電壓、電流均不同,本平臺使用由三只鋰電池構(gòu)成的電池組,經(jīng)電源適配模塊處理后分別供電。其總體邏輯框圖如圖1所示。
圖1 移動平臺總體邏輯框圖
下述的硬件設(shè)計過程中,不包括信息顯示、傳感器、電池適配模塊。這些基礎(chǔ)性和通用性強(qiáng)的模塊設(shè)計,可參考通用資料。
基于STC89C52(替代AT89C52)型號單片機(jī)設(shè)計。該單片機(jī)具有片內(nèi)Flash存儲器,用于程序及數(shù)據(jù)表格的存儲,可通過在線編程(ISP)實(shí)現(xiàn)了程序下載及運(yùn)行,方便單片機(jī)硬件的開發(fā)調(diào)試,使環(huán)境擁有門檻降低。使用包括時鐘電路、復(fù)位電路的STC89C51的最小系統(tǒng)+CH340芯片構(gòu)成的USB-TTL接口,可以滿足本系統(tǒng)要求。為方便裝配,盡可能將P0~P3端口通過接插件輸出??稍黾油ㄟ^P0口+P2口構(gòu)建的LCD并行驅(qū)動接口。如圖2所示。
圖2 控制中心電路
USB-TTL(UART/CH340)接口電路,除了具備程序下載、調(diào)試功能外,還可以用作為供電接口,電源參數(shù)為:電壓+5V,電流: 不小于500mA。 單片機(jī)資源的分配參見各分模塊設(shè)計說明。
由四驅(qū)小車機(jī)械套件構(gòu)建移動平臺。為了簡化設(shè)計,采用電機(jī)獨(dú)立驅(qū)動、同側(cè)同步運(yùn)行的設(shè)計方案。通過L298專用驅(qū)動芯片將單片機(jī)的驅(qū)動命令轉(zhuǎn)換成高壓、大電流驅(qū)動信號,控制直流電機(jī)按需運(yùn)轉(zhuǎn),具體電路連接如圖3所示。通過IN1~I(xiàn)N2,IN3~I(xiàn)N4的控制信號的不同組合,經(jīng)L298通過差分驅(qū)動電機(jī)正轉(zhuǎn)、停止、反轉(zhuǎn),實(shí)現(xiàn)移動平臺的停止、前進(jìn)、倒退、左轉(zhuǎn)、右轉(zhuǎn)等行為狀態(tài);電機(jī)速度調(diào)控電路參見圖3中的enx信號,該信號使用PWM脈寬調(diào)制格式,信號的周期采用500Hz。通過改變PWM的占空比,經(jīng)過L298的使能端ENA、ENB對電機(jī)提供不同的電能,達(dá)到調(diào)速的目的。L298正常工作需要+5V和+12V電源,分別給邏輯電路及驅(qū)動電路供電,驅(qū)動電路的瞬時電流可達(dá)3A,確保了電機(jī)具備良好工作性能。
受AppInventor2(簡稱AI2)軟件開發(fā)工具限制,選用2.0版的藍(lán)牙模塊進(jìn)行設(shè)計。這些模塊出廠時缺省設(shè)置為直連模式,只需將單片機(jī)的UART接口按需設(shè)置,即可實(shí)現(xiàn)藍(lán)牙通信。設(shè)計過程中,要注意接口電平之間的匹配(TTL 5V<-->LVTTL3.3V),具體設(shè)計如圖3所示。
圖3 直流電機(jī)驅(qū)動及藍(lán)牙模塊連接電路
使用KeiluVision+C51軟件工具編寫由多文件(模塊)構(gòu)成的嵌入式程序。
3.1.1 主程序設(shè)計
在初始化部分,定義了結(jié)構(gòu)類型Car、對應(yīng)的變量(smartCar)及指針(pCar),用于表示平臺運(yùn)動部分?jǐn)?shù)字模型,參考程序如下:
嵌入程序?qū)@該變量展開設(shè)計。主流程圖如圖4所示。
圖4 嵌入式主程序流程圖
3.1.2 200μs定時中斷及驅(qū)動函數(shù)程序設(shè)計
基于51單片機(jī)定時器1實(shí)現(xiàn)。自動裝載為200μs的周期性定時,在計數(shù)溢出時發(fā)出中斷申請;對應(yīng)的中斷處理程序完成時基的累積(為系統(tǒng)提供節(jié)拍器)及調(diào)用平臺驅(qū)動函數(shù),根據(jù)smartCar參數(shù)(如收到的操作指令)來改變平臺的運(yùn)動狀態(tài)。Timer1中斷處理流程圖參看圖5,關(guān)鍵程序參考如下:
圖5 Timer1中斷處理流程圖
3.1.3 串口通信程序設(shè)計
使用藍(lán)牙模塊出廠默認(rèn)設(shè)置(直連模式);在通信連接之前,需要事先完成藍(lán)牙設(shè)備之間的配對工作。所有對通信口的編程工作,均僅對單片機(jī)UATR接口展開,共包括三部分:其一:初始化,將串口按9600-8-N-1的格式設(shè)置;其二:數(shù)據(jù)發(fā)送部分,由于其實(shí)時性要求不高,使用查詢方式進(jìn)行;數(shù)據(jù)接收部分:移動平臺的實(shí)時性,在本平臺中具有最高級別,因此采用中斷方式進(jìn)行處理,并對smartCar變量進(jìn)行賦值。其三:數(shù)據(jù)格式設(shè)計,由于來自APP的指令比均由單byte數(shù)據(jù)組成(單ASCII字符),加之藍(lán)牙通信的特點(diǎn),數(shù)據(jù)接收部分,未做特殊處理;發(fā)送信息由字符型數(shù)組構(gòu)成,長度為18,具體信息如圖6所示。
圖6 發(fā)送數(shù)據(jù)幀結(jié)構(gòu)
3.1.4 傳感器相關(guān)程序設(shè)計
BS18B20傳感器采用1wire的接口方式,其初始化過程和數(shù)據(jù)采集讀取去方式采用常規(guī)方式即可。這里需要注意兩點(diǎn):其一是時隙配置問題。使用軟件來模擬來1wire接口,通過軟定時加上適當(dāng)?shù)膮?shù)配置可較好滿足要求。其二是數(shù)據(jù)處理的問題,下面程序可作為參考:先將兩個8bits數(shù)據(jù)合成為有符號的int型數(shù)據(jù),再乘以加權(quán)值“0.0625”。
這種算法適用于12bits溫度數(shù)據(jù)格式,此時的采樣間隔最好大于1秒。
移動平臺的遙控及數(shù)據(jù)顯示APP,使用圖形化的AI2編程工具設(shè)計開發(fā)完成。非常適合非軟件專業(yè)的人員快速開發(fā)特有移動應(yīng)用APP。
使用ProteusEDA工具繪制主要功能電路圖(51系列),如圖7所示。
圖7 平臺主要功能仿真電路
示波器(T2)用于電路工作波形觀察;虛擬終端(T1)可用于仿真串口通信,RS232仿真器件(P1)可實(shí)現(xiàn)與PC機(jī)物理串口連接,實(shí)現(xiàn)虛擬與現(xiàn)實(shí)相結(jié)合,再配合“串口助手”等工具,可以完成與通信相關(guān)的功能測試及故障定位。
通過獨(dú)立的藍(lán)牙模塊+串口助手,直接觀察各種收發(fā)數(shù)據(jù)傳遞的過及其正確性。
模塊裝配布局優(yōu)先考慮平臺移動時的穩(wěn)定性、方便安裝維護(hù)及美感。如電池組盡量放置在移動平臺的幾何重心上、兩塊帶有散熱片的L298組件放置在平臺頭部,LCD顯示器放置在尾部等布局,藍(lán)牙模塊的天線部分不要被遮擋。使用杜邦線按設(shè)計圖連接各模塊,通過熱熔膠對各模塊進(jìn)行固定。實(shí)物圖如圖8所示。
圖8 移動平臺實(shí)物圖(右側(cè) APP界面)
實(shí)際電路與仿真電路存在著一定差別,實(shí)物參數(shù)的離散性,可能導(dǎo)致各模塊之間的配合失當(dāng),這主要是程序運(yùn)行時間分配不合理造成的。通過適當(dāng)調(diào)整定時器、中斷選則及處理、時延函數(shù)的偏差等方式,來滿足各模塊實(shí)時性要求,直至全部模塊能夠正常穩(wěn)定工作。
由于51單片機(jī)的資源限制,增加過多功能,可導(dǎo)致系統(tǒng)設(shè)計失敗。如需要可更換性能更強(qiáng)的單片機(jī)做控制中心(如增強(qiáng)型51系列、arduino系列、Cortex-Mx系列、RISC-V系列等);也可以增加通信和應(yīng)用處理能力(如WIFI+中移物網(wǎng)OneNet/阿里云Iot等),以適應(yīng)更廣的需求。
本平臺還何以用于產(chǎn)品安裝工藝的訓(xùn)練。一個良好的產(chǎn)品,沒有必要的生產(chǎn)安裝工藝作保障,是達(dá)不到預(yù)期目的的。貼近產(chǎn)品開發(fā)設(shè)計的實(shí)戰(zhàn)過程,也是初衷之一。