久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8626|回復: 23
打印 上一主題 下一主題
收起左側

MPU6050陀螺儀的51+32+arduino驅動 指令校準+上位機+APP+PCB庫

  [復制鏈接]
跳轉到指定樓層
樓主
arduino驅動MPU6050陀螺儀,含源碼和上位機測試程序


各嵌入式平臺的源碼都有:


指令校準法
磁場校準方法:
1、    將模塊安裝到設備中固定,并放置水平
2、    分別將三軸磁場偏移值設置為0.發送指令如下:
a)    0xff 0xaa 0x0b 0x00 0x00
b)    0xff 0xaa 0x0c 0x00 0x00
c)    0xff 0xaa 0x0d 0x00 0x00
注意每條指令需間隔100ms
3、    開始統計三軸磁場強度的最大值和最小值,分別計為
HxMax,HxMin,HyMax,HyMin,HzMax,Hzmin。
校準的方式有兩種,一種是平面校準,一種是三維校準。平面校準適用于模塊在平面內工作,俯仰和滾轉為小角度變化的情況,這種可以用平面校準法。如果俯仰角和滾轉角變化較大,則需要用三維校準法。
平面校準法:
將模塊放平,繞Z軸緩慢旋轉360°,同時統計三軸磁場的最大值與最小值,直至最大值與最小值不在發生變化。
三維校準法:
先繞X緩慢旋轉360°,再繞Y軸緩慢旋轉360°,再繞Z軸緩慢旋轉360°,最后再隨意旋轉幾圈,同時統計三軸磁場的最大值與最小值,直至最大值與最小值不在發生變化。
4、    計算磁場偏移值,偏移值為最大值與最小值相加的一半。
HxOffset = (HxMax+HxMin)/2;
HyOffset = (HyMax+HyMin)/2;
HzOffset = (HzMax+HzMin)/2;
5、    將偏移值寫入模塊的寄存器,分別發送指令如下:
a)    0xff 0xaa 0x0b HxOffsetL HxOffsetH
b)    0xff 0xaa 0x0c HyOffsetL HyOffsetH
c)    0xff 0xaa 0x0d HzOffsetL HzOffsetH
注意每條指令需間隔100ms。其中HxOffsetL為第4步中算出的x軸誤差的低字節,HxOffsetH為第4步中算出的x軸誤差的高字節,HyOffsetL, HyOffsetH, HzOffsetL, HzOffsetH同理。
6、    保存當前配置。發送指令0xff 0xaa 0x00 0x00 0x00;
加速度校準方法:
2、    分別將加速度三軸的偏移值設置為0。發送指令如下:
a)    0xff 0xaa 0x05 0x00 0x00
b)    0xff 0xaa 0x06 0x00 0x00
c)    0xff 0xaa 0x07 0x00 0x00
注意每條指令需間隔100ms
3、    將模塊放置水平。
4、    讀取當前加速度的數值,為了計算準確,可多次讀取后取平均。記下當前的三軸加速度值,分別為ax0,ay0,az0.
5、    計算加速度的常值偏差。模塊水平放置的時候,模塊的三軸加速度輸出應該為【0g,0g,1g】,轉換為傳感器的輸出值就是【0,0,2048】。那么三軸加速度的誤差值為:e =【ax0,ay0,az0-2048】。
6、    將三軸的加速度偏移值寫入寄存器,分別發送指令如下:
a)    0xff 0xaa 0x05 exL exH
b)    0xff 0xaa 0x06 eyL eyH
c)    0xff 0xaa 0x07 ezL ezH
注意每條指令需間隔100ms。其中exL為第4步中算出的x軸誤差的低字節,exH為第4步中算出的x軸誤差的高字節,eyL,eyH,ezL,ezH同理。
7、    保存當前配置。發送指令0xff 0xaa 0x00 0x00 0x00;

