mpu6050寄存器详解文档讲课讲稿.docx

上传人:b****8 文档编号:9968405 上传时间:2023-05-22 格式:DOCX 页数:13 大小:493.71KB
下载 相关 举报
mpu6050寄存器详解文档讲课讲稿.docx_第1页
第1页 / 共13页
mpu6050寄存器详解文档讲课讲稿.docx_第2页
第2页 / 共13页
mpu6050寄存器详解文档讲课讲稿.docx_第3页
第3页 / 共13页
mpu6050寄存器详解文档讲课讲稿.docx_第4页
第4页 / 共13页
mpu6050寄存器详解文档讲课讲稿.docx_第5页
第5页 / 共13页
mpu6050寄存器详解文档讲课讲稿.docx_第6页
第6页 / 共13页
mpu6050寄存器详解文档讲课讲稿.docx_第7页
第7页 / 共13页
mpu6050寄存器详解文档讲课讲稿.docx_第8页
第8页 / 共13页
mpu6050寄存器详解文档讲课讲稿.docx_第9页
第9页 / 共13页
mpu6050寄存器详解文档讲课讲稿.docx_第10页
第10页 / 共13页
mpu6050寄存器详解文档讲课讲稿.docx_第11页
第11页 / 共13页
mpu6050寄存器详解文档讲课讲稿.docx_第12页
第12页 / 共13页
mpu6050寄存器详解文档讲课讲稿.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

mpu6050寄存器详解文档讲课讲稿.docx

《mpu6050寄存器详解文档讲课讲稿.docx》由会员分享,可在线阅读,更多相关《mpu6050寄存器详解文档讲课讲稿.docx(13页珍藏版)》请在冰点文库上搜索。

mpu6050寄存器详解文档讲课讲稿.docx

mpu6050寄存器详解文档讲课讲稿

详解MPU6050,用STM32读取原始数据,并相互融合算出俯仰角、翻滚角、偏航角

(2014-01-1616:

53:

41)

转载▼

1.MPU6050是什么?

MPU6050是一个6轴运动处理组件,包含了3轴加速度和3轴陀螺仪。

MPU-6000为全球首例整合性6轴运动处理组件,相较于多组件方案,免除了组合陀螺仪与加速器时之轴间差的问题,减少了大量的包装空间。

MPU-6000整合了3轴陀螺仪、3轴加速器,并含可藉由第二个I2C端口连接其他厂牌之加速器、磁力传感器、或其他传感器的数位运动处理(DMP:

DigitalMotionProcessor)硬件加速引擎,由主要I2C端口以单一数据流的形式,向应用端输出完整的9轴融合演算技术

InvenSense的运动处理资料库,可处理运动感测的复杂数据,降低了运动处理运算对操作系统的负荷,并为应用开发提供架构化的API。

MPU-6000的角速度全格感测范围为±250、±500、±1000与±2000°/sec(dps),可准确追緃快速与慢速动作,并且,用户可程式控制的加速器全格感测范围为±2g、±4g±8g与±16g。

产品传输可透过最高至400kHz的I2C或最高达20MHz的SPI。

MPU-6000可在不同电压下工作,VDD供电电压介为2.5V±5%、3.0V±5%或3.3V±5%,逻辑接口VVDIO供电为1.8V±5%。

MPU-6000的包装尺寸4x4x0.9mm(QFN),在业界是革命性的尺寸。

其他的特征包含内建的温度感测器、包含在运作环境中仅有±1%变动的振荡器。

2.加速度传感器是干嘛用的?

总而言这,加速度传感器,其实是力传感器。

用来检查上下左右前后哪几个面都受了多少力(包括重力),然后计算角度。

3.陀螺仪是干嘛用的?

简而言之,陀螺仪就是角速度检测仪。

比如,一块板,以X轴为轴心,在一秒钟的时间转到了90度,那么它在X轴上的角速度就是90度/秒  (DPS,角速度单位,DegreePerSecond的缩写°/S,体现了转动的快慢)

4.MPU6050分辨率是多少?

