RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

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

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

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

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

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

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


方案框圖

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

資料下載

方案完整資料下載可前往迪文開(kāi)發(fā)者論壇獲取:

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

方案簡(jiǎn)介

硬件連接

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

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

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

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

1.2 COF屏與MPU6050模塊連接實(shí)物圖

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

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

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

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

編寫(xiě)針對(duì)MPU6050的各個(gè)操作命令:

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

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

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

對(duì)應(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)在,將上述各個(gè)部分的代碼整合編譯調(diào)試上載到COF屏,就能成功讀取MPU6050的各個(gè)寄存器數(shù)值。調(diào)試中需注意:

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

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


計(jì)算代碼算法如下:

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è)計(jì)

設(shè)計(jì)參考了航空飛機(jī)中常見(jiàn)的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è)計(jì)

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

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

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

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

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

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

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

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

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

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

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

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

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

    關(guān)注

    5

    文章

    48

    瀏覽量

    23301
  • MPU6050
    +關(guān)注

    關(guān)注

    39

    文章

    307

    瀏覽量

    71362
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

    CW32模塊使用 MPU6050六軸傳感器

    MPU6050 是 InvenSense 公司推出的整合性 6 軸運(yùn)動(dòng)處理組件,其內(nèi)部整合了 3 軸陀螺儀和 3 軸加速度傳感器,并且含有一個(gè)IIC 接口, 可用于連接外部磁力傳感器,并利用自帶
    的頭像 發(fā)表于 11-14 17:54 ?253次閱讀
    CW32模塊使用 <b class='flag-5'>MPU6050</b>六軸傳感器

    機(jī)智云開(kāi)源自動(dòng)化控制篇-姿態(tài)翻轉(zhuǎn)報(bào)警器

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

    如何通過(guò)I2C將加速度計(jì)MPU6050型連接到ESP8266?

    有沒(méi)有人通過(guò) I2C 將加速度計(jì)MPU6050型連接到ESP8266? 我想讀取寄存器who_am_i,但我無(wú)法從從機(jī)獲取 ACK 信號(hào)
    發(fā)表于 07-22 06:18

    硬件i2c讀寫(xiě)MPU6050

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

    如何利用中斷從Mpu6050讀取數(shù)據(jù)?

    我正在使用延遲從 psoc 5LP CY8C5888LTI-LP097 中的 mpu-6050 imu 讀取數(shù)據(jù)。 我不想用延時(shí)器,我想用帶中斷的定時(shí)器代替它。 下面附上我的項(xiàng)目文件。 請(qǐng)幫我創(chuàng)建中斷函數(shù)。
    發(fā)表于 07-03 06:18

    求助求助,MPU6050模塊用DMP時(shí)的自檢問(wèn)題

    我在mpu6050的DMP自檢始終不通過(guò),我通過(guò)debug發(fā)現(xiàn)里面的兩個(gè)值st_shift_cust,st_shift_var不對(duì),讀出來(lái)數(shù)值很大。st_shift_var讀出來(lái)5.幾
    發(fā)表于 05-18 17:27

    請(qǐng)問(wèn)MPU6050可以做振動(dòng)探測(cè)器使用嗎?

    MPU6050可以做振動(dòng)探測(cè)器使用嗎?
    發(fā)表于 05-08 07:54

    mpu6050芯片的INT中斷信號(hào)引腳和單片機(jī)之間需要接電阻嗎?

    mpu6050芯片的INT中斷信號(hào)引腳和單片機(jī)之間需要接電阻嗎? 我見(jiàn)有的電路圖里面沒(méi)有接,有的卻說(shuō)需要接,到底是怎樣的?
    發(fā)表于 05-07 07:21

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

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

    MPU6050 dmp庫(kù)定時(shí)查詢讀取偶爾獲取失敗的原因?

    在玩mpu6050 dmp庫(kù)的時(shí)候遇到了一些問(wèn)題,dmp設(shè)置fifo頻率20Hz,每50ms程序中讀取一次,但是偶爾會(huì)有都不到數(shù)據(jù)的情況,mpu_read_fifo_stream讀取失敗。主程序
    發(fā)表于 04-30 06:37

    MPU6050勻速轉(zhuǎn)動(dòng)一段時(shí)間后,偏航角不變?cè)趺唇鉀Q?

    使用MPU6050 檢測(cè)機(jī)器人的偏航角度。當(dāng)機(jī)器人原地連續(xù)旋轉(zhuǎn)時(shí)(朝一個(gè)方向),DMP 輸出的偏航角開(kāi)始正常,之后會(huì)出現(xiàn)輸出的偏航角不變,此時(shí)機(jī)器人速度只要發(fā)生一下變化,DMP輸出的偏航角就會(huì)開(kāi)始
    發(fā)表于 04-09 08:24

    大彩科技COF系列2.4寸串口發(fā)布!

    廣州大彩科技新品發(fā)布:大彩科技COF系列2.4寸串口發(fā)布!此次發(fā)布的是S系列平臺(tái)2.4寸COF超薄結(jié)構(gòu)串口,分辨率為240*320,該平臺(tái)采用了Cortex-M3內(nèi)核的處理器,內(nèi)置
    的頭像 發(fā)表于 03-18 14:36 ?891次閱讀
    大彩科技<b class='flag-5'>COF</b>系列2.4寸串口<b class='flag-5'>屏</b>發(fā)布!

    什么是姿態(tài)傳感器MPU6050

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

    ADXL345和MPU6050的區(qū)別

    ADXL345和MPU6050是兩種常見(jiàn)的加速度計(jì)和陀螺儀傳感器,用于測(cè)量物體的加速度和旋轉(zhuǎn)速度。它們?cè)谠O(shè)計(jì)、性能和應(yīng)用方面有一些區(qū)別。在本文中,我們將對(duì)ADXL345和MPU6050的區(qū)別進(jìn)行詳細(xì)
    的頭像 發(fā)表于 01-04 11:30 ?7559次閱讀
    RM新时代网站-首页