<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于MPU6050與COF屏的航空姿態儀表

迪文智能屏 ? 2022-05-31 11:30 ? 次閱讀

——來自迪文開發者論壇用戶

本方案使用COF屏的IO口模擬I2C信號與MPU6050通訊,實現航空姿態儀表可視化顯示。MPU6050采集數據,T5L0芯片進行數據讀取和濾波算法處理,計算出姿態數據,驅動COF屏進行數據實時可視化顯示??梢暬缑嫱ㄟ^迪文DGUS軟件設置,有效縮減工程開發時間。


方案框圖

7de87d04-dde2-11ec-b80f-dac502259ad0.png

資料下載

方案完整資料下載可前往迪文開發者論壇獲?。?/p>

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屏輸出命令。

7e3532b6-dde2-11ec-b80f-dac502259ad0.png

1.1 COF屏與MPU6050模塊連接接線圖

7e69fc8a-dde2-11ec-b80f-dac502259ad0.png

1.2 COF屏與MPU6050模塊連接實物圖

數據讀取主要程序代碼

(1)I2C讀取MPU6050數據代碼

COF屏為用戶提供了可使用的IO口,我們可以直接使用IO口模擬I2C信號與MPU600通訊。C51 V6例程中有一個I2C RTC硬件的驅動代碼,基于這個代碼來修改,可以得到MPU6050使用的通訊函數。從I2C RTC硬件的驅動代碼中可移植的主要代碼函數:

7ec6d9be-dde2-11ec-b80f-dac502259ad0.png

編寫針對MPU6050的各個操作命令:

7ef071fc-dde2-11ec-b80f-dac502259ad0.png

結合MPU6050寄存器定義設置,使T5L0成功讀取完整正確數據。MPU主要用到的寄存器如下所示:

7f0d6988-dde2-11ec-b80f-dac502259ad0.png

對應的硬件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導航儀儀表面板。面板總體布局分左側姿態數據顯示區、中右區為姿態主顯示區,以及下方的操作控制區。

7f6af1c0-dde2-11ec-b80f-dac502259ad0.png

1.4 姿態儀表顯示分區設計

7fa30af6-dde2-11ec-b80f-dac502259ad0.png

1.5 姿態儀表DGUS 界面

(4) 可視化C51軟件開發

C51軟件開發主要有幾部分:

1. 通過I2C接口完成MPU6050的讀寫命令操作,從傳感器里獲得完整正確的數據;

2. 姿態解算:通過前面的算法,編寫響應的函數對原始數據進行解算,獲得姿態顯示所需要的顯示數據;

3.數據可視化:將姿態的各個角度數據轉換成UI組件的控制數據,比如負數和小數的顯示問題、量程的問題等;

4.開發必要調試和跟蹤工具代碼,方便開發調試。

這里面通過數據顯示窗口主要顯示7個數據,分別為三向的姿態角度,三軸的加速度以及溫度。同時根據三項的姿態角度計算可視化的控制數據寫入顯示組件地址里:

7fc9911c-dde2-11ec-b80f-dac502259ad0.png

1.6 姿態可視化C51軟件開發

COF屏的C51主代碼如下,重要部分已做了注釋。此項目使用T5L的C51操作I2C讀取MPU6050數據的代碼已附帶在文件附件中。 mpu6050_i2c.zip用戶開發體驗
“通過此實驗已經完美的獲取了MPU6050六軸陀螺傳感器的數據讀取,姿態解算的方法,同時結合COF屏完美的展示了MPU6050姿態的可視化。在實驗測試中,COF屏在完成負載的儀表界面顯示時,依然完成了I2C數據讀取,復雜的浮點計算,以及內存地址操作。在實際測試中讀取I2C速度可達8KBps,能夠在1ms內讀取完整的MPU7項數據,并且在18ms內完成了原始數據的三角函數計算工作,解算出飛航的各個姿態數據,并且更新到顯示屏上?!?/p>

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • cof
    cof
    +關注

    關注

    5

    文章

    48

    瀏覽量

    23178
  • MPU6050
    +關注

    關注

    38

    文章

    304

    瀏覽量

    70027