3轴加速度和3轴陀螺仪分别用了3个16位的ADC,也就是说,加速度有3个16位ADC,其中每个轴使用了一个。

也是说,每个轴输出的数据,是2^16也就是-32768---- +32768。

陀螺仪也是一样。

5.单位换算

上面说的-32768---+32768,那么这个数字到底代表了什么呢?

比如陀螺仪32768到底是指角速度达到多少度/秒?

这个其实是根据MPU6050设置的量程来决定的,量程不一样,32768代表的值就不一样。

MPU6050的量程设置,在MPU6050:

:

initialize()(MPU6050.cpp库)初始化函数中进行了设置:

setFullScaleGyroRange(MPU6050_GYRO_FS_250);

setFullScaleAccelRange(MPU6050_ACCEL_FS_2);

分别设置为,250度/秒,2g

按陀螺仪来说,MPU6050有四个量程可选:

±250,±500,±1000,±2000度/s

比方说,设置了是±250,那么-32768  ----+32768就代表了-250----+250。

此时它的LSB(拉傻B,最低有效位)是131LSB/(度/s)

STM32自带I2C,但一般有两个I2C1(PB6,PB7)和I2C2(PB10,PB11),而且,I2C分为硬件、和模拟。

软件i2c是程序员使用程序控制SCL,SDA线输出高低电平,模拟i2c协议的时序.

硬件i2c程序员只要调用i2c的控制函数即可,不用直接的去控制SCL,SDA高低电平的输出

本模块采用的是IIC通信方式,所以我们只需要连接四跟线就可以完成电路的连接,简单方便!

原始数据有:

AX、AY、AZ   GX、GY、GZ

简单的算法之后可以得到Roll,pitch,yaw

参考MPU-6050数据手册

引脚说明:

VDD供电电压为2.5V±5%、3.0V±5%、3.3V±5%;VDDIO为1.8V±5%

内建振荡器在工作温度范围内仅有±1%频率变化。

可选外部时钟输入32.768kHz或19.2MHz

找出几个重要的寄存器:

1)Register25–SampleRateDivider  (SMPRT_DIV)

1)SMPLRT_DIV 8位无符号值,通过该值将陀螺仪输出分频,得到采样频率 

 

  该寄存器指定陀螺仪输出率的分频,用来产生MPU-60X0的采样率。

  传感器寄存器的输出、FIFO输出、DMP采样和运动检测的都是基于该采样率。

  采样率的计算公式

                    采样率= 陀螺仪的输出率/(1+SMPLRT_DIV)

  当数字低通滤波器没有使能的时候,陀螺仪的输出平路等于8KHZ,反之等于1KHZ。

2)Register26–Configuration        (CONFIG)

 1)EXT_SYNC_SET3位无符号值,配置帧同步引脚的采样

 2)DLPF_CFG3位无符号值,配置数字低通滤波器

 

 该寄存器为陀螺仪和加速度计配置外部帧同步(FSYNC)引脚采样和数字低通滤波器(DLPF)。

 通过配置EXT_SYNC_SET,可以对连接到FSYNC引脚的一个外部信号进行采样。

 

 FSYNC引脚上的信号变化会被锁存,这样就能捕获到很短的频闪信号。

 采样结束后,锁存器将复位到当前的FSYNC信号状态。

 根据下面的表格定义的值,采集到的数据会替换掉数据寄存器中上次接收到的有效数据

数字低通滤波器是由DLPF_CFG来配置,根据下表中DLPF_CFG的值对加速度传感器和陀螺仪滤波

 

 

3)Register27–GyroscopeConfiguration   (GYRO_CONFIG)

1)XG_ST 设置此位,X轴陀螺仪进行自我测试。

2)YG_ST 设置此位,Y轴陀螺仪进行自我测试。

3)ZG_ST 设置此位,Z轴陀螺仪进行自我测试。

4)FS_SEL 2位无符号值。

选择陀螺仪的量程。

   这个寄存器是用来触发陀螺仪自检和配置陀螺仪的满量程范围。

   陀螺仪自检允许用户测试陀螺仪的机械和电气部分,通过设置该寄存器的XG_ST、YG_ST和ZG_STbits可以激活陀螺仪对应轴的自检。

