惯性传感器的寄存器配置
作者:互联网
一. 陀螺仪
1 输入数据的处理(寄存器配置)
陀螺仪是测量角速度的传感器,量程范围可选+-250、500、1000和2000.dps就是degree per second——度每秒,传感器直接读出的数据并不是这个单位,需要进行单位转化。在下面data sheet截图中可以看到不同量程范围所对应的灵敏度,我们选择+-2000的范围时,对陀螺仪输出的值除以16.4,才是正确的(量程范围越大,精确度就越低)(+-1000的,除以32.8)
附陀螺仪寄存器的配置
#define SMPLRT_DIV 0x19
#define CONFIG 0x1A
#define GYRO_CONFIG 0x1B
#define ACCEL_CONFIG 0x1C
#define PWR_MGMT_1 0x6B
#define PWR_MGMT_2 0x6C
//陀螺仪ICM20602配置初始化
WriteRegister(SMPLRT_DIV,0x00);//SMPLRT_DIV,采样频率
WriteRegister(CONFIG,0x03);//CONFIG,低通滤波
//加速度计ICM20602配置初始化
WriteRegister(GYRO_CONFIG,0x10);//GYRO_CONFIG(设置量程范围+-1000)(0x18是+-2000)
WriteRegister(ACCEL_CONFIG,0x08);//ACCEL_CONFIG(设置量程范围+-4g)
WriteRegister(PWR_MGMT_1,0x00);//PWR_MGMT_1
WriteRegister(PWR_MGMT_2,0x00);//(使能加速度计、陀螺仪)
2 去陀螺仪的零漂
上电后静止放置产品,采集200个数据,此时的陀螺仪数据求均值就是陀螺仪的零漂,将这三个轴的值存储,并在以后的陀螺仪的三个轴的数据中,每个点都减去计算出的零漂值。
二. 加速度计
量程范围选择的+-4g,因此输出原始数据需要除以8192,若选择了+-8g,则除以4096.(这个单位转化问题,加速度计和磁力计的数据如果会进行归一化的话,可以不做)
三. 磁力计
选择的是+-2gauss,因此输出的值要除以12000
单位转换:
参考文章:
IMU之磁力计校准&地磁场&计算磁航向_wuwuku123的博客-CSDN博客https://blog.csdn.net/wuwuku123/article/details/105699482
附其他内容:
9.2.4 控制寄存器
两个8位寄存器用于控制设备配置
控制寄存器1位于地址09H中,它设置有操作模式(MODE)、 输出数据更新率(ODR),磁场测量范围或传感器的灵敏度(RNG)和过采样率(OSR)。 控制寄存器2位于地址0AH中。 它控制中断引脚使能(INT_ENB),点翻转功能使能(POL_PNT)和软复位(SOFT_RST)。
标签:陀螺仪,惯性,WriteRegister,+-,传感器,寄存器,CONFIG,define 来源: https://blog.csdn.net/weixin_40525909/article/details/108559037