极品馒头泬19p,国产精品亚洲一区二区三区,狠狠色噜噜狠狠狠7777奇米,国产精品视频一区二区三区无码,国产欧美日韩久久久久

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

2021-10-26 08:36:15      索煒達電子      1154     

項目編號:E1763

文件大?。?8M

源碼說明:帶中文注釋

開發(fā)環(huán)境:C編譯器

簡要概述:

arduino驅動MPU6050陀螺儀,含源碼和上位機測試程序

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

指令校準法

磁場校準方法:

1、將模塊安裝到設備中固定,并放置水平

2、分別將三軸磁場偏移值設置為0.發(fā)送指令如下:

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°,同時統計三軸磁場的最大值與最小值,直至最大值與最小值不在發(fā)生變化。

三維校準法:

先繞X緩慢旋轉360°,再繞Y軸緩慢旋轉360°,再繞Z軸緩慢旋轉360°,最后再隨意旋轉幾圈,同時統計三軸磁場的最大值與最小值,直至最大值與最小值不在發(fā)生變化。

4、    計算磁場偏移值,偏移值為最大值與最小值相加的一半。

HxOffset = (HxMax+HxMin)/2;

HyOffset = (HyMax+HyMin)/2;

HzOffset = (HzMax+HzMin)/2;

5、    將偏移值寫入模塊的寄存器,分別發(fā)送指令如下:

a)    0xff 0xaa 0x0b HxOffsetL HxOffsetH

b)    0xff 0xaa 0x0c HyOffsetL HyOffsetH

c)    0xff 0xaa 0x0d HzOffsetL HzOffsetH

注意每條指令需間隔100ms。其中HxOffsetL為第4步中算出的x軸誤差的低字節(jié),HxOffsetH為第4步中算出的x軸誤差的高字節(jié),HyOffsetL, HyOffsetH, HzOffsetL, HzOffsetH同理。

6、    保存當前配置。發(fā)送指令0xff 0xaa 0x00 0x00 0x00;

加速度校準方法:

2、    分別將加速度三軸的偏移值設置為0。發(fā)送指令如下:

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、    將三軸的加速度偏移值寫入寄存器,分別發(fā)送指令如下:

a)    0xff 0xaa 0x05 exL exH

b)    0xff 0xaa 0x06 eyL eyH

c)    0xff 0xaa 0x07 ezL ezH

注意每條指令需間隔100ms。其中exL為第4步中算出的x軸誤差的低字節(jié),exH為第4步中算出的x軸誤差的高字節(jié),eyL,eyH,ezL,ezH同理。

7、    保存當前配置。發(fā)送指令0xff 0xaa 0x00 0x00 0x00;


讀取寄存器方法:

1.    往READADDR(0x27)寄存器里寫入需要讀取的地址,比如要讀取0x05寄存器,那么給模塊發(fā)送指令: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

目錄│文件列表:

 └ 串口MPU6050卡爾曼濾波6軸9軸資料匯總

    │ miniIMU.apk

    │ PID資料.zip

    ├ MPU6050資料V5

    │  └ MPU6050資料V5

    │     │ MPU6050使用說明書V5.pdf

    │     ├ Datasheet

    │     │  │ MPU-6050寄存器映射.pdf

    │     │  └ MPU6050.PDF

    │     ├ PCB庫

    │     │  │ 串口MPU6050原理庫.lib

    │     │  └ 串口MPU6050封裝庫.lib

    │     ├ 上位機

    │     │  │ Config.ini

    │     │  │ Data.txt

    │     │  │ DataPlot.m

    │     │  │ MiniIMU.exe

    │     │  │ 使用說明.txt

    │     │  ├ en

    │     │  │  └ MiniIMU.resources.dll

    │     │  └ zh-CHS

    │     │     └ MiniIMU.resources.dll

    │     └ 示例程序

    │        │ 51例程.rar

    │        │ Arduino版.zip

    │        │ PC版(VS2010).zip

    │        │ STM32版.zip

    │        └ 核心代碼

    │           │ main.c

    │           └ usart.c

    ├ 上位機

    │  └ 4.3.14.rar

    ├ 指令校準

    │  └ 指令校準法.docx

    └ 論壇資料

       └ JY61P、901說明書

          └ JY901使用說明書V4.0.pdf.baiduyun.downloading

TAGMPU6050
  • 2 次
  • 5 分