本方案使用COF屏的IO口模擬I2C信號與MPU6050通訊,實現航空姿態儀表可視化顯示。MPU6050采集數據,T5L0芯片進行數據讀取和濾波算法處理,計算出姿態數據,驅動COF屏進行數據實時可視化顯示。可視化界面通過迪文DGUS軟件設置,有效縮減工程開發時間。
方案框圖
http://inforum.dwin.com.cn:20080/forum.php?mod=viewthread&tid=5767&extra=page%3D2
方案簡介
硬件連接
COF屏轉接板HDL662S的P32腳連接MPU6050模塊的SDL腳,P33腳連接MPU6050的SDA腳,VCC和GND分別接電源和地。同時,轉接板的UART2連接上位機,其中P21~P26六個IO接入上位機6個LED燈上,方便輸出調試信息,通過LED顯示運行狀態向COF屏輸出命令。
1.1 COF屏與MPU6050模塊連接接線圖
1.2 COF屏與MPU6050模塊連接實物圖
數據讀取主要程序代碼
(1)I2C讀取MPU6050數據代碼
COF屏為用戶提供了可使用的IO口,我們可以直接使用IO口模擬I2C信號與MPU600通訊。C51 V6例程中有一個I2C RTC硬件的驅動代碼,基于這個代碼來修改,可以得到MPU6050使用的通訊函數。從I2C RTC硬件的驅動代碼中可移植的主要代碼函數:
編寫針對MPU6050的各個操作命令:
結合MPU6050寄存器定義設置,使T5L0成功讀取完整正確數據。MPU主要用到的寄存器如下所示:
對應的硬件IO口連接定義端口代碼:
sbit IIC_SCL=P3^2;
sbit IIC_SDA=P3^3;
#define SDA_IN() P3MDOUT=P3MDOUT&0xF7;
#define SDA_OUT() P3MDOUT=P3MDOUT|0x08;
現在,將上述各個部分的代碼整合編譯調試上載到COF屏,就能成功讀取MPU6050的各個寄存器數值。調試中需注意:
- MPU6050的I2C主頻與原RTC設備的主頻有差別,需適當調整I2C函數操作中的時序,使其適配;
- T5L處理器速度快,在兩次讀取間要做一定的等待,否則會出現讀取數據為零的情況。經反復測試,設置20ms間隔來讀取傳感器數據,此間隔對本實驗完全適用;
- I2C、SDA線接觸一定要良好,否則會造成通訊中斷,需要重新初始化才能得到正確數據。
(2)姿態解算編寫響應的函數對MPU6050原始數據進行解算,得到可供幾何顯示和姿態判斷使用的數據。姿態解算通過三軸的重力加速度分量得到以地球切面為參照系的三軸夾角轉換為以設備自身坐標下的飛行夾角。定義如下:橫滾角Roll(Ф)表示繞X軸的旋轉,仰俯角Pitch(θ)表示繞Y軸的旋轉,航向角Yaw (ψ)表示繞Z軸的旋轉,如圖所示。
計算代碼算法如下:
roll = atan2(2* Gy*Gz + 2*G*Gx, -2*Gx*Gx -2*Gy*Gy+ 1)
pitch = asin(-2*Gx*Gz + 2*G* Gy)
yaw = atan2(2*( Gx*Gy +G*Gz),G*G+Gx*Gx-Gy*Gy-Gz*Gz)
(3) DGUS界面設計
設計參考了航空飛機中常見的G530導航儀儀表面板。面板總體布局分左側姿態數據顯示區、中右區為姿態主顯示區,以及下方的操作控制區。
1.4 姿態儀表顯示分區設計
1.5 姿態儀表DGUS 界面
(4) 可視化C51軟件開發
C51軟件開發主要有幾部分:
1. 通過I2C接口完成MPU6050的讀寫命令操作,從傳感器里獲得完整正確的數據;
2. 姿態解算:通過前面的算法,編寫響應的函數對原始數據進行解算,獲得姿態顯示所需要的顯示數據;
3.數據可視化:將姿態的各個角度數據轉換成UI組件的控制數據,比如負數和小數的顯示問題、量程的問題等;
4.開發必要調試和跟蹤工具代碼,方便開發調試。
這里面通過數據顯示窗口主要顯示7個數據,分別為三向的姿態角度,三軸的加速度以及溫度。同時根據三項的姿態角度計算可視化的控制數據寫入顯示組件地址里:
1.6 姿態可視化C51軟件開發
COF屏的C51主代碼如下,重要部分已做了注釋。此項目使用T5L的C51操作I2C讀取MPU6050數據的代碼已附帶在文件附件中。 mpu6050_i2c.zip用戶開發體驗
“通過此實驗已經完美的獲取了MPU6050六軸陀螺傳感器的數據讀取,姿態解算的方法,同時結合COF屏完美的展示了MPU6050姿態的可視化。在實驗測試中,COF屏在完成負載的儀表界面顯示時,依然完成了I2C數據讀取,復雜的浮點計算,以及內存地址操作。在實際測試中讀取I2C速度可達8KBps,能夠在1ms內讀取完整的MPU7項數據,并且在18ms內完成了原始數據的三角函數計算工作,解算出飛航的各個姿態數據,并且更新到顯示屏上。”
-
cof
+關注
關注
5文章
48瀏覽量
23306 -
MPU6050
+關注
關注
39文章
307瀏覽量
71403
發布評論請先 登錄
相關推薦
評論