ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:523.74KB ,
资源ID:8952237      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/8952237.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(详解MPU6050,用STM32读取原始数据,并相互融合算出俯仰角、翻滚角、偏航角.docx)为本站上传会员【s4****5z】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

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

1、详解MPU6050,用STM32读取原始数据,并相互融合算出俯仰角、翻滚角、偏航角 1.MPU6050是什么? MPU6050是一个6轴运动处理组件,包含了3轴加速度 和3轴陀螺仪。 MPU-6000为全球首例整合性6轴运动处理组件,相较于多组件方案,免除了组合陀螺仪与加速器时之轴间差的问题,减少了大量的包装空间。MPU-6000整合了3轴陀螺仪、3轴加速器,并含可藉由第二个I2C端口连接其他厂牌之加速器、磁力传感器、或其他传感器的数位运动处理(DMP: Digital Motion Processor)硬件加速引擎,由主要I2C端口以单一数据流的形式,向应用端输出完整的9轴融合演算

2、技术 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

3、9mm(QFN),在业界是革命性的尺寸。其他的特征包含内建的温度感测器、包含在运作环境中仅有±1%变动的振荡器。 2.加速度传感器是干嘛用的? 总而言这,加速度传感器,其实是力传感器。用来检查上下左右前后哪几个面都受了多少力(包括重力),然后计算角度。 3.陀螺仪是干嘛用的? 简而言之,陀螺仪就是角速度检测仪。比如,一块板,以X轴为轴心,在一秒钟的时间转到了90度,那么它在X轴上的角速度就是 90度/秒  (DPS, 角速度单位,Degree Per Second的缩写°/S ,体现了转动的快慢) 4.MPU6050分辨率是多少? 3轴加速度 和3轴陀螺仪分别

4、用了3个16位的ADC, 也就是说,加速度有3个16位ADC,其中每个轴使用了一个。也是说,每个轴输出的数据,是2^16 也就是 -32768 ---- +32768。陀螺仪也是一样。 5. 单位换算 上面说的-32768 --- +32768 ,那么这个数字到底代表了什么呢?比如陀螺仪 32768 到底是指角速度达到多少度/秒 ? 这个其实是根据MPU6050设置的量程来决定的,量程不一样,32768代表的值就不一样。 MPU6050的量程设置,在 MPU6050::initialize() (MPU6050.cpp库)初始化函数中进行了设置: setFullScaleGy

5、roRange(MPU6050_GYRO_FS_250); setFullScaleAccelRange(MPU6050_ACCEL_FS_2); 分别设置为,250度/秒 , 2g 按陀螺仪来说,MPU6050 有四个量程可选: ±250,±500,±1000,±2000 度/s 比方说,设置了是 ±250 , 那么-32768  ---- +32768 就代表了 -250 ---- +250 。此时它的LSB(拉傻B,最低有效位) 是 131 LSB/(度/s) STM32自带I2C,但一般有两个I2C1(PB6,PB7)和I2C2(PB10,PB11),而且,I2C分

6、为硬件、和模拟。 软件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%频率

7、变化。可选外部时钟输入32.768kHz 或19.2MHz 找出几个重要的寄存器: 1)Register 25 – Sample Rate Divider  (SMPRT_DIV) 1)SMPLRT_DIV 8位无符号值,通过该值将陀螺仪输出分频,得到采样频率      该寄存器指定陀螺仪输出率的分频,用来产生MPU-60X0的采样率。   传感器寄存器的输出、FIFO输出、DMP采样和运动检测的都是基于该采样率。   采样率的计算公式                     采样率 = 陀螺仪的输出率 / (1 + SMPLRT_DIV)   当数字低通滤波器没有使能的

8、时候,陀螺仪的输出平路等于8KHZ,反之等于1KHZ。 2)Register 26 – Configuration        (CONFIG)  1)EXT_SYNC_SET 3位无符号值,配置帧同步引脚的采样  2)DLPF_CFG 3位无符号值,配置数字低通滤波器    该寄存器为陀螺仪和加速度计配置外部帧同步(FSYNC)引脚采样和数字低通滤波器(DLPF)。  通过配置EXT_SYNC_SET,可以对连接到FSYNC引脚的一个外部信号进行采样。   FSYNC引脚上的信号变化会被锁存,这样就能捕获到很短的频闪信号。  采样结束后,锁存器将复位到当前的FSYNC信

9、号状态。  根据下面的表格定义的值,采集到的数据会替换掉数据寄存器中上次接收到的有效数据 数字低通滤波器是由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位无符号值。选择陀螺仪的量程。    这个寄存器是用来触发陀螺仪自检和配置陀螺仪的

