找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 14578|回復(fù): 16
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)怎么使用MPU6050讀取角度值程序 ?

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:171069 發(fā)表于 2017-4-8 10:40 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
20黑幣
目前只能初始化mpu6050,如何通過程序使陀螺儀和加速度計(jì)的初始值轉(zhuǎn)化成角度??

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:173909 發(fā)表于 2017-4-8 19:01 | 只看該作者

#include <REG52.H>       
#include <math.h>    //Keil library  
#include <stdio.h>   //Keil library       
#include <INTRINS.H>


typedef unsigned char  uchar;
typedef unsigned short ushort;
typedef unsigned int   uint;

//******功能模塊頭文件*******
//#include "DELAY.H"                    //延時(shí)頭文件
#include "lcd1602.H"                        //LCD1602文件
#include "MPU6050.H"                //MPU6050頭文件

//******角度參數(shù)************
float Accel_ax;
float Accel_az;             //X軸加速度值暫存
float Angle;         //小車最終傾斜角度
uchar value;                 //角度正負(fù)極性標(biāo)記
//float  Accel_x;
//float  Angle_ax;
//float Gyro_y;        //Y軸陀螺儀數(shù)據(jù)暫存
//*********************************************************
// 傾角計(jì)算(卡爾曼融合)
//*********************************************************

float Angle_Calcu(void)         
{
        //------加速度--------------------------

        //范圍為2g時(shí),換算關(guān)系:16384 LSB/g
        //角度較小時(shí),x=sinx得到角度(弧度), deg = rad*180/3.14
        //因?yàn)閤>=sinx,故乘以1.3適當(dāng)放大

        Accel_ax  = GetData(ACCEL_XOUT_H);          //讀取X軸加速度
        Accel_az  = GetData(ACCEL_ZOUT_H);          //讀取X軸加速度
        Angle = (int)(atan(Accel_ax/Accel_az)*180/3.14);
/*        Accel_x  = GetData(ACCEL_XOUT_H);          //讀取X軸加速度
        Angle_ax = (Accel_x - 1100) /16384;   //去除零點(diǎn)偏移,計(jì)算得到角度(弧度)
        Angle_ax = Angle_ax*1.2*180/3.14;     //弧度轉(zhuǎn)換為度,
    return        Angle_ax;
        Gyro_y = GetData(GYRO_YOUT_H);              //靜止時(shí)角速度Y軸輸出為-30左右
        Gyro_y = -(Gyro_y + 30)/16.4;         //去除零點(diǎn)偏移,計(jì)算角速度值,負(fù)號為方向處理
        Angle  = Angle + Gyro_y*0.01;  //角速度積分得到傾斜角度.*/       
        return         Angle;                                                                                                          
}

void main()
{         //float ax,ay,az,xx,yy,zz;
    float xx;
        delay(500);                //上電延時(shí)               
        InitLcd();                //液晶初始化
        InitMPU6050();        //初始化MPU6050
        delay(150);
        while(1)
        {               
                xx=Angle_Calcu();
                lcd_printf(dis,xx);                        //轉(zhuǎn)換數(shù)據(jù)顯示
            DisplayListChar(2,0,dis,4);  
        }
}



這是我寫的程序希望能解決
回復(fù)

使用道具 舉報(bào)

板凳
ID:171069 發(fā)表于 2017-4-9 10:40 來自手機(jī) | 只看該作者
mr_zhangpupu 發(fā)表于 2017-4-8 19:01
#include        
#include     //Keil library  
#include    //Keil library       

差了好多東西啊
回復(fù)

使用道具 舉報(bào)

地板
ID:148552 發(fā)表于 2017-4-10 21:00 | 只看該作者
陀螺儀直接讀出來的值是沒有任何意義的,但是可以通過四元數(shù)計(jì)算得到角度,這個(gè)角度就反應(yīng)陀螺儀的實(shí)際角度
回復(fù)

使用道具 舉報(bào)

