开发者学堂课程【HaaS 物联网应用开发课程:5_3_2_陀螺仪小球_硬件讲解】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/801/detail/13849
5_3_2_陀螺仪小球_硬件讲解
内容介绍:
一、MPU6050芯片硬件介绍
二、MPU6050 寄存器介绍
一、MPU6050芯片硬件介绍
1.原理图及外观
MPU6050芯片通过 I2C 接口进行通讯。
支持 INT 中断功能,当数据到来时可以在该引脚上触发中断(MPU6050_INT—HaaS 1000 GPIO_P4_1).
通过AD0引脚决定了器件地址的bit0,AD0被拉低,I2C 的地址的 bit0就为0,AD0被拉高,I2C 从设备地址的bit0就为1。把 AD0 接到 VCC_3V3 ,其 bit0 为1,从地址为0X69。Bit0 为0,从地址为0X68
2.MPU6050芯片特性
MPU6050 芯片中有 I2C 接口最快接受400kHz,规定属于为快速模式。
集成3轴的 MEMS 陀螺仪、3轴 MEMS 及速度计以及一个可扩展的数字运动处理器 DMP (DigitalMotion Processor),
可用 I2C 接口扩展第三方数字传感器,比如磁力计、压力传感器等,陀螺仪和加速度计均使用16位的 ADC 进行测量。
陀螺仪可测范围为±250、±500、±1000、±2000°/秒(dps)。
加速度计可测范围为±2,±4,±8,±16g,片内1024节的 FIFO,有助于降低系统功耗,减少 MCU 之间的通信次数,内部内嵌了一个温度传感器和精度范围在±1%内的振荡器,芯片尺寸4×4×0.9mm,QFN封装,可承受最大10000g的冲击。
对于物体,要描述运动姿态,除了用 x,y,z 三个轴的加速度之外,还会用到三个轴的选装运动状态。
欧拉角是表达旋转的最常用的方式之一。
在 x,y,z 三个方向上旋转运动状态分别用 yaw,pitch,roll 进行测量。
电子中的旋转运动姿态通过陀螺仪传感器进行计算,而一般的陀螺仪不会直接输出 pitch、yaw、roll 三个指标,计算过程中会使用滤波算法、融合算法等,较为复杂。
MPU6050 内部就集成了 DMP 的运动引擎,全程 Digital Motion Processor,主要完成计算 pitch,yaw、roll三个指标中的滤波及数据融合,直接输出四元组。
降低了主控芯片的工作负担,提高了计算精度。Motion Driver 是 invensense 针对其运动传感器的软件包,其软件包的核心算法部分用静态链接库的形式提供。
DMP 对姿态运算频率最高是200Hz。
MPU6050内部结构图, ClOCK 表示为一个震荡期,中间 x、y、z 三个方向的加速度传感器以及三个方向上的角速度传感器,和一个温度传感器,模拟信号经过 ADC 进行转换,转换后就形成了离散的数字信号,离散的数字信号就会存在 MPU6050 的 CPU 内,主 CPU 可以通过I2C 接口将数据读出,若开启 DMP 中的小 DSP ,则会进行更高精度的计算。
MPU6050芯片可以扩展第三方 I2C 传感器,有一组I2C的 master 控制器。
二、MPU6050 寄存器介绍
(1)MPU6050芯片的可配置选项很丰富含有配置寄存器(加速度、角速度、FIFO),
I2C主从设备控制及状态寄存器,因为MPU6050作为陀螺仪加速度传感器的时候,是从设备给主设备提供结果,而且又能扩展第三方的传感器,而扩展第三方传感器的时候是给主设备工作的,不管是主从设备,I2C 所现的各种参数是可以自行设置的,也有中断控制及状态寄存器,加速度、角速度及扩展传感器数据寄存器,低功耗设定寄存器。
跟本实验最有关的寄存器为三轴加速度寄存器、温度寄存器、三轴陀螺仪寄存器。第一列是16进制的地址,第二列是10进制的地址,第三列之后代表传感器存放对应数据值的具体位置。比如要读取X轴的加速度,可以读取3B 和3C 的寄存器,把 X 为3B 的值向左移8位和0X3C 的值相加,就为实际的结果。
(2)Power Management 1 寄存器为控制寄存器,比如 Bit7 写入1,代表芯片复位,Bit6 写入1,代表芯片进入低功耗模式,在 SLEEP 为0的时候,CYCLE 设置为1,代表让设备进入周期性工作模式,可以通过对 Power Management 2进行配置来控制器设定其工作周期。
Bit3 写入1,代表关闭芯片的测温功能,CLKSEL 作用为选择芯片工作使用的时钟源。
(3)Power Management 2 寄存器的 Bit6 和 Bit7 是设定 wake-up frequency 配合 pragma once psycho 控制芯片周期性工作,bit5 到 bit0 分别是对应x,y,z三个轴方向的角速度,例如写入1,就代表 x 轴加速度传感器进入 standby 模式
Gyroscope Configuration 计算器用于配置陀螺仪传感器的参数,bit7、bit6、bit5 写入1的时候,分别是让 x,y,z三个轴的传感器进入自测模式,bit3和 bit4是设置陀螺仪传感器的满量程范围。
(4)Accelerometer Configuration 计算器是用来设定加速度 g 的参数,bit7、bit6。
Bit5写入1,即代表 x,y,z 加速度传感器进入自测模式,bit3和 bit4 是设置加速度传感器的满量程范围
(5)Sample Rate Divider 计算器是用来设定传感器的采样频率,陀螺仪传感器的采样频率是通过公式 Sample Rate = Gyroscope Output Rate/(1+ SMPLRT_DIV)。
对于加速度传感器,输出频率固定是1k,如果想要设定采样频率为50,计算方式为 SAMPLRT_DIV =1000/50-1
Config Register 计算器适用于设定外部帧同步引脚的采样频率及数字低通滤波器的,通过低通滤波器对测量结果进行滤波,会增大测量延迟,不同滤波器的测量延迟不同。