博世传感器调试笔记(一)----加速度传感器BMA253

公司是bosch的代理商,最近一段时间一直在公司开发的传感器demo板上调试bosch sensor器件。涉及到的器件有7,8款,类型包括重力加速度、地磁、陀螺仪、温度、湿度、大气压力传感器等。在调试的过程中做了一些笔记,在此将其简单分享出来。

BMA253是3轴12 bit加速度传感器,支持I2C/SPI两种通讯方式,其i2c设备地址0x18。

关键寄存器
R0:CHIPID register ,值为 0xfa

X轴加速度数据12bit
r0x02:ACCD_X_LSB acc_x_lsb[3:0]    bit4--bit7
r0x03:ACCD_X_MSB acc_x_msb[11:4]   bit0--bit7

Y轴加速度数据12bit
r0x04:ACCD_Y_LSB acc_y_lsb[3:0]    bit4--bit7
r0x05:ACCD_Y_MSB acc_y_msb[11:4]   bit0--bit7

Z轴加速度数据12bit
r0x06:ACCD_Z_LSB acc_z_lsb[3:0]    bit4--bit7
r0x07:ACCD_Z_MSB acc_z_msb[11:4]   bit0--bit7

测量范围:
Register 0x0F (PMU_RANGE)
The register allows the selection of the accelerometer g-range.
range<3:0>:Selection of accelerometer g-range:
 ?0011b ? ? ±2g range;  ?0101b ? ? ±4g range;  ?1000b ? ? ±8g range;
 ?1100b ? ? ±16g range; all other settings ? reserved (do not use)

带宽(数据输出频率)
Register 0x10 (PMU_BW)
The register allows the selection of the acceleration data filter bandwidth.
bw<4:0>:Selection of data filter bandwidth:
 ?00xxxb ? ? 7.81 Hz,
 ?01000b ? ? 7.81 Hz,  ?01001b ? ? 15.63 Hz,
 ?01010b ? ? 31.25 Hz,  ?01011b ? ? 62.5 Hz,  ?01100b ? ? 125 Hz,
 ?01101b ? ? 250 Hz,
 ?01110b ? ? 500 Hz,  ?01111b ? ? 1000 Hz,
 ?1xxxxb ? ? 1000 Hz

寄存器参考配置:
0x0F------0x03 (PMU_RANGE检测范围±2g)
0x10------0x0A (PMU_BW滤波带宽 31.25HZ)

3轴加速度数据读取参考代码:
x =( i2c_read_byte(0x02) &0xf0) >>4 ;
    x = x|(( i2c_read_byte(0x03) &0xff)<<4);
    if(x>0x7ff)
    {
        x = -(0xfff-x);
    }
    x = (x*9.8)/(0x800/2); //当量程为±2g时,转换为g/s的加速度换算公式

y =( i2c_read_byte(0x04) &0xf0) >>4 ;
    y = y|(( i2c_read_byte(0x05) &0xff)<<4);
    if(y>0x7ff)
    {
        y = -(0xfff-y);
    }
    y = (y*9.8)/(0x800/2); //当量程为±2g时,转换为g/s的加速度换算公式

z =( i2c_read_byte(0x06) &0xf0) >>4 ;
    z = z|(( i2c_read_byte(0x07) &0xff)<<4);
    if(z>0x7ff)
    {
        z = -(0xfff-z);
    }
    z = (z*9.8)/(0x800/2); //当量程为±2g时,转换为g/s的加速度换算公式

注意:传感器的精确度跟环境温度等有密切的关系,如果希望获取准确的数据,需要进行温度补偿等操作,在此并未涉及。

时间: 2024-09-30 07:45:22

博世传感器调试笔记(一)----加速度传感器BMA253的相关文章

博世传感器调试笔记(三)加速度及地磁传感器BMC156

一.    器件简介:1.    BMC 156是一款整合三轴地磁传感器与三轴(12bit)加速度传感器于一体的传感器,以BMC 150 电子罗盘模块为基础, 并与Bosch Sensortec 2x2平方毫米的加速度传感器引脚兼容.智能手机开发商可轻松将现有加速度传感器的设计升级为功能齐全的电子罗盘设计,或将电子罗盘方案简化为仅有加速度传感器的方案 2.    测量参数指标:Acceleration ranges ±2g/±4g/±8g/±16gMagnetic  ranges±1300μT

2.传感器学习笔记之光照传感器