5#
ID:188289 發(fā)表于 2017-4-10 22:31 | 只看該作者
你需要使用模擬IIC來模擬時(shí)序 ,進(jìn)行6軸原始數(shù)據(jù)讀取,買模塊的店家連接應(yīng)該有程序,你直接移植過來
回復(fù)

使用道具 舉報(bào)

6#
ID:171069 發(fā)表于 2017-4-19 10:52 來自手機(jī) | 只看該作者
caojunchocjc 發(fā)表于 2017-4-10 22:31
你需要使用模擬IIC來模擬時(shí)序 ,進(jìn)行6軸原始數(shù)據(jù)讀取,買模塊的店家連接應(yīng)該有程序,你直接移植過來

可以讀取原始值,我想通過算法輸出一個(gè)方向的角度,51用dmp沒有必要
回復(fù)

使用道具 舉報(bào)

7#
ID:171069 發(fā)表于 2017-4-19 10:53 來自手機(jī) | 只看該作者
你像風(fēng)兒來了 發(fā)表于 2017-4-10 21:00
陀螺儀直接讀出來的值是沒有任何意義的,但是可以通過四元數(shù)計(jì)算得到角度,這個(gè)角度就反應(yīng)陀螺儀的實(shí)際角度

不會(huì)啊
回復(fù)

使用道具 舉報(bào)

8#
ID:154197 發(fā)表于 2017-4-19 23:28 | 只看該作者
本帖最后由 helios 于 2017-4-19 23:32 編輯

角度的話可以用反三角函數(shù),假設(shè)你把加速度計(jì)初始化為2g,那x軸的角度=180.0*asin((float)x/16384)/3.1416;
然后假設(shè)你把陀螺儀初始化為+-2000度/s,那x軸的角速度=gy/16.4
當(dāng)然你會(huì)發(fā)現(xiàn)靜止時(shí)角速度不為0,需要調(diào)零
回復(fù)

使用道具 舉報(bào)

9#
ID:221855 發(fā)表于 2017-7-25 16:02 | 只看該作者
用stc12c5a60s2寫,怎樣 用互補(bǔ)濾波?
回復(fù)

使用道具 舉報(bào)

10#
ID:148552 發(fā)表于 2017-7-25 20:21 | 只看該作者
這里面有,我自己測試過

IAP15W4K58S4-小四軸DIY.zip

577.07 KB, 下載次數(shù): 433

回復(fù)

使用道具 舉報(bào)

11#
ID:222437 發(fā)表于 2017-7-26 00:48 | 只看該作者
我這有基于51單片,在1602顯示角度的陀螺儀gy 271程序
回復(fù)

使用道具 舉報(bào)

12#
ID:224251 發(fā)表于 2017-8-3 09:15 | 只看該作者
啟動(dòng)MPU6050自帶的DMP,從DMP中得到四元數(shù),再進(jìn)行歐拉公式換算,就能得到角度
回復(fù)

使用道具 舉報(bào)

13#
ID:221145 發(fā)表于 2017-10-15 22:50 | 只看該作者
參考參考
回復(fù)

使用道具 舉報(bào)

14#
ID:221145 發(fā)表于 2017-10-15 22:50 | 只看該作者
我也在找,51用DMP空間不夠,不知道有沒有更簡單的方法
回復(fù)

使用道具 舉報(bào)

15#
ID:592012 發(fā)表于 2019-8-2 20:57 | 只看該作者
守護(hù)靈 發(fā)表于 2017-7-26 00:48
**** 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽 ****

1361267482@qq.com,麻煩發(fā)一份
回復(fù)

使用道具 舉報(bào)

16#
ID:421308 發(fā)表于 2019-8-3 09:10 | 只看該作者
有沒有原始數(shù)據(jù)轉(zhuǎn)換的
回復(fù)

使用道具 舉報(bào)

17#
ID:233015 發(fā)表于 2019-8-14 00:22 來自手機(jī) | 只看該作者
樓主,你好請問一下你這個(gè)問題解決了嗎?
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表