李肅義,楊 帆,楊 強(qiáng)
(吉林大學(xué)儀器科學(xué)與電氣工程學(xué)院,長(zhǎng)春 130061)
隨著中國(guó)制造2025、工業(yè)4.0、新工科建設(shè)等國(guó)家戰(zhàn)略的提出,高校教學(xué)實(shí)踐、課程實(shí)驗(yàn)、實(shí)習(xí)等成為鍛煉學(xué)生動(dòng)手能力、增強(qiáng)學(xué)生創(chuàng)新實(shí)踐能力、促進(jìn)產(chǎn)學(xué)研結(jié)合以及培養(yǎng)更多復(fù)合型優(yōu)秀人才的重要環(huán)節(jié)[1-3]。在部分工科實(shí)驗(yàn)教學(xué)中,儀器儀表、微處理器、傳感器以及操作系統(tǒng)、軟硬件平臺(tái)都是支撐實(shí)驗(yàn)順利開展的基本條件。由于國(guó)際貿(mào)易戰(zhàn)、專利戰(zhàn)等制裁的影響,部分企業(yè)已經(jīng)出現(xiàn)芯片短缺、專利不再授權(quán)、原材料限制等問題的發(fā)生,甚至部分高校也在被制裁名單之中,一些專業(yè)的軟件也不再被授權(quán)使用[4-5]。這些現(xiàn)象的發(fā)生無疑對(duì)新冠肺炎疫情下的復(fù)工復(fù)產(chǎn)、學(xué)術(shù)科研有著嚴(yán)重影響,如果國(guó)際形式持續(xù)惡化,最終高校相關(guān)實(shí)踐教學(xué)環(huán)節(jié)也會(huì)由于上述問題而無法順利開展。推進(jìn)高校實(shí)驗(yàn)教學(xué)軟、硬件平臺(tái)的國(guó)產(chǎn)化,是在滿足國(guó)家戰(zhàn)略、順利實(shí)現(xiàn)不同階段的新發(fā)展目標(biāo)以及為社會(huì)可持續(xù)培養(yǎng)復(fù)合型優(yōu)秀人才的必經(jīng)之路[6-7]。
姿態(tài)信息檢測(cè)在無人機(jī)、體感遙控、機(jī)器人、慣性導(dǎo)航等多個(gè)領(lǐng)域都有著重要作用[8-9]。姿態(tài)檢測(cè)裝置一般體積和功耗較大,且使用的傳感器及配套上位機(jī)軟件均為進(jìn)口,成本較高。開展姿態(tài)檢測(cè)系統(tǒng)設(shè)計(jì),有助于姿態(tài)檢測(cè)系統(tǒng)向小型化、智能化、國(guó)產(chǎn)化方向推進(jìn),服務(wù)于更多姿態(tài)檢測(cè)領(lǐng)域。
大學(xué)生創(chuàng)新實(shí)驗(yàn)項(xiàng)目是專業(yè)理論和實(shí)踐相結(jié)合的培養(yǎng)方法,不但可鍛煉學(xué)生獨(dú)立分析和動(dòng)手的能力,而且也能培養(yǎng)學(xué)生創(chuàng)新思維。本文以儀器專業(yè)大學(xué)生創(chuàng)新實(shí)驗(yàn)項(xiàng)目為例,設(shè)計(jì)一套基于國(guó)產(chǎn)微處理器及傳感器實(shí)現(xiàn)的三軸姿態(tài)信息檢測(cè)裝置以及一套基于國(guó)產(chǎn)CPU和國(guó)產(chǎn)操作系統(tǒng)運(yùn)行的上位機(jī)軟件。本實(shí)驗(yàn)項(xiàng)目可讓學(xué)生在實(shí)驗(yàn)過程中熟悉國(guó)產(chǎn)軟、硬件平臺(tái)的發(fā)展及應(yīng)用示例,通過原理圖與PCB設(shè)計(jì)、焊接調(diào)試、嵌入式編程、上位機(jī)編程與二次開發(fā)、平臺(tái)移植與部署、軟硬件聯(lián)合調(diào)試等步驟,全方位培養(yǎng)學(xué)生的創(chuàng)新實(shí)踐能力。
本文依托儀器專業(yè)大學(xué)生創(chuàng)新實(shí)驗(yàn)項(xiàng)目,根據(jù)課題立項(xiàng)需求,通過硬、軟件設(shè)計(jì),軟、硬件聯(lián)合調(diào)試等過程,完成實(shí)驗(yàn)項(xiàng)目的預(yù)期指標(biāo)。實(shí)驗(yàn)設(shè)計(jì)思路如圖1所示,學(xué)生通過在項(xiàng)目中對(duì)軟硬件設(shè)計(jì)和聯(lián)合調(diào)試過程,在完成項(xiàng)目成果驗(yàn)收的同時(shí),其獨(dú)立分析設(shè)計(jì)能力、動(dòng)手實(shí)踐能力、邏輯與創(chuàng)新思維以及問題定位與解決能力都能得到有效的鍛煉和培養(yǎng)。
圖1 實(shí)驗(yàn)設(shè)計(jì)思路
本文設(shè)計(jì)的三軸姿態(tài)信息采集系統(tǒng),主要包含硬件采集裝置與上位機(jī)監(jiān)測(cè)軟件。硬件部分主要通過微處理器配合傳感器實(shí)現(xiàn)三軸角速度、三軸加速度、三軸磁場(chǎng)以及翻轉(zhuǎn)角、俯仰角、航向角等姿態(tài)信息的檢測(cè)。通過按鍵輸入、光敏輸入、RGB 狀態(tài)燈實(shí)現(xiàn)顯示模式切換和系統(tǒng)狀態(tài)提示,同時(shí)支持北斗的經(jīng)緯度定位、氣壓海拔參數(shù)的檢測(cè)功能。采集的多種參數(shù)可通過TFT液晶屏動(dòng)態(tài)刷新,同時(shí)支持將數(shù)據(jù)流通過串口輸出至上位機(jī),通過軟件實(shí)現(xiàn)對(duì)數(shù)據(jù)流進(jìn)一步的解析和動(dòng)態(tài)渲染功能。檢測(cè)系統(tǒng)設(shè)計(jì)方案如圖2 所示。
硬件設(shè)計(jì)主要分為采集、控制以及數(shù)據(jù)狀態(tài)顯示系統(tǒng),如圖3 所示。采集系統(tǒng)主要包括姿態(tài)、北斗、光敏傳感器的數(shù)據(jù)采集以及多路按鍵掃描;控制系統(tǒng)通過微處理器對(duì)采集的數(shù)據(jù)進(jìn)行分析處理,傳送至數(shù)據(jù)顯示系統(tǒng);數(shù)據(jù)狀態(tài)顯示系統(tǒng)包括液晶屏、軟件上位機(jī)的實(shí)現(xiàn)數(shù)據(jù)顯示功能,RGB 指示燈用于提示系統(tǒng)不同運(yùn)行狀態(tài)。
圖3 硬件總體設(shè)計(jì)
系統(tǒng)采用國(guó)產(chǎn)JY901B 三軸姿態(tài)傳感器,該傳感器支持三軸角速度、三軸加速度、三軸磁場(chǎng)、翻轉(zhuǎn)角、俯仰角、航向角、氣壓、海拔等信息的檢測(cè),與微處理器之間采用全速400KB的I2C通信。
北斗傳感器采用國(guó)產(chǎn)ATGM332D-5N31 傳感器,與微處理器之間采用USART通信,支持北斗獨(dú)立定位模式,冷啟動(dòng)捕獲靈敏度高達(dá)-148 dBm,跟蹤靈敏度可達(dá)-162 dBm,定位精度2.5 m(CEP50),配合外置1 580 MHz天線完成搜星工作。
光敏電阻采用主控模塊的A/DC GPIO通道采集;按鍵電路通過主控模塊對(duì)多路GPIO 進(jìn)行電平掃描,實(shí)現(xiàn)按鍵識(shí)別,采集系統(tǒng)原理如圖4 所示。
圖4 采集系統(tǒng)原理圖
本文中微處理器選擇的是國(guó)產(chǎn)ESP32-WROOM-32E模組,與以往STM32 同主頻、價(jià)格的系列相比,ESP32 模組擁有更大的片上內(nèi)存、豐富的外設(shè)接口、自集成藍(lán)牙、WiFi 射頻功能,在一些物聯(lián)網(wǎng)以及采集和控制場(chǎng)景中,基本可以滿足硬件配置需求,主控系統(tǒng)原理如圖5 所示。
圖5 控制系統(tǒng)原理圖
為方便多種信息的實(shí)時(shí)觀察,硬件裝置采用8.1 mm TFT LCD屏,分辨率240 ×320,采用ILI9341 四線制SPI驅(qū)動(dòng),18 pin FPC底座連接,整體功耗約為0.32 W。通過控制系統(tǒng)處理過后的數(shù)據(jù)也可通過硬件串口傳輸?shù)缴衔粰C(jī)進(jìn)行后續(xù)的數(shù)據(jù)刷新和動(dòng)態(tài)曲線渲染。RGB指示燈用于提示系統(tǒng)運(yùn)行中的不同種狀態(tài)及異常等。顯示系統(tǒng)原理如圖6 所示。
圖6 顯示系統(tǒng)原理圖
雙層電路板焊接后實(shí)物如圖7 所示,硬件裝置多數(shù)元器件均采用模組化封裝,以便于學(xué)生在實(shí)驗(yàn)過程中完成焊接和器件更換。硬件系統(tǒng)電源由5 V USB接口輸入,經(jīng)AMS1117-3.3 降至3.3 V,可供主控模組以及液晶屏使用;除供電外,USB 接口與CP2102 芯片進(jìn)行串口通信,配合下載電路實(shí)現(xiàn)嵌入式程序的燒錄以及將采集數(shù)據(jù)流通過串口傳送至上位機(jī)。4 路按鍵輸入實(shí)現(xiàn)對(duì)硬件系統(tǒng)的重啟和重置、液晶屏翻頁以及屏幕亮度模式的切換。1 路光敏電阻完成對(duì)外界環(huán)境光照的采集,實(shí)現(xiàn)對(duì)屏幕亮度的自動(dòng)調(diào)節(jié)。1 路RGB 指示燈,用于提示系統(tǒng)不同工作中的狀態(tài)。
圖7 電路板
軟件設(shè)計(jì)主要包括嵌入式程序和上位機(jī)監(jiān)測(cè)軟件設(shè)計(jì)。嵌入式程序采用開源編輯器Visual Studio Code開發(fā),基于Arduino 框架完成ESP32 主控的嵌入式開發(fā)工作[10];液晶屏顯示驅(qū)動(dòng)基于LVGL 開源UI 框架完成圖形界面的開發(fā)[11]。上位機(jī)監(jiān)測(cè)軟件基于Qt開源跨平臺(tái)框架完成用戶界面和應(yīng)用[12-14]。
嵌入式軟件設(shè)計(jì)流程如圖8 所示。在硬件裝置供電后,對(duì)串口、模擬串口、I2C、SPI和傳感器進(jìn)行配置和初始化,如果某一分支出現(xiàn)異常則會(huì)通過RGB指示燈提示,初始化正常后開始傳感器數(shù)據(jù)采集;整體嵌入式程序包括兩種數(shù)據(jù)顯示方法,一是將采集的數(shù)據(jù)整合協(xié)議流,通過串口傳輸至上位機(jī),二是通過基于LVGL視覺框架渲染,將檢測(cè)到的多種數(shù)據(jù)參數(shù)傳入框架,并在液晶屏上完成顯示;設(shè)計(jì)4 路按鍵電平采集和一路光敏電阻A/D采集,分別完成硬件系統(tǒng)的重啟、重置,液晶屏的頁面切換以及配合光敏電阻實(shí)現(xiàn)對(duì)液晶屏亮度的自動(dòng)調(diào)節(jié)功能。
圖8 嵌入式軟件設(shè)計(jì)流程
上位機(jī)終端軟件設(shè)計(jì)流程如圖9 所示。軟件開啟時(shí),對(duì)系統(tǒng)的線程、信號(hào)槽以及各部分功能模塊進(jìn)行初始化,使用QtSerialPort 類實(shí)現(xiàn)與硬件的串口通信,待硬件端與上位機(jī)主機(jī)連接后,自動(dòng)檢測(cè)相關(guān)COM口實(shí)現(xiàn)開關(guān)功能。串口線程開啟后,等待硬件采集端發(fā)送的數(shù)據(jù)流,并校驗(yàn)是否完整,如果數(shù)據(jù)流在傳輸過程中因?yàn)橥饨绺蓴_、通信異常而導(dǎo)致協(xié)議不完整,則自動(dòng)舍棄當(dāng)前數(shù)據(jù)流,等待下一次的通信。使用Qtcharts 等類實(shí)現(xiàn)對(duì)檢測(cè)數(shù)據(jù)的動(dòng)態(tài)刷新、曲線動(dòng)態(tài)渲染等功能。
圖9 終端軟件設(shè)計(jì)流程
硬件測(cè)試裝置如圖10 所示。電路板尺寸為7.69 cm×5.11 cm,與液晶屏尺寸基本一致,電路板四周共有4 個(gè)M3 的通孔,整體質(zhì)量113 g,可安裝在無人機(jī)、無人車等需要采集姿態(tài)信息的裝置上。裝置接通5 V電源后,系統(tǒng)開始初始化,調(diào)度傳感器完成相關(guān)參數(shù)的檢測(cè)。在使用北斗傳感器檢測(cè)經(jīng)緯度時(shí),需將天線置于室外或窗邊,可加速搜星完成定位和授時(shí)功能。
圖10 硬件測(cè)試
上位機(jī)硬件測(cè)試環(huán)境:飛騰D2000 處理器,8GB內(nèi)存,256GB SSD 固態(tài)硬盤;軟件測(cè)試環(huán)境:麒麟操作系統(tǒng)V10,Qt 7.0.2 版本。將USB 供電線連接至主機(jī),打開系統(tǒng)終端,執(zhí)行“sudo chmod a +rw /dev/ttyUSB0”命令,使該串口獲得通信權(quán)限,打開上位機(jī)軟件,在串口處下拉選擇當(dāng)前串口ttyUSB0,并點(diǎn)擊右側(cè)打開按鈕,在軟件上方面板實(shí)時(shí)刷新硬件檢測(cè)的數(shù)據(jù)。終端軟件測(cè)試如圖11 所示。
圖11 終端軟件測(cè)試結(jié)果
為保證曲線顯示效果,可通過選擇不同種類參數(shù)實(shí)現(xiàn)動(dòng)態(tài)曲線的渲染。在軟件右側(cè)狀態(tài)欄中,會(huì)顯示每一次系統(tǒng)切換檢測(cè)類別、曲線的時(shí)間節(jié)點(diǎn);下方的接收和發(fā)送狀態(tài)欄,可顯示當(dāng)前系統(tǒng)接收和發(fā)送的數(shù)據(jù)總量。
憑借開源框架Qt在跨平臺(tái)方面的優(yōu)勢(shì),使得上位機(jī)軟件在多系統(tǒng)平臺(tái)部署成為可能。在Windows 11系統(tǒng)按照上位機(jī)監(jiān)測(cè)軟件設(shè)計(jì)流程進(jìn)行部署和開發(fā),主要完成串口開關(guān)、數(shù)據(jù)解析、檢測(cè)種類切換、數(shù)據(jù)刷新顯示和動(dòng)態(tài)曲線渲染等功能。開發(fā)完成后,在麒麟平臺(tái)同樣安裝Qt 開發(fā)環(huán)境,經(jīng)過系統(tǒng)權(quán)限配置、進(jìn)程管理調(diào)度和部分UI適配,完成本次上位機(jī)軟件在麒麟平臺(tái)的部署過程,所有在Windows 系統(tǒng)上的功能全部在麒麟平臺(tái)實(shí)現(xiàn),上位機(jī)雙平臺(tái)部署如圖12 所示。
圖12 雙平臺(tái)部署結(jié)果
針對(duì)上位機(jī)軟件的部署運(yùn)行,相比較Windows 系統(tǒng),基于開源Linux 的麒麟操作系統(tǒng)在安全性、穩(wěn)定性、啟動(dòng)速度都具備明顯的優(yōu)勢(shì)。而國(guó)產(chǎn)化軟硬件平臺(tái)在進(jìn)行一些復(fù)雜圖形渲染時(shí),相比Windows 軟硬件平臺(tái)仍具有一定的差距,但大部分功能均可實(shí)現(xiàn)。
上位機(jī)部署的過程中,分別在Windows和麒麟系統(tǒng)中進(jìn)行軟件運(yùn)行測(cè)試,其性能對(duì)比見表1。國(guó)產(chǎn)化軟硬件平臺(tái)編譯后的應(yīng)用程序在體積和啟動(dòng)時(shí)間上得益于Linux底層優(yōu)化,相比Windows 平臺(tái)具有一定的優(yōu)勢(shì);在程序啟動(dòng)后但未運(yùn)行時(shí),內(nèi)存占用基本一致,但程序開始運(yùn)行后,動(dòng)態(tài)曲線的實(shí)時(shí)渲染,其內(nèi)存占用情況相比Windows平臺(tái)差距較大,且在執(zhí)行一些復(fù)雜渲染任務(wù)時(shí),卡頓明顯。
表1 內(nèi)存占用對(duì)比
硬件平臺(tái),無論是CPU、GPU還是硬件開發(fā)板,國(guó)外平臺(tái)性能較強(qiáng),并且由于產(chǎn)量高、產(chǎn)業(yè)鏈條完善,價(jià)格也具有一定優(yōu)勢(shì)。軟件平臺(tái),國(guó)內(nèi)操作系統(tǒng)起步較晚、開發(fā)者較少,無論是從平臺(tái)的優(yōu)化程度、適配軟件的豐富程度、更新迭代的速度來看,國(guó)產(chǎn)軟件平臺(tái)也存在較大差距[15-18]。但針對(duì)高校教學(xué)和實(shí)驗(yàn)課程,在一些基礎(chǔ)的實(shí)驗(yàn)場(chǎng)景中,國(guó)產(chǎn)軟硬件平臺(tái)基本可滿足需求。而對(duì)于國(guó)產(chǎn)化軟硬件平臺(tái)的發(fā)展來說,用戶群體的數(shù)量是平臺(tái)穩(wěn)定的關(guān)鍵,熟悉的用戶越多、使用的群體越龐大是平臺(tái)發(fā)展的基礎(chǔ)。加速推進(jìn)國(guó)產(chǎn)化軟硬件平臺(tái)教材、課程的布局是關(guān)鍵,能在高校中培養(yǎng)人才,并加大國(guó)產(chǎn)化平臺(tái)在相關(guān)領(lǐng)域的宣傳力度和企業(yè)中相關(guān)崗位需求,讓更多的開發(fā)者加入到國(guó)產(chǎn)化軟硬件平臺(tái)的建設(shè)。
市場(chǎng)需求量是平臺(tái)發(fā)展的關(guān)鍵。需要加速軟硬件平臺(tái)上下游的產(chǎn)業(yè)布局,推動(dòng)科技企業(yè)相關(guān)產(chǎn)品國(guó)產(chǎn)化的替代進(jìn)程,協(xié)調(diào)推進(jìn)供需兩端。
生態(tài)社區(qū)建設(shè)是平臺(tái)創(chuàng)新的關(guān)鍵。國(guó)產(chǎn)化軟硬件平臺(tái)的發(fā)展需要更多技術(shù)人才共同維護(hù)和迭代更新,以防入門的開發(fā)者遇到問題無法快速解決,逐漸失去熱情。加強(qiáng)開源社區(qū)的生態(tài)建設(shè),吸引更多國(guó)內(nèi)甚至國(guó)際的開發(fā)者共同維護(hù),不斷發(fā)現(xiàn)指出當(dāng)前版本的不足和漏洞,讓開發(fā)者參與版本迭代,讓更多的開發(fā)經(jīng)歷能被記錄,對(duì)后續(xù)入門開發(fā)者具有指導(dǎo)意義。
關(guān)注度是平臺(tái)可持續(xù)的關(guān)鍵。不僅是高校、企業(yè)開發(fā)者的關(guān)注,更重要的是國(guó)家政策和投資市場(chǎng)的關(guān)注度。隨著近年來技術(shù)制裁、貿(mào)易問題不斷加劇,國(guó)家出臺(tái)了相關(guān)政策,大力推動(dòng)國(guó)產(chǎn)化的進(jìn)程。發(fā)展軟硬件平臺(tái)的國(guó)產(chǎn)化是個(gè)長(zhǎng)期過程,需要不斷地投入研發(fā)成本、產(chǎn)品驗(yàn)證再到量產(chǎn)。隨著國(guó)家政策補(bǔ)貼的加持,讓更多企業(yè)得到資本市場(chǎng)的關(guān)注,企業(yè)為社會(huì)提供更多國(guó)產(chǎn)化平臺(tái)服務(wù)矩陣和崗位需求,增強(qiáng)校、企聯(lián)動(dòng),共同促進(jìn)國(guó)產(chǎn)化平臺(tái)的可持續(xù)發(fā)展。
通過本次國(guó)產(chǎn)化平臺(tái)的三軸姿態(tài)信息采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),學(xué)生結(jié)合自身專業(yè)基礎(chǔ)知識(shí)和相關(guān)實(shí)踐訓(xùn)練,過程進(jìn)行硬件設(shè)計(jì)、軟件設(shè)計(jì)以及聯(lián)合調(diào)試,可鍛煉學(xué)生獨(dú)立分析、動(dòng)手能力和培養(yǎng)學(xué)生的創(chuàng)新思維??勺寣W(xué)生了解國(guó)產(chǎn)化軟硬件平臺(tái)目前的發(fā)展以及國(guó)內(nèi)外軟硬件的差距和需要重點(diǎn)突破的技術(shù)方向。相信未來隨著國(guó)家對(duì)芯片半導(dǎo)體、自主操作系統(tǒng)的持續(xù)推進(jìn),更多的高校學(xué)生能夠成為專業(yè)的開發(fā)者,讓更多的教學(xué)實(shí)驗(yàn)項(xiàng)目可以應(yīng)用在國(guó)產(chǎn)化軟硬件平臺(tái)。
實(shí)施創(chuàng)新驅(qū)動(dòng)發(fā)展戰(zhàn)略,必須緊緊抓住科技創(chuàng)新這個(gè)“牛鼻子”,切實(shí)營(yíng)造實(shí)施創(chuàng)新驅(qū)動(dòng)發(fā)展戰(zhàn)略的體制機(jī)制和良好環(huán)境,加快形成我國(guó)發(fā)展新動(dòng)源。
——《在中央財(cái)經(jīng)領(lǐng)導(dǎo)小組第七次會(huì)議上的講話》(2014 年8 月18 日)