?

基于UART總線的四旋翼飛行器姿態采集

2018-11-01 03:43劉衛輝李建國孟瑞鋒
機械工程與自動化 2018年5期
關鍵詞:波特率前面板字符串

劉衛輝,李建國,王 磊,賈 偉,孟瑞鋒

(內蒙古工業大學 機械學院,內蒙古 呼和浩特 010051)

0 引言

UART總線是異步串口,一般由波特率產生器(產生的波特率等于傳輸波特率的16倍)、UART接收器、UART發送器組成,硬件上有兩根線,一根是用于發送的TX線,一根是用于接收的RX線[1]。UART總線通信在本文中簡稱串口通信,串口通信的原理簡單。LabVIEW作為一種專門面向工程師的基于數據流的圖形化編程語言,通常被稱為G語言,其底層代碼仍然為C語言,但圖形化編程模式大大簡化了工程應用中的編程時間[2],LabVIEW中專門為用戶提供了VISA節點這種虛擬串口操作程序,我們利用VISA節點的“配置、寫入、讀取、關閉”操作即可進行串口的“讀取、寫入、停止”等,該操作步驟簡單,編程容易。

四旋翼飛行器是一種具有垂直起降功能的飛行器,由于其飛行穩定性高、質量輕、體積小等特點,在電子偵察、地形測繪、噴灑農藥、電影拍攝等領域被越來越多地應用。四旋翼飛行器的飛行穩定控制是根據飛行器目前的俯仰角、翻滾角和偏航角的姿態實時控制4個旋翼的轉速,使飛行器始終處在一個動態平衡狀態的過程,因此四旋翼飛行器姿態角的準確測量決定了飛行器后續控制質量的高低。MPU6050是一種高精度姿態測量芯片,將其與四旋翼飛行器固定連接,則MPU6050的姿態數據即為四旋翼飛行器的姿態。JY901姿態測量模塊是基于MPU6050芯片的九軸數字陀螺儀,可以提供三軸加速度、三軸角速度和三軸角度信息,其數據傳輸方式為UART總線,因此四旋翼飛行器的姿態信息被JY901姿態測量模塊檢測后,可以通過串口與上位機連接,將MPU6050芯片得到的四旋翼飛行器的姿態角傳輸到控制器中。

1 串口操作程序

1.1 打開串口

第一步要打開串口,利用VISA配置串口資源即可打開相應串口,設置合適的波特率與數據位等,VISA資源打開程序框圖如圖1所示。

圖1 VISA資源打開

1.2 將數據寫入姿態采集芯片

將串口端口參數設置正確并成功打開之后,可以通過VISA寫操作對相應的串口執行寫操作,寫入信息的目的是改變JY901的出廠設置以及對姿態角誤差進行校準。圖2為對串口寫操作所執行的程序框圖。

圖2 串口寫入操作

1.3 從姿態測量芯片中讀取數據和關閉VISA

VISA寫操作是將外界信息寫入MPU6050芯片,而VISA讀操作是從MPU6050模塊中讀取信息[3],原理與VISA寫入時一樣,過程類似。為了在每次運行或重啟程序后VISA打開正常,數據讀取可靠,在程序最后需要將VISA虛擬串口關閉,運用VISA關閉控件可以完成此功能。VISA讀取和關閉程序如圖3所示。

串口信息采集到之后,將其信息輸出到前面板,圖4為JY901九軸數字陀螺儀輸出信息的前面板顯示結果。

2 數據處理

VISA串口數據讀取出的為十六進制字符串,串口信息傳輸為異步傳輸,允許有一定的時間差,但并不是VISA讀取出的所有十六進制數都為有效數字,這其中有很多數據是為了描述信息是否開始以及接下來的信息種類的特殊字符,因此在得到的信息中如何分離出有效信息就顯得非常重要。

分析VISA讀取出的串口信息,將有效信息分離出來叫做信號處理,字符串信號處理方法有多種,具體采用的方法是由串口輸出信息決定的。本文所使用的是以MPU6050為主芯片的JY901模塊,其串口輸出信息如表1所示。

由表1可以發現,JY901是按照時間輸出、加速度輸出、角速度輸出、角度輸出、磁場輸出的順序依次輸出信號的。這一組信號包括55個字符串,當我們在讀取出字符串時,首先應該檢測字符串所包含的信息是否完整,如果信息不完整,后續的信息處理就無法正常進行,所以信號處理的第一步為計算信號長度,如果信號長度大于等于110個字符,則此條信號一定包含了一段完整的信號。然后檢測幀頭位置,分離有效信息。分離有效信息程序如圖5所示。

表1 JY901九軸數字陀螺儀串口輸出信息數據結構

分離出的有效字符串在前面板的顯示結果如圖6所示。

得到的包含完整信息的字符串由于不能直接經過數值運算得到姿態角信息,因此需要將字符串轉換為數組進行計算,然后輸入到LabVIEW中的波形圖中進行實時顯示。圖7為將數組中包含的姿態角信息輸入到波形圖中顯示出來的程序框圖。

圖3串口讀取和VISA關閉程序圖4串口讀取數據顯示圖5串口輸出數據處理程序

圖6 分離的有效字符串在前面板的顯示

最后將串口采集到的JY901芯片的三軸加速度、三軸角速度和三軸角度實時顯示,分別如圖8、圖9、圖10所示。

3 結束語

運用LabVIEW中的VISA節點對串口數據總線進行讀寫操作,這種基于數據流的G編程語言大大簡化了程序復雜度,可以準確快速高效地對串口進行讀寫操作,為四旋翼飛行器的數據采集提供了一種普遍適用的通信方案。

圖7 姿態角信息運算與顯示成波形圖

圖8三軸加速度輸出結果圖9三軸角速度輸出結果圖10三軸角度輸出結果

猜你喜歡
波特率前面板字符串
UART 波特率檢測電路的FPGA 設計算法與實現
顏值高和散熱強可以并存3款高品質機箱推薦
基于文本挖掘的語詞典研究
CAN 總線波特率自適應程序設計
電競潮牌范航嘉GX520S機箱評測
電競潮牌范 航嘉GX520S機箱評測
可以同時應用于不同終端設備的波特率發生器
波特率自適應的CAN驅動在嵌入式Linux下的實現①
SQL server 2008中的常見的字符串處理函數
最簡單的排序算法(續)
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合