讀取寄存器方法:
1.    往READADDR(0x27)寄存器里寫入需要讀取的地址,比如要讀取0x05寄存器,那么給模塊發送指令:0xff 0xaa 0x27 0x05 0x00
2.    模塊收到指令以后,將返回數據包0x55 0x5f D1L D1H D2L D2H D3L D3H D4L D4H SUM
其中D1是剛才寫入的寄存器的內容,D2、D3、D4分別是D1后面的寄存器的內容。比如剛才寫入READADDR的內容是0x05,那么D1就是AXOFFSET(0x05),D2就是AYOFFSET(0x06),D3就是AZOFFSET(0x07),D4就是GXOFFSET(0x08)。
附表:
寄存器序號:
#define SAVE             0x00
#define CALSW         0x01
#define RSW             0x02
#define RRATE            0x03
#define BAUD         0x04
#define AXOFFSET    0x05
#define AYOFFSET    0x06
#define AZOFFSET    0x07
#define GXOFFSET    0x08
#define GYOFFSET    0x09
#define GZOFFSET    0x0a
#define HXOFFSET    0x0b
#define HYOFFSET    0x0c
#define HZOFFSET    0x0d
#define D0MODE        0x0e
#define D1MODE        0x0f
#define D2MODE        0x10
#define D3MODE        0x11
#define D0PWMH        0x12
#define D1PWMH        0x13
#define D2PWMH        0x14
#define D3PWMH        0x15
#define D0PWMT        0x16
#define D1PWMT        0x17
#define D2PWMT        0x18
#define D3PWMT        0x19
#define IICADDR        0x1a
#define LEDOFF         0x1b
#define MAGRANGX    0x1c
#define MAGRANGY    0x1d
#define MAGRANGZ    0x1e
#define BANDWIDTH    0x1f
#define GYRORANGE    0x20
#define ACCRANGE    0x21
#define SLEEP            0x22
#define ORIENT        0x23
#define AXIS6          0x24
#define FILTK            0x25
#define GPSBAUD        0x26
#define READADDR    0x27
#define MOVETHR        0x28
#define MOVESTA        0x29
#define ACCFILT        0x2A
#define GYROFILT    0x2b
#define MAGFILT        0x2c
#define RSV6            0x2d
#define RSV7            0x2e
#define RSV8            0x2f
#define YYMM                0x30
#define DDHH                0x31
#define MMSS                0x32
#define MS                0x33
#define AX                0x34
#define AY                0x35
#define AZ                0x36
#define GX                0x37
#define GY                0x38
#define GZ                0x39
#define HX                0x3a
#define HY                0x3b
#define HZ                0x3c            
#define Roll                0x3d
#define Pitch                0x3e
#define Yaw                0x3f
#define TEMP                0x40
#define D0Status            0x41
#define D1Status            0x42
#define D2Status            0x43
#define D3Status            0x44
#define PressureL            0x45
#define PressureH            0x46
#define HeightL            0x47
#define HeightH            0x48
#define LonL                0x49
#define LonH                0x4a
#define LatL                0x4b
#define LatH                0x4c
#define GPSHeight           0x4d
#define GPSYAW              0x4e
#define GPSVL                0x4f
#define GPSVH            0x50
#define q0                0x51
#define q1                0x52
#define q2                0x53
#define q3                0x54
#define SVNUM            0x55
#define PDOP                0x56
#define HDOP                0x57
#define VDOP                0x58
#define DELAYT            0x59
#define XMIN                0x5a
#define XMAX                0x5b
#define GXMIN            0x5c
#define GXMAX            0x5d
#define YMIN                0x5e
#define YMAX                0x5f
#define GYMIN            0x60
#define GYMAX            0x61
#define ALARMLEVEL        0x62
#define GYRONOCAL        0x63

核心代碼:

  1. float a[3],w[3],angle[3],T;
  2. extern char Re_buf[11],counter;
  3. extern unsigned char sign;
  4. void main()
  5. {
  6.    USART_INIT();   
  7.    #asm("sei")
  8.    while(1)
  9.    {   
  10.       if(sign)
  11.       {  
  12.          sign=0;
  13.          if(Re_buf[0]==0x55)      //檢查幀頭
  14.               {  
  15.                 switch(Re_buf [1])
  16.                 {
  17.                 case 0x51:
  18.                 a[0] = (short(Re_buf [3]<<8| Re_buf [2]))/32768.0*16;
  19.                 a[1] = (short(Re_buf [5]<<8| Re_buf [4]))/32768.0*16;
  20.                 a[2] = (short(Re_buf [7]<<8| Re_buf [6]))/32768.0*16;
  21.                 T = (short(Re_buf [9]<<8| Re_buf [8]))/340.0+36.25;
  22.                 break;
  23.                 case 0x52:
  24.                 w[0] = (short(Re_buf [3]<<8| Re_buf [2]))/32768.0*2000;
  25.                 w[1] = (short(Re_buf [5]<<8| Re_buf [4]))/32768.0*2000;
  26.                 w[2] = (short(Re_buf [7]<<8| Re_buf [6]))/32768.0*2000;
  27.                 T = (short(Re_buf [9]<<8| Re_buf [8]))/340.0+36.25;
  28.                 break;
  29.                 case 0x53:
  30.                 angle[0] = (short(Re_buf [3]<<8| Re_buf [2]))/32768.0*180;
  31.                 angle[1] = (short(Re_buf [5]<<8| Re_buf [4]))/32768.0*180;
  32.                 angle[2] = (short(Re_buf [7]<<8| Re_buf [6]))/32768.0*180;
  33.                 T = (short(Re_buf [9]<<8| Re_buf [8]))/340.0+36.25;
  34.                 break;
  35.                 }
  36.               }
  37.       }
  38.    }  
  39. }
