Android 加速度传感器 怎么转换成角度 我得到 了加速度的传感器的三个数值,并且也让它通过句柄显示到了显示屏上,但
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/08 00:41:56
Android 加速度传感器 怎么转换成角度 我得到 了加速度的传感器的三个数值,并且也让它通过句柄显示到了显示屏上,但是现在我想用这三个数值求得设备与水平或垂直的夹角,怎么得到?,有没有高手教教?我也是初接触安卓传感器.或者一起讨论讨论?
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) {}
};
再问: 你好,我按照您的方法,得到了三个数值,然后意识到这好像是没有经过换算的,然后我将每个数值都乘以180再除以π,得到了现在的数值,设备平放的时候Y和Z是0,X在-180到180,也就是当平放的时候可以用X偏向得到磁场指向,做到这里似乎没有问题了,但是我后来将地磁的三个数值一同输出到界面,发现X的地磁的数值居然有负数,还有的大于10,都20多了?地磁不是0-10么?这个,可以解释解释我听么?或者我的地磁传感器坏了?
再答: 没地方说过这个应该是0-10啊,这里的数字代表各方向的磁场分量,单位为微特斯拉,物理上的事,咱就别管了。
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) {}
};
再问: 你好,我按照您的方法,得到了三个数值,然后意识到这好像是没有经过换算的,然后我将每个数值都乘以180再除以π,得到了现在的数值,设备平放的时候Y和Z是0,X在-180到180,也就是当平放的时候可以用X偏向得到磁场指向,做到这里似乎没有问题了,但是我后来将地磁的三个数值一同输出到界面,发现X的地磁的数值居然有负数,还有的大于10,都20多了?地磁不是0-10么?这个,可以解释解释我听么?或者我的地磁传感器坏了?
再答: 没地方说过这个应该是0-10啊,这里的数字代表各方向的磁场分量,单位为微特斯拉,物理上的事,咱就别管了。
Android 加速度传感器 怎么转换成角度 我得到 了加速度的传感器的三个数值,并且也让它通过句柄显示到了显示屏上,但
最近看android的传感器,想把手机坐标上的三个方向的加速度转换成相对于地面的加速度
android获取加速度传感器的程序问题
倾角传感器如何将加速度转换成角度
加速度传感器是怎么检测震动的
角度传感器 与单片机连接 都有哪些型号 怎样数模转换 测的数据不是角度吧?是加速度还是三个坐标的位移
加速度传感器的一个问题.
任意角度安装三轴加速度传感器的问题.
加速度传感器的应用原理,加速度传感器在地震上的应用方向?
磁电式动圈检波器(传感器)可以测量不同频率的振动大小吗?磁电式振动速度传感器可以转换成加速度传感器吗
震动传感器和加速度传感器的区别在哪里?用加速度传感器可以测量震动吗?
MMA7455L加速度传感器通过什么公式来测角度,顺便说说原理就更好了!