Articles of 加速度计

加速度计重力组件

我知道这个问题肯定已经解决了很多次,如果你知道他们的存在,请赐教,谢谢。 快速破解:我想从三轴加速计计算这三个轴上的重力分量。 我已经使用了2轴自由体图来计算世界XZ,YZ和XY轴上的加速度计重力分量。 但是解决scheme似乎稍微偏离了一些情况,对于极端情况,只有一个加速度计轴受到重力的影响是可以接受的,但是对于45度的俯仰和滚动,总的合成幅度大于重力(由Xa ^ 2 + Ya ^ 2 + Za ^ 2 = g ^ 2; Xa,Ya和Za是在其X,Y和Z轴上的加速度计读数。 更多细节:该设备是Nexus One,除了3轴加速度传感器之外,还有一个用于方位angular,俯仰angular和滚转angular的磁场传感器。 在世界轴线(Z方向与重力方向一致,X或Y指向北极方向,不要以为这很重要?),我假设我的装置在YZ轴上有一个节距(P)和XZ轴上的卷(R)。 我用这个简单的trig来得到:Sin(R)= Ax / Gxz Cos(R)= Az / Gxz Tan(R)= Ax / Az 还有另外一组音调P 现在我定义了重力在世界轴上有三个分量,一个只能在XZ轴上测量的Gxz,一个在YZ上的Gyz,在XY轴上的Gxy。 Gxz ^ 2 + Gyz ^ 2 + Gxy ^ 2 = 2 * G ^ 2因为重力在这个定义中被有效地包含了两次。 哦,XY轴产生更奇特的东西…我会解释如果需要以后。 从这些方程中,我得到了Az的公式,并删除了tan操作,因为我不知道如何处理tan90的计算(无穷大?)。 […]

根据Google地图V2 Android上的用户指示旋转标记

我想根据从加速度传感器接收到的方位或传感器值来旋转标记,以向用户显示他正在移动的位置。 我已经将标记图标和平坦值设置为true,但不能按需要工作。 mCurrentLocationMarker.position(new LatLng( LocationUtils.sLatitude, LocationUtils.sLongitude)); mCurrentLocationMarker.icon(icon); mCurrentLocationMarker.flat(true); mCurrentLocationMarker.rotation(LocationUtils.sBearing); if (currentMarker != null) { currentMarker.setPosition(new LatLng( LocationUtils.sLatitude, LocationUtils.sLongitude)); } else { currentMarker = mGoogleMap .addMarker(mCurrentLocationMarker); } animateCameraTo(true); 我用过这个 作为标记。 我不知道为什么它不按照用户的方向旋转。 如果有人有任何想法,请在我犯错的地方帮助我。 LocationUtils.sBearing是我从onLocationChanged或加速度计收到的方位的值。 基本上我想使我的标记相同的谷歌地图标记显示用户在哪个方向移动或转动。

什么是Android加速度计最小和最大范围

嗨,我想知道在Android的加速度计的最小和最大范围。 我需要它的x,y,z。 做任何一个具有确切的价值观吗?

如何提高加速度计和指南针传感器的精度?

我正在创build一个增强现实应用程序,当手机正面临一个兴趣点(手机上存储着这个GPS位置)时,这个应用程序只能显示一个文本视图。 文本视图被绘制在屏幕上的兴趣点位置上。 它工作正常,问题是指南针和加速度计是非常“变体”,并且textview不断上下左右移动,因为传感器的精确性。 有办法解决吗?

获取旋转和度数显示

我需要一些非常简单的东西,但我找不到一个合适的例子来学习。 我唯一的目的是以下几点: 由于设备平放在桌面上,因此X轴和Y轴应显示0(或接近0)。 当我从顶部(扬声器所在的位置)和底部(麦克风所在的位置)放下扬声器时,应该会显示手机倾斜了多less度数。 在math上描述 – 以度数表示手机背面和桌子之间的angular度,对于其中一个轴。 当我抬起底部(顶部保持放下),然后显示负度。 另一个轴也是如此 – 将手机围绕其长边旋转。 我尝试使用陀螺仪或加速度计或旋转vector传感器组装来自不同示例的应用程序,但无法正常工作。 有人可以给我一个onSensorChanged函数的例子(所有的工作在这里进行),只是告诉我哪个传感器被使用,所以我知道要注册什么?

如何创build一个Android应用程序,当屏幕locking时在摇动事件上激活?

我想要创build一个应用程序,即使在屏幕locking时,只要设备发生抖动,就会启动主要活动。 任何人都可以解释如何做到这一点? 我有一个想法,它需要创build一个在后台运行的服务,但我正在努力与实际编码,不知道该怎么做。

用Android手机在空气中

我正在研究一个应用程序,用Android手机在空中画。 当我的手机正在移动,感谢加速度计,我检索每个轴上的加速度ax,ay,az。 我感兴趣的是:x,y,z。 从我在论坛和一些教程中读到的内容来看,两次加速都会带来巨大的错误。 那么,获取关于手机取代信息的最佳解决scheme是什么? 谢谢你的帮助。

从android加速计获取倾斜angular度

我有一个实现SensorEventListener的类,我想使用Accelerometer来获取我的设备的tilt Angle 。 我在互联网上查找示例,但他们使用Sensor.TYPE_MAGNETIC_FIELD 。 我相信我的设备没有这个传感器,因为当我做下面的检查 manager.getSensorList(Sensor.TYPE_ACCELEROMETER).size() ,我得到零 。 有没有办法通过使用Sensor.TYPE_ACCELEROMETER值来获得tilt Angle ?

计算build筑物内的距离

我开始考虑创build一个可以在公司大楼内使用的Android应用程序,以确定你在哪个房间。显然,我认为GPS和networking位置不足以完成这个任务。 (更不用说里面的GPS信号不稳定了)我简单地看了一下加速度计计算距离,但显然是非常不稳定的,并且有很大的误差。 我也考虑过路由器的某种三angular测量,但是遇到了墙壁/微波炉和其他各种可能破坏信号强度的问题。 有没有人有任何可能的想法或方向来尝试?

陀螺问题与设备方向

我使用本教程获取设备陀螺仪的俯仰和滚动数据: http : //www.thousand-thoughts.com/2012/03/android-sensor-fusion-tutorial/ 所有的读数都非常准确(在教程中有一个滤波器应用于代码,以消除陀螺漂移)。 不幸的是,代码仅在我的设备平放在与地面平行的表面上时才起作用。 我的应用程序工作的最理想的位置是设备的顶部朝上(即,设备垂直于地面,屏幕面向用户)。 每当我把我的装置定位在这个位置时,音调值就会变成+90度(如预期的那样)。 我想要做的就是将这个位置设置为我的设备的0度点(或者初始位置),这样当我的设备朝向竖直(纵向模式),屏幕面向用户时,音高读数为0度。 我问了这个教程的作者在这个问题上的帮助,他回答说: “如果你想把直立的位置作为最初的位置,你将不得不旋转你的参照系,最简单的方法是将产生的旋转matrix围绕X轴旋转-90度,但是你必须一定要记住旋转不是交换操作,为了更具体的说明,我必须再次查看代码,因为我还没有用过一段时间现在。” 我真的很困惑和难住,如何旋转我的参考框架。 我想底线是,我不知道如何旋转matrix围绕X轴-90度。 如果有人能帮助我这个部分,这将是太棒了。 这里是我的代码,以防有人想要提及它: public class AttitudeDisplayIndicator extends SherlockActivity implements SensorEventListener { private SensorManager mSensorManager = null; // angular speeds from gyro private float[] gyro = new float[3]; // rotation matrix from gyro data private float[] gyroMatrix = new float[9]; // orientation angles from […]