MPU6050

come from :  https://blog.csdn.net/wangwangmoon_light/article/details/52207405

管脚    名称         说明
VCC     3.3-5V    (内部有稳压芯片)
GND     地线    
SCL     MPU6050     作为从机时 IIC 时钟线
SDA     MPU6050     作为从机时 IIC 数据线
XCL     MPU6050     作为主机时 IIC 时钟线
XDA     MPU6050     作为主机时 IIC 数据线
AD0     地址管脚,该管脚决定了 IIC 地址的最低一位
INT     中断引脚

当 AD0 管脚接低电平的时候,从机地址是 0xD0。

从 MPU6050 的寄存器中 ,我们可以得到答案,MPU6050 作为一个 IIC 从机设备的时候,有 8 位地址,高7 位的地址是固定的,就是 WHO AM I 寄存器的默认——0x68,最低的一位是由 AD0 的连线决定的。

 

我们还需要将那些数据根据数学方面的东西转化为姿态有关的四元数和欧拉角。

这个过程有两种办法,一种你可以去学下数学,然后编程把我们上面获取的原始数据转化为四元数和欧拉角;

另一种是直接用MPU6050 内部的 DMP。

这里我们介绍后者。
DMP 是什么意思? DMP 就是指 MPU6050 内部集成的处理单元,可以直接运算出四元数和姿态,而不再需要另外进行数学运算。DMP 的使用大大简化了四轴的代码设计。DMP 是数字运动处理器的缩写,顾名思义 mpu6050 并不单单是一款传感器,其内部还包含了可以独立完成姿态解算算法的处理单元。如在设计中使用 DMP 来实现传感器融合算法优势很明显。首先,invensense 官方提供的姿态解算算法应该比像楼主这样的小白要可靠的多。其次,由 DMP 实现姿态解算算法将单片机从算法处理的压力中解放出来,单片机所要做的是等待DMP 解算完成后产生的外部中断,在外部中断里去读取姿态解算的结果。这样
单片机有大量的时间来处理诸如电机调速等其他任务,提高了系统的实时性。

四元数就是 4 个数,经过 DMP 或 数学+软件 你就可以得到四元数,四元数就是 4 个数,可以表征姿态,经过几个数学公式之后就可以的出姿态,姿态包括 pitch,roll,yaw。

4.1 S REGISTERS  3 13 TO  6 16 – –  SELF TEST  REGISTERS 自检寄存器
4.2 REGISTER  5 25 – –  SAMPLE  RATE  DIVIDER 采样频率分频器
4.3 REGISTER  6 26 – –  CONFIGURATION 配置
4.4 REGISTER  7 27 – –  GYROSCOPE  CONFIGURATION 陀螺仪配置
4.5 REGISTER  8 28 – –  ACCELEROMETER  CONFIGURATION 加速度计配置
4.6 REGISTER  1 31 – –  MOTION  DETECTION  THRESHOLD  运动检测阀值
4.7 REGISTER  5 35 – –  FIFO  ENABLE FIFO  使能
4.8 REGISTER  6 36 – –  I2C  MASTER  CONTROL I2C  主机控制
4.9 S REGISTERS  7 37 TO  9 39 – –  I2C  SLAVE 0 0 0 0  CONTROL I2C  从机 0 0 0 0  控制
4.10 S REGISTERS  0 40  TO  2 42 – –  I2C  SLAVE 1 1 1 1  CONTROL I2C  从机 1 1 1 1  控制
4.11 S REGISTERS  3 43  TO  5 45 – –  I2C  SLAVE 2 2 2 2  CONTROL I2C  从机 2 2 2 2  控制
4.12 S REGISTERS  6 46  TO  8 48 – –  I2C  SLAVE 3 3 3 3  CONTROL I2C  从机 3 3 3 3  控制
4.13 S REGISTERS  9 49  TO  3 53 – –  I2C  SLAVE 4 4 4 4  CONTROL I2C  从机 4 4 4 4  控制
4.14 REGISTER  4 54 – –  I2C  MASTER  STATUS I2C  主机状态
4.15 REGISTER  5 55 – –  INT  PIN / / / /  S BYPASS  ENABLE  CONFIGURATION
INT  引脚/ / / /效 旁路有效  使能配置
4.16 REGISTER  6 56 – –  INTERRUPT  ENABLE 中断使能
4.17 REGISTER  8 58 – –  INTERRUPT  STATUS 中断状态
4.18 S REGISTERS  9 59  TO  4 64 – –  ACCELEROMETER  MEASUREMENTS
加速度计测量值
4.19 S REGISTERS  65 AND  6 66 – –  TEMPERATURE  MEASUREMENT
温度测量值
4.20 S REGISTERS  7 67  TO  2 72 – –  GYROSCOPE  MEASUREMENTS
陀螺仪测量值
4.21 S REGISTERS  3 73  TO  6 96 – –  EXTERNAL SENSOR  DATA 外部传感器数据
4.22 REGISTER  9 99 – –  I2C  SLAVE 0 0 0 0 DATA OUT I2C  从机 0 0 0 0  数据输出
4.23 REGISTER  0 100 – –  I2C  SLAVE 1 1 1 1 DATA OUT I2C  从机 1 1 1 1  数据输出
4.24 REGISTER  1 101 – –  I2C  SLAVE 2 2 2 2 DATA OUT I2C  从机 2 2 2 2  数据输出
4.25 REGISTER  2 102 – –  I2C  SLAVE 3 3 3 3 DATA OUT I2C  从机 3 3 3 3  数据输出
4.26 REGISTER  3 103 – –  I2C  MASTER  DELAY CONTROL I2C  主机延时管理
4.27 REGISTER  4 104 – –  SIGNAL PATH  RESET 信号通道复位
4.28 REGISTER  5 105 – –  MOTION  DETECTION  CONTROL 运动检测控制
4.29 REGISTER  6 106 – –  USER  CONTROL 用户配置
4.30 REGISTER  7 107 – –  POWER  MANAGEMENT 1 1 1 1 电源管理 1 1 1 1
4.31 REGISTER  8 108 – –  POWER  MANAGEMENT 2 2 2 2 电源管理 2 2 2 2
4.32 REGISTER  114 AND  5 115 – –  FIFO  COUNT  REGISTERS FIFO O O O 计数寄存器
4.33 REGISTER  6 116 – –  FIFO  READ  WRITE FIFO  读写
4.34 REGISTER  7 117 – –  WHO AM I I I I 我是谁

