Android 加速度传感器 怎么转换成角度

全部回答2
默认 最新
  • android 是面向智能手机和其他便携式设备的最受欢迎的操作系统(os)之一。它为多种传感器提供了标准的api 接口,包括加速度计。加速度计的标准api 定义了原始加速度数据的坐标系统。用户必须将从传感器中读取的原始数据转换为标准单位,并使其符合系统定义的坐标方向。本文介绍了android 中的坐标系统是如何定义的,以及如何在android 系统的驱动代码中对3 轴加速度计数据的方向和坐标进行转换。本文讨论的示例代码基于飞思卡尔的android 2.2 和2.3 驱动程序,加速度计则以飞思卡尔的mma8452q 加速度传感器为例。 关键词:加速度计,传感器驱动,android 一部智能手机或便携设备应具有wi-fi 和互联网功能,能够运行应用软件等诸多特征,而且一定会具有内置传感器。高端智能手机可能集成接近传感器,环境光传感器,3 轴加速度计,以及磁力计等多种传感器。 android 2.3 添加了一些支持多种新型传感器的api,包括陀螺仪、旋转向量、线性加速度、重力和气压传感器等。应用软件可以使用这些新型传感器,将它们组合起来,就可以实现高精确度的高级运动检测功能。 3 轴加速度计或低g 值传感器是android api 支持的传感器之一,具有特定的坐标系统,可以给应用程序提供标准的接口数据。坐标空间的定义与手机屏幕的默认方向有关
    0 点赞
  • sm = (SensorManager)getSystemService(Context.SENSOR_SERVICE); aSensor = sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); mSensor = sm.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD); sm.registerListener(myListener, aSensor, SensorManager.SENSOR_DELAY_NORMAL); sm.registerListener(myListener, mSensor,SensorManager.SENSOR_DELAY_NORMAL);SensorEventListener myListener =new SensorEventListener() { publicvoid onSensorChanged(SensorEvent sensorEvent) { if (sensorEvent.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) magneticFieldValues = sensorEvent.values; if (sensorEvent.sensor.getType() == Sensor.TYPE_ACCELEROMETER) accelerometerValues = sensorEvent.values; float[] values =newfloat[3]; float[] R = newfloat[9]; SensorManager.getRotationMatrix(R, null, accelerometerValues, magneticFieldValues); SensorManager.getOrientation(R, values); //这里 values[0],values[1],values[2]里边的数据就是x y z 轴 分别的角度 } publicvoid onAccuracyChanged(Sensor sensor,int accuracy) {} };
    0 点赞

没有更多内容了

返回顶部
产品求购 求购