每个轴的检测可以独立进行或同时进行。

    自检的响应= 打开自检功能时的传感器输出 - 未启用自检功能时传感器的输出

    在MPU-6000/MPU-6050数据手册的电气特性表中已经给出了每个轴的限制范围。

当自检的响应值在规定的范围内,就能够通过自检;反之,就不能通过自检。

    根据下表,FS_SEL选择陀螺仪输出的量程:

 

4)Register28–AccelerometerConfiguration  (ACCEL_CONFIG)

1)XA_ST    设置为1时,X轴加速度感应器进行自检。

2)YA_ST    设置为1时,Y轴加速度感应器进行自检。

3)ZA_ST    设置为1时,Z轴加速度感应器进行自检。

4)AFS_SEL  2位无符号值。

选择加速度计的量程。

 

  具体细节和上面陀螺仪的相似。

  根据下表,AFS_SEL选择加速度传感器输出的量程。

5)Registers59to64–AccelerometerMeasurements(ACCEL_XOUT_H,ACCEL_XOUT_L,ACCEL_YOUT_H,ACCEL_YOUT_L,ACCEL_ZOUT_H,andACCEL_ZOUT_L)

1)ACCEL_XOUT  16位2’s补码值。

   存储最近的X轴加速度感应器的测量值。

2)ACCEL_YOUT  16位2’s补码值。

   存储最近的Y轴加速度感应器的测量值。

3)ACCEL_ZOUT  16位2’s补码值。

   存储最近的Z轴加速度感应器的测量值。

 

  这些寄存器存储加速感应器最近的测量值。

   加速度传感器寄存器,连同温度传感器寄存器、陀螺仪传感器寄存器和外部感应数据寄存器,都由两部分寄存器组成(类似于STM32F10X系列中的影子寄存器):

一个内部寄存器,用户不可见。

另一个用户可读的寄存器。

内部寄存器中数据在采样的时候及时的到更新,仅在串行通信接口不忙碌时,才将内部寄存器中的值复制到用户可读的寄存器中去,避免了直接对感应测量值的突发访问。

 

   在寄存器28中定义了每个16位的加速度测量值的最大范围,对于设置的每个最大范围,都对应一个加速度的灵敏度ACCEL_xOUT,如下面的表中所示:

6)Registers65and66–TemperatureMeasurement   (TEMP_OUT_HandTEMP_OUT_L)

1)TEMP_OUT16位有符号值。

   存储的最近温度传感器的测量值。

 

7)Registers67to72–GyroscopeMeasurements    (GYRO_XOUT_H,GYRO_XOUT_L,GYRO_YOUT_H,GYRO_YOUT_L,GYRO_ZOUT_H,andGYRO_ZOUT_L)

 

这个和加速度感应器的寄存器相似

对应的灵敏度:

8)Register107–PowerManagement1   (PWR_MGMT_1)

 

该寄存器允许用户配置电源模式和时钟源。

它还提供了一个复位整个器件的位,和一个关闭温度传感器的位

1)DEVICE_RESET  置1后所有的寄存器复位,随后DEVICE_RESET自动置0.

2)SLEEP         置1后进入睡眠模式  

3)CYCLE         当CYCLE被设置为1,且SLEEP没有设置,MPU-60X0进入循环模式,为了从速度传感器中获得采样值,在睡眠模式和正常数据采集模式之间切换,每次获得一个采样数据。

在LP_WAKE_CTRL(108)寄存器中,可以设置唤醒后的采样率和被唤醒的频率。

4)TEMP_DIS      置1后关闭温度传感器

5)CLKSEL        指定设备的时钟源   

 

在调查中我们注意到大多数同学都比较注重工艺品的价格,点面氛围及服务。

时钟源的选择:

     

9)Register117–WhoAmI         (WHO_AM_I)

 WHO_AM_I中的内容是MPU-60X0的6位I2C地址

上电复位的第6位到第1位值为:

110100