復制代碼


全部資料51hei下載地址:
MPU6050模塊 加速度角度傳感器電子陀螺儀 卡爾曼濾波串口6軸JY61 1(1).rar (18.42 MB, 下載次數: 315)



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

使用道具 舉報

沙發
ID:424338 發表于 2019-1-2 17:36 | 只看該作者
看看分享
回復

使用道具 舉報

板凳
ID:318672 發表于 2019-1-3 08:47 來自手機 | 只看該作者
感謝分享
回復

使用道具 舉報

地板
ID:470897 發表于 2019-1-31 09:42 | 只看該作者
很全面
回復

使用道具 舉報

5#
ID:306303 發表于 2019-2-19 11:14 | 只看該作者
pid文件的密碼是什么
回復

使用道具 舉報

6#
ID:38846 發表于 2019-2-19 11:29 | 只看該作者
樓主厲害了
回復

使用道具 舉報

7#
ID:221605 發表于 2019-2-19 21:30 | 只看該作者

很全面感謝   
回復

使用道具 舉報

8#
ID:478393 發表于 2019-2-21 15:45 | 只看該作者
謝謝分享
回復

使用道具 舉報

9#
ID:442653 發表于 2019-3-9 16:32 | 只看該作者
pid文件的密碼是什么
回復

使用道具 舉報

10#
ID:378085 發表于 2019-3-14 09:28 | 只看該作者
東西非常全面  感謝樓主分享
回復

使用道具 舉報

11#
ID:501620 發表于 2019-4-15 15:26 | 只看該作者
感謝分享
回復

使用道具 舉報

12#
ID:164448 發表于 2019-5-21 10:20 | 只看該作者
謝謝分享
回復

使用道具 舉報

13#
ID:337813 發表于 2019-5-29 10:03 | 只看該作者
非常感謝您的熱心分享
回復

使用道具 舉報

14#
ID:550026 發表于 2019-5-29 11:22 | 只看該作者
謝謝學習一下
回復

使用道具 舉報

15#
ID:550026 發表于 2019-5-29 11:23 | 只看該作者
謝謝 學習一下
回復

使用道具 舉報

16#
ID:489585 發表于 2019-6-18 20:42 | 只看該作者
pid密碼是啥
回復

使用道具 舉報

17#
ID:338619 發表于 2019-6-26 10:41 | 只看該作者
請問pid密碼是啥?
回復

使用道具 舉報

18#
ID:537436 發表于 2019-7-31 20:45 | 只看該作者
pid文件的密碼是什么
回復

使用道具 舉報

19#
ID:595085 發表于 2019-8-4 17:20 | 只看該作者
分享很到位
回復

使用道具 舉報

20#
ID:595085 發表于 2019-8-4 17:20 | 只看該作者
很需要
回復

使用道具 舉報

21#
ID:697968 發表于 2020-2-25 14:28 | 只看該作者
感謝樓主
回復

使用道具 舉報

22#
ID:200661 發表于 2020-2-29 09:09 | 只看該作者
很不錯的資料
回復

使用道具 舉報

23#
ID:496499 發表于 2020-4-14 14:44 | 只看該作者
要密碼 是什么情況
回復

使用道具 舉報

24#
ID:885168 發表于 2021-9-16 14:33 | 只看該作者

pid文件的密碼是什么
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 韩日精品一区 | 久久精品小视频 | 日韩在线视频免费观看 | 毛片网站在线观看 | 羞羞视频免费观 | 九九热免费在线观看 | 波多野结衣av中文字幕 | 欧美日韩国产在线观看 | 亚洲国产成人在线 | 国产精品久久久久婷婷二区次 | 久久大陆 | 91久久国产综合久久 | 中文字幕成人av | 日韩伦理一区二区三区 | 国产美女一区 | 伊人中文字幕 | 欧美成人aaa级毛片在线视频 | 福利网址 | 毛片av免费在线观看 | 成人看片在线观看 | 精品无码久久久久久国产 | 国产视频h| 国产一区二区精品在线观看 | 欧美中文在线 | 精品91久久久 | 国产资源在线视频 | 欧美三区 | 草在线| 台湾佬久久 | 国产成人午夜高潮毛片 | 在线看免费 | 欧美日韩精品中文字幕 | 久久小视频 | 国产精品高潮呻吟久久av野狼 | 久久精品视频免费观看 | 91精品国产91久久久久久 | 欧美一区免费 | 免费观看黄色一级片 | 亚洲免费精品 | 日韩电影一区二区三区 | 午夜影视 |