10、满量程范围。    陀螺仪自检允许用户测试陀螺仪的机械和电气部分,通过设置该寄存器的 XG_ST、YG_ST和 ZG_ST bits可以激活陀螺仪对应轴的自检。每个轴的检测可以独立进行或同时进行。     自检的响应 = 打开自检功能时的传感器输出 - 未启用自检功能时传感器的输出     在MPU-6000/MPU-6050数据手册的电气特性表中已经给出了每个轴的限制范围。当自检的响应值在规定的范围内,就能够通过自检;反之,就不能通过自检。     根据下表,FS_SEL选择陀螺仪输出的量程:   4)Register 28 – Accelerometer Configura

11、tion  (ACCEL_CONFIG) 1)XA_ST    设置为1时,X轴加速度感应器进行自检。 2)YA_ST    设置为1时,Y轴加速度感应器进行自检。 3)ZA_ST    设置为1时,Z轴加速度感应器进行自检。 4)AFS_SEL  2位无符号值。选择加速度计的量程。     具体细节和上面陀螺仪的相似。   根据下表,AFS_SEL选择加速度传感器输出的量程。 5)Registers 59 to 64 – Accelerometer Measurements (ACCEL_XOUT_H, ACCEL_XOUT_L, ACCEL_YOUT_H, ACCE

12、L_YOUT_L, ACCEL_ZOUT_H, and ACCEL_ZOUT_L) 1)ACCEL_XOUT  16位2’s补码值。    存储最近的X轴加速度感应器的测量值。 2)ACCEL_YOUT  16位2’s补码值。    存储最近的Y轴加速度感应器的测量值。 3)ACCEL_ZOUT  16位2’s补码值。    存储最近的Z轴加速度感应器的测量值。     这些寄存器存储加速感应器最近的测量值。    加速度传感器寄存器,连同温度传感器寄存器、陀螺仪传感器寄存器和外部感应数据寄存器,都由两部分寄存器组成(类似于STM32F10X系列中的影子寄存器):一个内部

13、寄存器,用户不可见。另一个用户可读的寄存器。内部寄存器中数据在采样的时候及时的到更新,仅在串行通信接口不忙碌时,才将内部寄存器中的值复制到用户可读的寄存器中去,避免了直接对感应测量值的突发访问。     在寄存器28中定义了每个16位的加速度测量值的最大范围,对于设置的每个最大范围,都对应一个加速度的灵敏度ACCEL_xOUT,如下面的表中所示: 6)Registers 65 and 66 – Temperature Measurement   (TEMP_OUT_H and TEMP_OUT_L) 1)TEMP_OUT 16位有符号值。    存储的最近温度传感器的测量值

14、   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)   该寄存器允许用户配置电源模式和时钟源。它还提供了一个复位整个器件的位,和一个关闭温度传感器的位 1)DEVICE_RESET  置1后所有的

15、寄存器复位,随后DEVICE_RESET自动置0. 2)SLEEP         置1后进入睡眠模式   3)CYCLE         当CYCLE被设置为1,且SLEEP没有设置,MPU-60X0进入循环模式,为了从速度传感器中获得采样值,在睡眠模式和正常数据采集模式之间切换,每次获得一个采样数据。在LP_WAKE_CTRL(108)寄存器中,可以设置唤醒后的采样率和被唤醒的频率。 4)TEMP_DIS      置1后关闭温度传感器 5)CLKSEL        指定设备的时钟源    时钟源的选择: 9)Register 117 – Who Am I         (

16、WHO_AM_I)  WHO_AM_I中的内容是MPU-60X0的6位I2C地址 上电复位的第6位到第1位值为:110100 为了让两个MPU-6050能够连接在一个I2C总线上,当AD0引脚逻辑低电平时,设备的地址是 b1101000 ,当AD0引脚逻辑高电平时,设备的地址是 b1101001      (2013.01.24)  淘宝买的货终于到了,学习用所以没买好的,这个模块只要18块钱。 MPU-6000可以使用SPI和I2C接口,而MPU-6050只能使用I2C,其中I2C的地址由AD0引脚决定;寄存器共117个,挺多的,下面的是精简常用的,根据具体的要求,适

17、当的添加。   #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  // 存储

18、最近的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   #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   #define PWR_MGMT_1  0x6B // 电源管理,典型值:0x00(正常启用) */ #define WHO_AM_I  0x75 //IIC地址寄存器(默认数值0x68,只读) */ 编程时用到的关于I2C协议规范:

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服