MPU6050姿态传感器

1.六轴姿态传感器:

组成:三轴加速度(x,y,z)+ 三轴陀螺仪(x,y,z)

三轴加速度(Acceleromerter):测量x,y,z三个方向上的加速度的值

三轴陀螺仪(Gyroscop):测量绕x,y,z三个轴旋转的旋转速度的值(角速度)

三轴加速度+三周陀螺仪 = 欧拉角(滚转角roll-z,俯仰角pitch-x,偏航角yaw-y)。

都以正方向为指向,顺势针为正,逆时针为负

则-z的意思是绕着z轴旋转的角度。

方向的定义由芯片定义

2.说明

(1)加速度具有静态稳定性,不具有动态稳定性。

        也就是三轴加速度传感器只有在物体静止状态下,受力分析得到的运动方向是正确的;如果在运动状态下测量,则可能产生多种测算结果。

如人坐在车上①车停在坡上;②车在平面上直线加速;两种手里分析都会分析得到人在向斜上方运动。

此时就需要引出补全测量功能的传感器——角速度传感器

(2)角速度传感器具有动态稳定性,不具有静态稳定性

传感器测得角速度,然后通过积分得到角度。

当物体在短时间内发生姿态变化时,可以由积分得到角度变化。但是当物体静态时,由于不可能绝对静止,所以些许摆动也会在不断的积分过程中累加,产生不小的误差。

(3)芯片内部的工作是自动完成的,其中由AD转换器换算电压和所测数值

①MPU6050的ADC是16位的,有符号范围-32768~32768,无符号0~65535。但是各个轴都有正负,所以量化的的结果是-32768~32768。

②因为ADC的量化不同范围的AD得到对应加速度/角速度的数值

        所以满量程的越小,测算的数据越准确;满量程选的越大,测算的数据的范围就越大。 而MPU6050可供选择的

        加速度的满量程为±2,±4,±8,±16(g)

        陀螺仪的满量程为±250°/s,±500°/s,±1000°/s,±2000°/s

③MPU6050支持可配置的数字低通滤波器、可配置的时钟源、可配置的采样频率。

其中低通滤波器可以筛掉高频信号,使得到的数据更加平滑;

而配置的时钟源——>配置的采样频率——>作为MPU的工作时钟(ADC等工作的时钟频率)

(4)自测:

自测可以用来检测芯片是否能正常完成测算工作,如果自测的结果大于厂商提供的误差值,那就说明芯片出了问题。

流程:失能自测状态下读取寄存器的值x1——>使能自测读取寄存器的值x2——>两值做差,误差大于一定值则说明芯片有损坏。

3.MPU6050作从机时的地址:

        (1)AD0接高/低的情况不同

        ①当AD0引脚接地时,从机地址是0110 1000(0x68)

        ②当AD0引脚接高电平时,从机地址是0110 1001(0x69  或者 (0x68 | 0x01))

        (2)I2C通信的情况:7bit地址+1bit读写(1写0读)

        ①当AD0接地时

                若读,则Senbyte(0x68<<0)或者Senbyte(0xD0)

                若写,则Senbyte( (0x68<<1) | 1) 或者 Senbyte( (0xD1)

        ②当AD0接高时

                若读,则Senbyte( (0x69<<1)) 或者 Senbyte(0xD2)

                若写,则Senbyte( (0x69<<1) | 1) 或者 Senbyte(0xD3)

4.引脚说明

VCC、GND:电源线(3.3v,但内部由3.3v稳压器,所以也可以接5v)

SCL、SDA:用于与Stm32通信的I2C接口,SDA是数据线、SCL是时钟线

XDA、XCL:MPU6050作为I2C通信的主机时,SDA、SCL被作为与新设备通信的引脚,用来扩展其他传感器(气压传感器——测高,磁场传感器——测磁场(指南针)),这时候Stm32需要接入XDA、XCL来通信MPU6050。同时Mux作为选择器,可以将XDA、XCL的线接上SDA、SCL,使Stm32可以同时控制MPU6050及其从设备。

ADO:从机地址的最低位

INT:中断输出引脚。可以通过配置MPU6050内部器件的工作来产生中断。

5.工作流程:

(1)流程:

各轴传感器的数据——>ADC——>信号调节——>数据寄存器

上述流程MPU6050自动完成,只需要通过I2C通信直接读取数据寄存器就可以得到转换后的值。

(2)刷新:

                刷新频率决定数据刷新速度

(3)数据寄存器:

                各轴拥有独立的寄存器,所以各轴的数据互相占用或覆盖。

姿态解算算法:(不了解,先放点东西)

MPU6050内置数字运动处理器(DMP),可以配合官方的DMP库进行姿态解算。(?看不懂)

MPU6050DMP官方库:本仓库提供了一个资源文件,即MPU6050 DMP官方库。该库是官方提供的运动库,必须通过这个库才能启用MPU6050的DMP(Digital Motion Processor)引擎。该库适用于MSP430平台,为开发者提供了必要的代码和资源,以便在项目中集成和使用MPU6050的DMP功能 - GitCode

不知道什么算法、什么功能的代码:

【毕业设计】MPU6050姿态解算 姿态估计 - 物联网 单片机 stm32-优快云博客

卡尔曼滤波算法解释?:

【卡尔曼滤波器】1_递归算法_Recursive Processing_哔哩哔哩_bilibili

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值