馮澤霖
摘要:隨著自動化技術(shù)的普及,無人機在軍事、攝影、高空作業(yè)等相關(guān)行業(yè)已經(jīng)成為必不可少的一部分,但是現(xiàn)有飛控仿真平臺收費高昂且比較單一,不能對飛行姿態(tài)進行仿真同時對專業(yè)水平要求較高,降低了用戶體驗感。本設(shè)計通過LabVIEW軟件與單片機來對飛行姿態(tài)進行讀取和分析。通過LabVIEW軟件進行數(shù)據(jù)讀取,數(shù)據(jù)分析,數(shù)據(jù)仿真等一系列位功能實現(xiàn)對飛行姿態(tài)的精準仿真本設(shè)計邏輯層次分明,投入成本低廉,同時具有人機交互性強、實時性好等優(yōu)點。
關(guān)鍵詞:LabVIEW;單片機;數(shù)據(jù)處理
為了讀取飛行過程中的位姿數(shù)據(jù),筆者結(jié)合單片機開發(fā)板,運用六軸陀螺儀模塊和VISA串口等相關(guān)知識,進行對飛行姿態(tài)數(shù)據(jù)的實時采集與顯示,并在LabVIEW2018軟件上搭建信息采集的前面板與子程序,成功實現(xiàn)了對飛行姿態(tài)的讀取與仿真,經(jīng)過測試,仿真效果與實際符合良好,可滿足基本的飛行控制要求。
1軟硬件的設(shè)計思路
1.1 位姿數(shù)據(jù)采集模塊設(shè)計
利用MPU6050實現(xiàn)對飛行器俯仰角、航向角、翻滾角以及各個方向上角加速度的測量。陀螺儀可測范圍為±250,±500,±1000°/秒(dps),加速度計可測范圍為±2,±4,±8??筛鶕?jù)不同需求設(shè)定不同的精度。和其他設(shè)備寄存器之間的通信采用400kHz的I2C接口或1MHz的SPI接口(SPI僅MPU-6000可用)。對于需要高速傳輸?shù)膽?yīng)用,對寄存器的讀取和中斷可用20MHz的SPI。另外,片上還內(nèi)嵌了一個溫度傳感器和在工作環(huán)境下僅有±1%變動的振蕩器。
1.2軟硬件通信設(shè)計
LabVIEW是由美國NI公司推出的一種圖形化的編程語言和開發(fā)環(huán)境,它廣泛的被工業(yè)界,學(xué)術(shù)界和研究實驗室所接受,被公認為標準的數(shù)據(jù)采集和儀器控制軟件,相較于C++或匯編語言而言由于其圖形化編程方式具有簡單易學(xué),直觀方便,功能強大等特點。
運用STM32F103芯片構(gòu)成的單片機對MPU6050進行數(shù)據(jù)通信,將收集到的數(shù)據(jù)通過串口通信與PC建立連接。單片機和PC的通信,是通過單片機串口和PC串口之間的硬件連接實現(xiàn)的。在本設(shè)計中,上、下位機分工明確,作為下位機核心器件的單片機負責(zé)數(shù)據(jù)的采集和通信,而上位機主要負責(zé)將單片機傳遞過來的數(shù)據(jù)進行分析以及處理,在本設(shè)計中表現(xiàn)為對飛行姿態(tài)的仿真。為便于數(shù)據(jù)分析以及處理,還需要數(shù)據(jù)庫的支持,這種應(yīng)用的核心是數(shù)據(jù)通信,其包括單片機和上位機之間、客戶端和服務(wù)器之間,以及客戶端和客戶端之間的通信,而單片機和上位機之間的數(shù)據(jù)通信則是整個系統(tǒng)的基礎(chǔ)。
單片機與PC之間的通信主要采取并行通信,其優(yōu)點為傳輸速度快,誤差不累計、信號之間不會互相影響以及可根據(jù)需求設(shè)定信號傳輸頻率,具有較高的自由度,為PC端讀取提供了便利。
本設(shè)計的硬件連接采用3線制為了方便信號的驗證,我在本設(shè)計中添加了TFTLCD顯示屏,以便于和上傳到PC端的數(shù)據(jù)進行誤差檢驗。
在保證單片機能夠順利通信之后,才能實現(xiàn)數(shù)據(jù)的實時采集和存儲。
2.1 LabVIEW前面板設(shè)計
該設(shè)計需要有飛行姿態(tài)數(shù)據(jù)、飛行狀態(tài)的3D仿真,并能夠根據(jù)飛行姿態(tài)的數(shù)據(jù)不斷展示飛行狀態(tài),采集頻率的快慢能夠更改,儲存的位置與形式可以選擇,并使串口通信所發(fā)送的數(shù)據(jù)參數(shù)與單片機開發(fā)版(主要包括波特率、奇偶校驗位、數(shù)據(jù)位數(shù)等)保持一致。運用labview前面板的功能對這些功能進行布局,設(shè)計其主界面。
其具有的功能顯示信號的傳輸形式并能對格式進行更改來確保與單片機發(fā)送過來的信號形式一致,飛行位姿的數(shù)據(jù)、以及3D顯示窗口等,并可向單片機發(fā)送目標飛行姿態(tài),配合電機可實現(xiàn)對飛行狀態(tài)的控制。
運行l(wèi)abview之前,將單片機的串口參數(shù)設(shè)置正確,并選擇信號的格式。點擊開始按鍵,單片機就發(fā)送收集來的飛行姿態(tài)數(shù)據(jù),PC端根據(jù)設(shè)定的波特率結(jié)合角度變化量算出角加速度,以上過程處理完畢后,LabVIEW界面上可以看到無人機的飛行姿態(tài)。
2.2 LabVIEW子程序設(shè)計
建立主界面顯示,需要建立連接單片機與仿真圖形的框架,為此通過對LabVIEW相關(guān)VISA功能的引用使之能夠接受串口發(fā)送來的數(shù)據(jù),通過VISA打開功能使串口打開,之后用VISA配置串口對串口的波特率,奇偶校驗位,位數(shù)等參數(shù)進行設(shè)置,為接收數(shù)據(jù)做好準備,通過VISA讀取對串口發(fā)送來的數(shù)據(jù)進行接收,具體程序框圖如圖1所示:
首先,串口傳輸設(shè)定一個固定的參數(shù),通過串口傳輸?shù)絣abview前面板上顯示。程序開始運行后,如果滿足通訊協(xié)議,就進入數(shù)據(jù)的讀取階段,執(zhí)行接下來的數(shù)據(jù)處理。之后進入while循環(huán),在循序結(jié)構(gòu)圖中,不斷接收單片機發(fā)送來的數(shù)據(jù),并將發(fā)送來的數(shù)據(jù)作為全局變量。為接下來的數(shù)據(jù)分析以及仿真做準備。全局變量提取完畢后進入仿真階段,在仿真階段中可以對單片機發(fā)送來的數(shù)據(jù)進行由字符串到數(shù)字的轉(zhuǎn)化,根據(jù)處理好的數(shù)據(jù)進行仿真,通過繪制3D圖形并根據(jù)位姿數(shù)據(jù)便可繪制出飛行器的飛行姿態(tài)。后面板設(shè)計如圖2所示。
3 結(jié)語
文章所闡述的飛行姿態(tài)仿真設(shè)計充分利用VISA相關(guān)功能對數(shù)據(jù)進行讀取,方法簡單而且通用性強,對無人機飛控的門檻降低了一個層次,誠然,本設(shè)計在精準度方面無法實現(xiàn)高精度測量,但是功能齊全,是一種在低成本下研究飛控的方法。
參考文獻:
[1]袁媛.基于LabVIEW的虛擬儀器技術(shù)研究與應(yīng)用[J].農(nóng)業(yè)網(wǎng)信息,2005,(04).
[2]吳成東,等.LabVIEW虛擬儀器程序設(shè)計及應(yīng)用[M].北京:人民郵電出版社,2008.
[3]豐偉偉,等.LabVIEW中TDMS文件和SQL數(shù)據(jù)庫數(shù)據(jù)處理速度的研究[J].儀器儀表與分析檢測,2011,(01):10-12.
[4]章佳榮,等.精通LabVIEW虛擬儀器程序設(shè)計與案例實現(xiàn)[M].北京:人民郵電出版社,2013.
[5]NationalInstrumentsCorporation,LabVIEWReportGenerationVIsHelp,2004,12(10):45-48.