0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于MPU6050與COF屏的航空姿態(tài)儀表

迪文智能屏 ? 2022-05-31 11:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

——來自迪文開發(fā)者論壇用戶

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


方案框圖

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

資料下載

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

http://inforum.dwin.com.cn:20080/forum.php?mod=viewthread&tid=5767&extra=page%3D2

方案簡介

硬件連接

COF屏轉(zhuǎn)接板HDL662S的P32腳連接MPU6050模塊的SDL腳,P33腳連接MPU6050的SDA腳,VCC和GND分別接電源和地。同時,轉(zhuǎn)接板的UART2連接上位機,其中P21~P26六個IO接入上位機6個LED燈上,方便輸出調(diào)試信息,通過LED顯示運行狀態(tài)向COF屏輸出命令。

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

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

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

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

數(shù)據(jù)讀取主要程序代碼

(1)I2C讀取MPU6050數(shù)據(jù)代碼

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

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

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

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

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

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

對應(yīng)的硬件IO口連接定義端口代碼:

sbit IIC_SCL=P3^2;

sbit IIC_SDA=P3^3;

#define SDA_IN() P3MDOUT=P3MDOUT&0xF7;

#define SDA_OUT() P3MDOUT=P3MDOUT|0x08;

現(xiàn)在,將上述各個部分的代碼整合編譯調(diào)試上載到COF屏,就能成功讀取MPU6050的各個寄存器數(shù)值。調(diào)試中需注意:

  • MPU6050的I2C主頻與原RTC設(shè)備的主頻有差別,需適當(dāng)調(diào)整I2C函數(shù)操作中的時序,使其適配;
  • T5L處理器速度快,在兩次讀取間要做一定的等待,否則會出現(xiàn)讀取數(shù)據(jù)為零的情況。經(jīng)反復(fù)測試,設(shè)置20ms間隔來讀取傳感器數(shù)據(jù),此間隔對本實驗完全適用;
  • I2C、SDA線接觸一定要良好,否則會造成通訊中斷,需要重新初始化才能得到正確數(shù)據(jù)。

(2)姿態(tài)解算編寫響應(yīng)的函數(shù)對MPU6050原始數(shù)據(jù)進(jìn)行解算,得到可供幾何顯示和姿態(tài)判斷使用的數(shù)據(jù)。姿態(tài)解算通過三軸的重力加速度分量得到以地球切面為參照系的三軸夾角轉(zhuǎn)換為以設(shè)備自身坐標(biāo)下的飛行夾角。定義如下:橫滾角Roll(Ф)表示繞X軸的旋轉(zhuǎn),仰俯角Pitch(θ)表示繞Y軸的旋轉(zhuǎn),航向角Yaw (ψ)表示繞Z軸的旋轉(zhuǎn),如圖所示。


計算代碼算法如下:

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界面設(shè)計

設(shè)計參考了航空飛機中常見的G530導(dǎo)航儀儀表面板。面板總體布局分左側(cè)姿態(tài)數(shù)據(jù)顯示區(qū)、中右區(qū)為姿態(tài)主顯示區(qū),以及下方的操作控制區(qū)。

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

1.4 姿態(tài)儀表顯示分區(qū)設(shè)計

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

1.5 姿態(tài)儀表DGUS 界面

(4) 可視化C51軟件開發(fā)

C51軟件開發(fā)主要有幾部分:

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

2. 姿態(tài)解算:通過前面的算法,編寫響應(yīng)的函數(shù)對原始數(shù)據(jù)進(jìn)行解算,獲得姿態(tài)顯示所需要的顯示數(shù)據(jù);

3.數(shù)據(jù)可視化:將姿態(tài)的各個角度數(shù)據(jù)轉(zhuǎn)換成UI組件的控制數(shù)據(jù),比如負(fù)數(shù)和小數(shù)的顯示問題、量程的問題等;

4.開發(fā)必要調(diào)試和跟蹤工具代碼,方便開發(fā)調(diào)試。

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

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

1.6 姿態(tài)可視化C51軟件開發(fā)

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cof
    cof
    +關(guān)注

    關(guān)注

    5

    文章

    52

    瀏覽量

    23773
  • MPU6050
    +關(guān)注

    關(guān)注

    39

    文章

    310

    瀏覽量

    73061
