九轴传感器使用--->MPU9250

九轴传感器初探

九轴就是有 3 轴陀螺仪、3 轴加速度计和 3 轴磁力计,输出都是 16 位的数字量;随处可见的小飞机上面都装载了这样的传感器
以通过集成电路总线( IIC) 接口和单片机进行数据交互,自己检测出四元素,进过芯片上DMP(数字运动处理器)运算出欧拉角
看看其他大牛的文笔
在这里插入图片描述

硬件连接

九州传感器的IIC和PH4,5 进行连接
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

设置对MPU9250的读写操作

传感器的IIC要使用八位的数据,并且都要跟着一个应答信号,由主机产生时钟源
在这里插入图片描述

进行写操作

在这里插入图片描述
和IIC一样,蛮难读的,找点中文参考一下就会了

u8 MPU_Write_Byte(u8 addr,u8 reg,u8 data)
{
    IIC_Start();
    IIC_Send_Byte((addr<<1)|0); 
    if(IIC_Wait_Ack())         
    {
        IIC_Stop();
        return 1;
    }
    IIC_Send_Byte(reg);        
    IIC_Wait_Ack();             
    IIC_Send_Byte(data);      
    if(IIC_Wait_Ack())         
    {
        IIC_Stop();
        return 1;
    }
    IIC_Stop();
    return 0;
}

读操作也类似,用之前写好的IIC代码

调用MPU9250

初始化
对MPU9250进行复位和唤醒
 u8 res=0;
    IIC_Init();     
    MPU_Write_Byte(MPU9250_ADDR,MPU_PWR_MGMT1_REG,0X80);
    delay_ms(100);  
    MPU_Write_Byte(MPU9250_ADDR,MPU_PWR_MGMT1_REG,0X00);

在这里插入图片描述

初始化陀螺仪和加速器

我们设置这个寄存器为 0b0001 1011
大概意思是 陀螺仪根据 DLPF_CFG and FCHOICE_B 进行滤波,并且量程为 2000db

在这里插入图片描述

在这里插入图片描述
初始化加速器简单点 设置为量程为2g

在这里插入图片描述
根据上面的提示, 设置波特率
波特率在上面的提示下 =1000/1+这个寄存器

在这里插入图片描述
加速度/磁力计具有高频噪声(需要低通滤波)
接着设置,低通道滤波器
在这里插入图片描述
关闭所有中断,连续读取,IIC变为从机模式

读取数据

从6个寄存器里连续读取,就是现在的加速度和陀螺仪的值
在这里插入图片描述

  • 12
    点赞
  • 82
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值