收藏 人收藏

    評論

    相關推薦

    MPU6050休眠后如何配置重力加速度喚醒MPU6050?

    MPU6050休眠后如何配置重力加速度喚醒MPU6050自己?
    發表于 05-07 06:19

    什么是姿態傳感器MPU6050

     MPU6050是6軸運動處理傳感器,它集成了3軸MEMS陀螺儀,3軸MEMS加速度計,以及一個可擴展的數字運動處理器DMP。使用它就是為了得到待測物體(如四軸飛行器、平衡小車)x、y、z軸的傾角(俯仰角Pitch、翻滾角Roll、偏航角Yaw)。
    發表于 02-15 10:53 ?1518次閱讀
    什么是<b class='flag-5'>姿態</b>傳感器<b class='flag-5'>MPU6050</b>

    ADXL345和MPU6050的區別

    ADXL345和MPU6050是兩種常見的加速度計和陀螺儀傳感器,用于測量物體的加速度和旋轉速度。它們在設計、性能和應用方面有一些區別。在本文中,我們將對ADXL345和MPU6050的區別進行詳細
    的頭像 發表于 01-04 11:30 ?4274次閱讀

    mpu6050mpu6500哪個性能好

    MPU6050MPU6500都是InvenSense公司生產的高性能六軸陀螺儀和加速度計傳感器。它們被廣泛應用于各種領域,如移動設備、虛擬現實、機器人、汽車等。雖然它們之間有一些區別,但是無法簡單
    的頭像 發表于 12-21 16:54 ?3947次閱讀

    MPU-6000和MPU-6050產品說明書

    mpu6050模塊介紹?
    發表于 11-30 09:17 ?0次下載

    MCU\mpu6050 通信及電路原理圖

    SPI\IIC\RS485通信動態圖展示,MCU\mpu6050 通信及電路原理圖
    發表于 10-17 16:36 ?5次下載

    基于CW32的MPU6050姿態傳感器的應用

    一、簡介 1.MPU6050是一種常用的六軸姿態傳感器模塊,結合了三軸陀螺儀和三軸加速度計,以及一個可擴展的數字運動處理器DMP(Digital Motion Processor),可用I2C接口
    的頭像 發表于 10-10 16:42 ?897次閱讀
    基于CW32的<b class='flag-5'>MPU6050</b><b class='flag-5'>姿態</b>傳感器的應用

    MPU6050姿態參數如何通過HC05藍牙模塊出來?

    我現在用手機通過HC05藍牙模塊實現了對遙控車的控制,現在要在這個基礎上增加一個MPU6050模塊,我想把這個MPU6050模塊的姿態數據通過HC05藍牙模塊在手機上顯示出來,我用的野火
    發表于 10-07 08:02

    基于CW32系列MCU的MPU6050姿態傳感器設計

    1. MPU6050是一種常用的六軸姿態傳感器模塊,結合了三軸陀螺儀和三軸加速度計,以及一個可擴展的數字運動處理器DMP(Digital Motion Processor),可用I2C接口連接
    的頭像 發表于 09-27 13:49 ?795次閱讀
    基于CW32系列MCU的<b class='flag-5'>MPU6050</b><b class='flag-5'>姿態</b>傳感器設計

    MPU6050使用互補濾波與卡爾曼濾波算法進行姿態解算

    MPU6050使用互補濾波與卡爾曼濾波算法進行姿態解算
    發表于 08-07 15:46 ?3次下載

    用Arduino和MPU6050控制伺服電機

    電子發燒友網站提供《用Arduino和MPU6050控制伺服電機.zip》資料免費下載
    發表于 07-03 10:59 ?1次下載
    用Arduino和<b class='flag-5'>MPU6050</b>控制伺服電機

    MPU6050運動跟蹤設備開源分享

    電子發燒友網站提供《MPU6050運動跟蹤設備開源分享.zip》資料免費下載
    發表于 06-29 14:57 ?3次下載
    <b class='flag-5'>MPU6050</b>運動跟蹤設備開源分享

    MPU6050教程開源分享

    電子發燒友網站提供《MPU6050教程開源分享.zip》資料免費下載
    發表于 06-25 15:18 ?8次下載
    <b class='flag-5'>MPU6050</b>教程開源分享

    使用MPU6050的驅動庫來獲取姿態數據

    對于大多數MPU6050的應用來說,獲取到的原始數據并沒有多大用處,我們需要對原始數據進行姿態融合解算,最終得到姿態數據,也就是三個歐拉角:航向角(yaw)、橫滾角(roll)和俯仰角(pitch)。
    發表于 06-15 15:03 ?1289次閱讀
    使用<b class='flag-5'>MPU6050</b>的驅動庫來獲取<b class='flag-5'>姿態</b>數據

    FPGA實現MPU6050姿態解算

    一. 簡介 在之前的文章中(很久之前了,已經通過FPGA獲取到了MPU6050的六軸數據: 三軸加速 和 三軸角速度,但是沒有對它進行然后處理。那么在本篇文章中,將利用Cordic算法來進行姿態解算
    發表于 06-08 13:49
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>