收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    小安派BW21-CBV-Kit入門教程之DMP6讀取MPU6050數(shù)據(jù)

    本示例將演示使用 DMP6 從 MPU6050 獲取數(shù)據(jù)。MPU6050 配備了數(shù)字運動處理器 (DMP),用于處理運動算法的計算,如轉(zhuǎn)換為三軸偏航/俯仰/滾動平面、轉(zhuǎn)換為四元數(shù)或轉(zhuǎn)換為歐拉角。
    的頭像 發(fā)表于 06-19 14:20 ?273次閱讀
    小安派BW21-CBV-Kit入門教程之DMP6讀取<b class='flag-5'>MPU6050</b>數(shù)據(jù)

    MPU-6000和MPU-6050產(chǎn)品規(guī)格書

    電子發(fā)燒友網(wǎng)站提供《MPU-6000和MPU-6050產(chǎn)品規(guī)格書.pdf》資料免費下載
    發(fā)表于 04-29 16:52 ?0次下載

    STM32F103對ADS1298和MPU6050同時采集數(shù)據(jù)會出現(xiàn)ADS1298數(shù)據(jù)丟失

    你好,請問我用STM32F103對ADS1298和MPU6050同時采集數(shù)據(jù)為何會出現(xiàn)ADS1298數(shù)據(jù)丟失,而單獨對期中任何一個傳感器單獨進(jìn)行數(shù)據(jù)采集就沒有任何問題
    發(fā)表于 03-22 17:29

    關(guān)于mpu6050問題

    我很早之前買了一個,我現(xiàn)在使用這個mpu6050,我在調(diào)mpu6050數(shù)據(jù)時候,數(shù)據(jù)抖動特別大,我沒動這個mpu6050,它自己都有抖動,然后本來放在水平,他的機械中值是2.5,但是我水平抖動后,機械中值突然變成了-258,這是
    發(fā)表于 03-09 17:17

    mpu6050航向角漂移很嚴(yán)重的原因及解決方法

    mpu6050航向角漂移很嚴(yán)重的原因及解決方案
    的頭像 發(fā)表于 03-01 11:47 ?2368次閱讀

    vofa+獲取MPU6050運動姿態(tài)數(shù)據(jù)

    數(shù)據(jù)
    PCB56242069
    發(fā)布于 :2025年02月20日 17:55:37

    零知開源——ESP8266+MPU6050 實現(xiàn)運動姿態(tài)檢測

    零知ESP8266的I2C通信 ? ? ? ?在運動姿態(tài)檢測、機器人平衡控制、VR頭戴設(shè)備等應(yīng)用中,MPU6050(三軸加速度計+三軸陀螺儀)是一個常見的姿態(tài)傳感器。而ESP8266作為一款低功耗
    的頭像 發(fā)表于 02-20 17:54 ?1931次閱讀
    零知開源——ESP8266+<b class='flag-5'>MPU6050</b> 實現(xiàn)運動<b class='flag-5'>姿態(tài)</b>檢測

    零知開源——ESP8266+MPU6050 實現(xiàn)運動姿態(tài)檢測

    ?零知ESP8266學(xué)習(xí)教程 在運動姿態(tài)檢測、機器人平衡控制、VR頭戴設(shè)備等應(yīng)用中,MPU6050(三軸加速度計+三軸陀螺儀)是一個常見的姿態(tài)傳感器。而ESP8266作為一款低功耗Wi-Fi模塊
    發(fā)表于 02-20 17:44

    零知開源——MPU6050六軸傳感器模塊實踐教程,輕松實現(xiàn)運動檢測!

    運動。 ? ? ? 通過本教程,您將學(xué)習(xí)如何讀取并處理這些數(shù)據(jù),為您的項目添加運動檢測和姿態(tài)控制功能。 一、硬件連接 ? ? ? ?在開始編程之前,首先需要正確連接MPU6050模塊到零知增強板。 1.所需材料: 零知增強板 MPU60
    的頭像 發(fā)表于 02-20 16:17 ?1135次閱讀
    零知開源——<b class='flag-5'>MPU6050</b>六軸傳感器模塊實踐教程,輕松實現(xiàn)運動檢測!

    零知開源——MPU6050六軸傳感器模塊實踐教程,輕松實現(xiàn)運動檢測!

    MPU6050是一款含有三軸加速度計和三軸陀螺儀的傳感器,能夠測量設(shè)備的傾斜情況和旋轉(zhuǎn)運動。 通過本教程,您將學(xué)習(xí)如何讀取并處理這些數(shù)據(jù),為您的項目添加運動檢測和姿態(tài)控制功能。 一、硬件連接 在開始編程
    發(fā)表于 02-20 15:53

    STM32單片機+MPU6050設(shè)計一個電子水平儀

    本項目基于STM32F103C8T6單片機設(shè)計一款電子水平儀。STM32F103C8T6作為一種性能強大的微控制器,具有較高的計算能力和豐富的外設(shè)接口,能夠滿足項目對實時數(shù)據(jù)處理和顯示控制的需求。該單片機將與MPU6050傳感器相結(jié)合,利用其內(nèi)置的加速度計和陀螺儀,實現(xiàn)設(shè)備的傾斜角度測量。
    的頭像 發(fā)表于 01-09 11:14 ?1863次閱讀
    STM32單片機+<b class='flag-5'>MPU6050</b>設(shè)計一個電子水平儀

    MPU6050讀取數(shù)據(jù)有問題

    在調(diào)試MPU6050時讀取原始數(shù)據(jù)只有X軸在變化,Y軸和Z軸的數(shù)據(jù)一直沒有變化,已經(jīng)調(diào)試兩天了,這個是讀取的數(shù)據(jù)
    發(fā)表于 12-09 10:40

    機智云開源自動化控制篇-姿態(tài)翻轉(zhuǎn)報警器

    使用STM32F103C8T6單片機、ESP-01S模塊、MPU6050傳感器、蜂鳴器以及0.96寸IIC接口OLED顯示,基于機智云平臺共同開發(fā)姿態(tài)翻轉(zhuǎn)報警器,為智能化場景增添強大功能。適用
    的頭像 發(fā)表于 08-07 08:11 ?656次閱讀
    機智云開源自動化控制篇-<b class='flag-5'>姿態(tài)</b>翻轉(zhuǎn)報警器

    如何通過I2C將加速度計MPU6050型連接到ESP8266?

    有沒有人通過 I2C 將加速度計MPU6050型連接到ESP8266? 我想讀取寄存器who_am_i,但我無法從從機獲取 ACK 信號
    發(fā)表于 07-22 06:18

    硬件i2c讀寫MPU6050

    本資料為MPU6050
    發(fā)表于 07-15 11:45 ?4次下載

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品