(一)DIY手工艺品的“多样化”为了让两个MPU-6050能够连接在一个I2C总线上,当AD0引脚逻辑低电平时,设备的地址是 b1101000,当AD0引脚逻辑高电平时,设备的地址是b1101001 

(二)创业弱势分析 

 

(2013.01.24)

 淘宝买的货终于到了,学习用所以没买好的,这个模块只要18块钱。

(3)心态问题

MPU-6000可以使用SPI和I2C接口,而MPU-6050只能使用I2C,其中I2C的地址由AD0引脚决定;寄存器共117个,挺多的,下面的是精简常用的,根据具体的要求,适当的添加。

手工艺品,它运用不同的材料,通过不同的方式,经过自己亲手动手制作。

看着自己亲自完成的作品时,感觉很不同哦。

不论是01年的丝带编织风铃,02年的管织幸运星,03年的十字绣,04年的星座手链,还是今年风靡一时的针织围巾等这些手工艺品都是陪伴女生长大的象征。

为此,这些多样化的作品制作对我们这一创业项目的今后的操作具有很大的启发作用。

 

#define SMPLRT_DIV  0x19    //采样率分频,典型值:

0x07(125Hz)*/

#define CONFIG   0x1A       //低通滤波频率,典型值:

0x06(5Hz)*/

#define GYRO_CONFIG  0x1B   //陀螺仪自检及测量范围,典型值:

0x18(不自检,2000deg/s)*/

#define ACCEL_CONFIG 0x1C  //加速计自检、测量范围及高通滤波频率,典型值:

0x01(不自检,2G,5Hz)*/

2.www。

cer。

net/artide/2003082213089728。

shtml。

 

#define ACCEL_XOUT_H 0x3B  //存储最近的X轴、Y轴、Z轴加速度感应器的测量值*/

#define ACCEL_XOUT_L 0x3C

#define ACCEL_YOUT_H 0x3D

#define ACCEL_YOUT_L 0x3E

#define ACCEL_ZOUT_H 0x3F

#define ACCEL_ZOUT_L 0x40

 

#define TEMP_OUT_H  0x41   //存储的最近温度传感器的测量值*/

#define TEMP_OUT_L  0x42

我们熟练的掌握计算机应用,我们可以在网上搜索一些流行因素,还可以把自己小店里的商品拿到网上去卖,为我们小店提供了多种经营方式。

 

据上述部分的分析可见,我校学生就达4000多人。

附近还有两所学校,和一些居民楼。

随着生活水平的逐渐提高,家长给孩子的零用钱也越来越多,人们对美的要求也越来越高,特别是大学生。

他们总希望自己的无论是衣服还是首饰都希望与众不同,能穿出自己的个性。

但在我们美丽的校园里缺少自己的个性和琳琅满目的饰品,所以我们的小饰品店存在的竞争力主要是南桥或是市区的。

这给我们小组的创业项目提供了一个很好的市场机会。

#define GYRO_XOUT_H  0x43//存储最近的X轴、Y轴、Z轴陀螺仪感应器的测量值*/

#define GYRO_XOUT_L  0x44 

#define GYRO_YOUT_H  0x45

#define GYRO_YOUT_L  0x46

#define GYRO_ZOUT_H  0x47

#define GYRO_ZOUT_L  0x48

据上述部分的分析可见,我校学生就达4000多人。

附近还有两所学校,和一些居民楼。

随着生活水平的逐渐提高,家长给孩子的零用钱也越来越多,人们对美的要求也越来越高,特别是大学生。

他们总希望自己的无论是衣服还是首饰都希望与众不同,能穿出自己的个性。

但在我们美丽的校园里缺少自己的个性和琳琅满目的饰品,所以我们的小饰品店存在的竞争力主要是南桥或是市区的。

这给我们小组的创业项目提供了一个很好的市场机会。

 

#define PWR_MGMT_1  0x6B //电源管理,典型值:

0x00(正常启用)*/

#define WHO_AM_I  0x75 //IIC地址寄存器(默认数值0x68,只读)*/

一、消费者分析 

编程时用到的关于I2C协议规范:

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2