这节课我们来学习安卓中的光照传感器,已经会的请绕过此篇. 安卓系统有个自动调整屏幕亮度的功能. 它会检测手机周围环境的光照强度, 然后对手机屏幕的亮度进行相应地调整, 以此保证不管是在强光还是弱光下,手机屏幕都能够看得清. 说的太多理论有点虚,这里直接实战实用光照传感器做个项目. 本课目标: 编写一个简易的光照探测器程序,使手机可以检测到周围环境的光照强度变化. 效果图: 说明: 灯光照到上面数值会发生改变. 友情提示: 模拟器无法感知光照强度,因此建议在真实手机上运行. 1.首先我们新建一个安

博世传感器调试笔记(二)加速度及陀螺仪传感器BMI160

一.功能参数简介bosch Sensortec公司推出的最新BMI160惯性测量单元将最顶尖的16位3轴超低重力加速度计和超低功耗3轴陀螺仪集成于单一封装.MI160采用14管脚LGA封装,尺寸为2.5×3.0×0.8mm3.当加速度计和陀螺仪在全速模式下运行时,耗电典型值低至950μA,仅为市场上同类产品耗电量的50%或者更低. BMI160传感器的i2c 设备地址是 0x68(当sd0脚接地)/0x69(当sdo 脚拉高). 二. 重要寄存器1. 芯片ID----R0:CHIPID 寄存器

android 三轴加速度传感器【转】

一.手机中常用的传感器 在Android2.3 gingerbread系统中,google提供了11种传感器供应用层使用,具体如下:(Sensor类) #define SENSOR_TYPE_ACCELEROMETER 1 //加速度#define SENSOR_TYPE_MAGNETIC_FIELD 2 //磁力#define SENSOR_TYPE_ORIENTATION 3 //方向#define SENSOR_TYPE_GYROSCOPE 4 //陀螺仪#define SENSOR_TY

六轴加速度传感器MPU6050官方DMP库到瑞萨RL78/G13的移植

2015年的电赛已经结束了.赛前接到器件清单的时候,看到带防护圈的多旋翼飞行器赫然在列,又给了一个瑞萨RL78/G13的MCU,于是自然联想到13年的电赛,觉得多半是拿RL78/G13做四旋翼的主控,虽然事后证实我的猜测是错的,但是在赛前我还是完成了相关代码的准备,这其中就包括了MPU6050的DMP库移植.在移植前我大概搜了一下,发现网上还没有相关的源代码.一起准备电赛的同学还买过一份RL78/G13的飞控代码,虽然也是使用MPU6050进行姿态获取,但是对MPU6050的读取并不是通过DMP

MMA7455加速度传感器測量角度

使用加速度传感器应该注意几点: 第一:确保你的IIC是正确的: 第二,首先必须校准系统,校准方法,例如以下:将7455平放,保证z轴向下,这是假设系统是Ok的,那么x轴输出为0,y轴输出为0,z轴输出为63左右,假设不为以上參数,应该做例如以下调整:測量值比实际值小的情况下,往校准寄存器里面写入一个2*误差值:假设測量值假设大于实际值,应该写入一个值为相应误差的负值的ASCII码,比方假设測出值为70,那么应该写入-16,即(0xf0): 下面就是我调试mma7455的代码: #include

加速度传感器的原理和应用-手机翻转、失重检测、运动检测、位置识别

本文介绍可穿戴设备加速度传感器-Lis3dh的特性原理和应用场景.意法半导体研发的Lis3dh广泛应用在智能手环.智能计步鞋等智能穿戴产品中. Lis3dh有两种工作方式,一种是其内置了多种算法来处理常见的应用场景(如静止检测.运动检测.屏幕翻转.失重.位置识别.单击和双击等等),用户只需简单配置算法对应的寄存器即可开始检测,一旦检测到目标事件,Lis3dh的外围引脚INT1会产生中断.另一种是支持用户通过SPI/I2C来读取底层加速度数据,并自行通过软件算法来做进一步复杂的处理,如计步等等.

Android加速度传感器的使用:摇一摇功能的实现

一.原理介绍: Android手机中摇一摇的功能已经很常见了,最近接触到了这个功能,原理很简单:使用加速度传感器,在晃动手机时,监听加速度在各个方向的变化,当加速度值超过设定的灵敏度时,则触发摇一摇功能. 二.使用到的类: SensorManager SensorEventListener 三.功能实现: 1.摇一摇功能:我将摇一摇功能封装成了一个类ShakeUtils,在使用时按照注释中的说明使用即可,ShakeUtils.java如下(差的包请CTRL+SHIFT+O导入): /** * 摇

Android 使用加速度传感器实现摇一摇功能及优化

如有转载,请声明出处: 时之沙: http://blog.csdn.net/t12x3456 目前很多应用已经实现了摇一摇功能,这里通过讲解该功能的原理及实现回顾一下加速度传感器的使用: 1.首先获得传感器管理器的实例 sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE); 2.通过传感器管理器获得加速传感器 accelerateSensor = getSensorManager(cont