https://blog.csdn.net/wangwangmoon_light/article/details/52207405

 

MPU6050初始化的步骤: 
1)初始化IIC接口 
初始化与MPU6050连接的SDA和SCL数据线 
2)复位MPU6050,让MPU6050内部的所有寄存器恢复默认值 
通过对电源管理寄存器1(0x6B)的bit7写1实现,复位后,电源管理寄存器1恢复默认值(0x40),然后必须设置该寄存器位0x00,以唤醒MPU6050,进入正常工作状态。 
3)设置角速度传感器和加速度传感器的满量程范围 
设置两个传感器的满量程范围(FSR),分别通过陀螺仪配置寄存器(0x1B)和加速度传感器配置寄存器(0x1c)设置,我们一般设置陀螺仪的满量程范围为±2000dps。 
4)设置其他参数,关闭中断,关闭AUX IIC接口,禁止FIFO,设置陀螺仪采样率和设置数字低通滤波器等 
配置中断,由中断使能寄存器(0x38)控制;设置AUX IIC接口,用户控制寄存器(0x6A)控制;设置FIFO,由FIFO使能寄存器(0x23)控制;陀螺仪采样率,由采样率分频寄存器(0x19)控制;设置数字低通滤波器,由配置寄存器(0x1A)控制。 
5)配置系统时钟源并使能角速度传感器和加速度传感器 
由电源管理寄存器1(0x6B)控制,一般选择x轴陀螺PLL作为时钟源,以获得更高精度的时钟。 
SCL和SDA是连接MCU的IIC接口,MCU通过这个IIC接口来控制MPU6050,另外还有一个IIC接口:AUX_CL和AUX_DA,这个接口可用来连接外部从设备,比如磁传感器,这样就可以组成一个九轴传感器。 
6)使能角速度传感器(陀螺仪)和加速度传感器。由电源管理寄存器2(0x6C)控制
 

 

相关寄存器的操作: 
1)MPU6050_第1张图片

2)MPU6050_第2张图片

3)MPU6050_第3张图片

4)MPU6050_第4张图片

5)MPU6050_第5张图片

6)MPU6050_第6张图片
7)MPU6050_第7张图片
8)MPU6050_第8张图片
9)MPU6050_第9张图片
/*********************************************/

 

 

加速度计和陀螺仪区别.

http://m.elecfans.com/article/578850.html

一、陀螺仪

  陀螺仪(Gyroscope、GYRO-Sensor)也叫地感器,传统结构是内部有个陀螺,如下图所示(三轴陀螺),三轴陀螺仪的工作原理是通过测量三维坐标系内陀螺转子的垂直轴与设备之间的夹角,并计算角速度,通过夹角和角速度来判别物体在三维空间的运动状态。三轴陀螺仪可以同时测定上、下、左、右、前、后等6个方向(合成方向同样可分解为三轴坐标),最终可判断出设备的移动轨迹和加速度。

  也就是说陀螺仪通过测量自身的旋转状态,判断出设备当前运动状态,是向前、向后、向上、向下、向左还是向右呢,是加速(角速度)还是减速(角速度)呢,都可以实现,但是要判断出设备的方位(东西南北),陀螺仪就没有办法。

  传统的陀螺仪属于机械式的,随技术发展,还有出现了振动式陀螺仪、激光陀螺仪、微机电机械陀螺仪等,无论是在体积微型化、测量精度和易用性上都有大大提高。

 MPU6050_第10张图片

  二、加速计

  加速计(Accelerometer、G-Sensor)也叫重力感应器,实际上是可以感知任意方向上的加速度(重力加速度则只是地表垂直方向加速度),加速计通过测量组件在某个轴向的受力情况来得到结果,表现形式为轴向的加速度大小和方向(XYZ),这一点又有点类似于陀螺仪,但陀螺仪的更多关注自身旋转情况(原位运动),加速计则主要是测量设备的受力情况,也就是三轴运动情况,尽管加速计也可能在某个小范围换算出角速度的可能,但设计原理决定似乎更适合于空间运动判断。

       三、加速度计和陀螺仪区别

  两者看起来很接近,不过加速度计只能侦测物体的移动行为,并不具备精确侦测物体角度改变的能力,陀螺仪可以侦测物体水平改变的状态,但无法计算物体移动的激烈程度。

你可能感兴趣的:(Linux,demo,(base))