




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、详解MPU6050,用STM32读取原始数据,并相互融合算出俯仰角、翻滚角、偏航角(2014-01-16 16:53:41)转载1.MPU6050是什么?MPU6050是一个6轴运动处理组件,包含了3轴加速度 和3轴陀螺仪。MPU-6000为全球首例整合性6轴运动处理组件,相较于多组件方案,免除了组合陀螺仪与加速器时之轴间差的问题,减少了大量的包装空间。MPU-6000整合了3轴陀螺仪、3轴加速器,并含可藉由第二个I2C端口连接其他厂牌之加速器、磁力传感器、或其他传感器的数位运动处理(DMP: Digital Motion Processor)硬件加速引擎,由主要I2C端口以单一数据流的形式,
2、向应用端输出完整的9轴融合演算技术InvenSense的运动处理资料库,可处理运动感测的复杂数据,降低了运动处理运算对操作系统的负荷,并为应用开发提供架构化的API。MPU-6000的角速度全格感测范围为±250、±500、±1000与±2000°/sec (dps),可准确追緃快速与慢速动作,并且,用户可程式控制的加速器全格感测范围为±2g、±4g±8g与±16g。产品传输可透过最高至400kHz的I2C或最高达20MHz的SPI。MPU-6000可在不同电压下工作,VDD供电电压介为2.5V±
3、;5%、3.0V±5%或3.3V±5%,逻辑接口VVDIO供电为1.8V± 5%。MPU-6000的包装尺寸4x4x0.9mm(QFN),在业界是革命性的尺寸。其他的特征包含内建的温度感测器、包含在运作环境中仅有±1%变动的振荡器。2.加速度传感器是干嘛用的?总而言这,加速度传感器,其实是力传感器。用来检查上下左右前后哪几个面都受了多少力(包括重力),然后计算角度。3.陀螺仪是干嘛用的?简而言之,陀螺仪就是角速度检测仪。比如,一块板,以X轴为轴心,在一秒钟的时间转到了90度,那么它在X轴上的角速度就是 90度/秒 (DPS, 角速度
4、单位,Degree Per Second的缩写°/S ,体现了转动的快慢)4.MPU6050分辨率是多少?3轴加速度 和3轴陀螺仪分别用了3个16位的ADC, 也就是说,加速度有3个16位ADC,其中每个轴使用了一个。也是说,每个轴输出的数据,是216 也就是 -32768 - +32768。陀螺仪也是一样。5. 单位换算上面说的-32768 - +32768 ,那么这个数字到底代表了什么呢?比如陀螺仪 32768 到底是指角速度达到多少度/秒 ?这个其实是根据MPU6050设置的量程来决定的,量程不一样,32768代表的值就不一样。MPU6050的量程设置,在 MPU60
5、50: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,最低有效位)
6、是 131 LSB/(度/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 供电电压
7、为2.5V±5%、3.0V±5%、3.3V±5%;VDDIO 为1.8V± 5%内建振荡器在工作温度范围内仅有±1%频率变化。可选外部时钟输入32.768kHz 或19.2MHz找出几个重要的寄存器:1)Register 25 Sample Rate Divider (SMPRT_DIV)1)SMPLRT_DIV 8位无符号值,通过该值将陀螺仪输出分频,得到采样频率 该寄存器指定陀螺仪输出率的分频,用来产生MPU-60X0的采样率。 传感器寄存器
8、的输出、FIFO输出、DMP采样和运动检测的都是基于该采样率。 采样率的计算公式 采样率 = 陀螺仪的输出率 / (1 + SMPLRT_DIV) 当数字低通滤波器没有使能的时候,陀螺仪的输出平路等于8KHZ,反之等于1KHZ。2)Register 26 Configuration &
9、#160; (CONFIG) 1)EXT_SYNC_SET 3位无符号值,配置帧同步引脚的采样 2)DLPF_CFG 3位无符号值,配置数字低通滤波器 该寄存器为陀螺仪和加速度计配置外部帧同步(FSYNC)引脚采样和数字低通滤波器(DLPF)。 通过配置EXT_SYNC_SET,可以对连接到FSYNC引脚的一个外部信号进行采样。 FSYNC引脚上的信号变化会被锁存,这样就能捕获到很短的频闪信号。 采样结束后,锁存器将复位到当前的FSYNC信号状态。
10、60;根据下面的表格定义的值,采集到的数据会替换掉数据寄存器中上次接收到的有效数据数字低通滤波器是由DLPF_CFG来配置,根据下表中DLPF_CFG的值对加速度传感器和陀螺仪滤波 3)Register 27 Gyroscope Configuration (GYRO_CONFIG)1)XG_ST 设置此位,X轴陀螺仪进行自我测试。2)YG_ST 设置此位,Y轴陀螺仪进行自我测试。3)ZG_ST 设置此位,Z轴陀螺仪进行自我测试。4)FS_SEL 2位无符号值。选择陀螺仪的量程。
11、0; 这个寄存器是用来触发陀螺仪自检和配置陀螺仪的满量程范围。 陀螺仪自检允许用户测试陀螺仪的机械和电气部分,通过设置该寄存器的 XG_ST、YG_ST和 ZG_ST bits可以激活陀螺仪对应轴的自检。每个轴的检测可以独立进行或同时进行。 自检的响应 = 打开自检功能时的传感器输出 - 未启用自检功能时传感器的输出 在MPU-6000/MPU-6050数据手册的电气特性表中已经给出了每个轴的限制范围。当自检的响应值在规定的范围内
12、,就能够通过自检;反之,就不能通过自检。 根据下表,FS_SEL选择陀螺仪输出的量程: 4)Register 28 Accelerometer Configuration (ACCEL_CONFIG)1)XA_ST 设置为1时,X轴加速度感应器进行自检。2)YA_ST 设置为1时,Y轴加速度感应器进行自检。3)ZA_ST 设置为1时,Z轴加速度感应器进行自检。4)AFS_SEL
13、160; 2位无符号值。选择加速度计的量程。 具体细节和上面陀螺仪的相似。 根据下表,AFS_SEL选择加速度传感器输出的量程。5)Registers 59 to 64 Accelerometer Measurements (ACCEL_XOUT_H, ACCEL_XOUT_L, ACCEL_YOUT_H, ACCEL_YOUT_L, ACCEL_ZOUT_H, and ACCEL_ZOUT_L)1)ACCEL_XOUT 16位2s补码值。 存储最近的X轴加速度感应器的测量
14、值。2)ACCEL_YOUT 16位2s补码值。 存储最近的Y轴加速度感应器的测量值。3)ACCEL_ZOUT 16位2s补码值。 存储最近的Z轴加速度感应器的测量值。 这些寄存器存储加速感应器最近的测量值。 加速度传感器寄存器,连同温度传感器寄存器、陀螺仪传感器寄存器和外部感应数据寄存器,都由两部分寄存器组成(类似于STM32F10X系列中的影子寄存器):一个内部寄存器,用户不可见。另一个用户可读的寄存器。内部寄存
15、器中数据在采样的时候及时的到更新,仅在串行通信接口不忙碌时,才将内部寄存器中的值复制到用户可读的寄存器中去,避免了直接对感应测量值的突发访问。 在寄存器28中定义了每个16位的加速度测量值的最大范围,对于设置的每个最大范围,都对应一个加速度的灵敏度ACCEL_xOUT,如下面的表中所示:6)Registers 65 and 66 Temperature Measurement (TEMP_OUT_H and TEMP_OUT_L)1)TEMP_OUT 16位有符号值。 存储的最近温
16、度传感器的测量值。 7)Registers 67 to 72 Gyroscope Measurements (GYRO_XOUT_H, GYRO_XOUT_L, GYRO_YOUT_H, GYRO_YOUT_L, GYRO_ZOUT_H, and GYRO_ZOUT_L) 这个和加速度感应器的寄存器相似对应的灵敏度:8)Register 107 Power Management 1 (PWR_MGMT_1) 该寄存器允许用户配置电源模式和时钟源。它还提供了一个复位整个器件的位,和一个关
17、闭温度传感器的位1)DEVICE_RESET 置1后所有的寄存器复位,随后DEVICE_RESET自动置0.2)SLEEP 置1后进入睡眠模式 3)CYCLE 当CYCLE被设置为1,且SLEEP没有设置,MPU-60X0进入循环模式,为了从速度传感器中获得采样值,在睡眠模式和正常数据采集模式之间切换,每次获得一个采样数据。在LP_WAKE_
18、CTRL(108)寄存器中,可以设置唤醒后的采样率和被唤醒的频率。4)TEMP_DIS 置1后关闭温度传感器5)CLKSEL 指定设备的时钟源 时钟源的选择: 9)Register 117 Who Am I (WHO_AM_I
19、) WHO_AM_I中的内容是MPU-60X0的6位I2C地址上电复位的第6位到第1位值为:110100为了让两个MPU-6050能够连接在一个I2C总线上,当AD0引脚逻辑低电平时,设备的地址是 b1101000 ,当AD0引脚逻辑高电平时,设备的地址是 b1101001 () 淘宝买的货终于到了,学习用所以没买好的,这个模块只要18块钱。MPU-6000可以使用SPI和I2C接口,而MPU-6050只能使用I2C,其中I2C的地址由AD0引脚决定;寄存器共117个,挺多的,下面的是精简常用的,根据具体的要求,适当的添加。
20、60;#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) */ #define ACCEL_XOUT_H 0x3B / 存储最近的X轴、Y轴、Z轴加速度感应器的测量值 */#define ACCEL_XOUT_L 0x3C#define ACCEL_YOU
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 行政管理与地方治理的试题及答案
- 临床技能2025年执业医师考试试题及答案
- 行政管理业务流程试题及答案
- 行政管理学语文考前模拟训练的重要性试题及答案
- 2025年卫生资格考试答题技巧与试题答案
- 提升应试能力的2025年自考行政管理试题及答案
- 行政管理专科未来趋势试题及答案
- 行政管理人文关怀试题及答案
- 2025年执业药师考试营养药物知识试题及答案
- 2025年执业医师考试备考分享试题及答案
- 绩溪事业单位招聘考试《行测》历年真题汇总及答案解析精选V
- 湘美版美术三年级下册 《渔家乐-蟳埔情》课件(共20张PPT)
- 农产品集中交易市场等级技术规范-编制说明
- 供货、安装、调试、验收方案
- 第四课:印巴战争
- 武汉绿地中心项目技术管理策划书(48页)
- 婚无远虑必有财忧法商思维营销之婚姻篇74张幻灯片
- 小学一年级人民币学具图片最新整理直接打印
- 投掷:原地投掷垒球
- 港口码头常用安全警示标志
- 密闭式周围静脉输液技术PPT课件
评论
0/150
提交评论