Articles of 传感器

Android上的温度传感器

public class MainActivity extends Activity implements SensorEventListener { private TextView temperaturelabel; private SensorManager sensormanager; private Sensor temperature; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); temperaturelabel = (TextView) findViewById(R.id.text); sensormanager = (SensorManager)getSystemService(SENSOR_SERVICE); temperature= sensormanager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE); temperaturelabel.setText(""+temperature.getPower()); } protected void onResume() { super.onResume(); sensormanager.registerListener(this, temperature, SensorManager.SENSOR_DELAY_FASTEST); } protected void onPause() { super.onPause(); sensormanager.unregisterListener(this); } public void onAccuracyChanged(Sensor […]

需要从Sensor.TYPE_ORIENTATION数据计算旋转vector

我需要从Sensor.TYPE_ORIENTATION获得的数据中计算一个旋转向量。 传感器数据定义如下: 值必须重新计算以成为正确的3d位置:值[0]:方位angular,磁北方向与Y轴之间的angular度,围绕Z轴(0至359)。 0 =北,90 =东,180 =南,270 =西 值1 :绕X轴旋转(-180至180),z轴向y轴移动时为正值。 值[2]:滚动,围绕Y轴旋转(-90到90),当x轴离开z轴时具有正值 我需要像Z轴值(从0到360度)的所有三个值。 我试了很多,但不知道如何做到这一点:/ (编辑:在工作代码中查看背后的想法看看DroidAR框架的ActionWithSensorProcessing类,在那里你可以看到不同的事件types是如何处理的。) 我也尝试使用Sensor.TYPE_ACCELEROMETER和Sensor.TYPE_MAGNETIC_FIELD来自己计算这个3dvector。 这里是代码: final float[] inR = new float[16]; // load inR matrix from current sensor data: SensorManager.getRotationMatrix(inR, null, gravityValues, geomagneticValues); float[] orientation = new float[3]; SensorManager.getOrientation(inR, orientation); mapMagAndAcclDataToVector(orientation); //here i do some *360 stuff orientetionChanged(orientation); //then the correct values are passed […]

打印枚举的名字

我在ubuntu上使用eclipse + Android SDK。 我想打印一个传感器types设备的名称,那里有很多,我想自动执行。 如果我使用一个 Log.d("SENSORTYPE","Type: " + tempSensor.getType()) 我打印(int)types,但我想要使用枚举的名称。 我怎么能这样做? Thants提前。

计算Android传感器功耗

getPower()返回使用中传感器使用的功率(mA ) : 现在,我需要计算传感器注册使用多less电池。 他的价值是由getPower()返回mAH(mA每小时)还是别的? 如果是的话,有没有办法让电池的mAH来计算传感器使用的电池的百分比?

在Android上实现JKalman

关于从加速度计数据,其他传感器的数据,计算时空状态,以及在Android和其他设备中使用卡尔曼滤波器,有许多问题。 显然,这样做的最简单的方法是在Android上实现JKalman滤波器,例如用于汽车的稳定移动设备。 但是看看JKalman代码包中的示例实现,它并不多说,实际上和其他的Kalman实现有很大不同。 他们像这样实例化一个卡尔曼类: JKalman kalman = new JKalman(4, 2); 根据定义在哪里 public JKalman(int dynam_params, int measure_params) throws Exception { this(dynam_params, measure_params, 0); } dynam_params是“测量向量维度的数量”,而measure_params是“状态向量维度的数量” 。 Android中读取的传感器数据应该如何映射到这些? 以下是来自加速度计的数据,每500ms采样一次。 在其他听众有陀螺仪和指南针的数据。 我应该如何转换这些数据以input到卡尔曼? @Override public void onSensorChanged(SensorEvent event) { actualTime = System.currentTimeMillis(); if(actualTime – lastUpdateAcc < 500) return; else{ lastUpdateAcc = actualTime; //update myPosition TextView tv = (TextView)findViewById(R.id.textView3); tv.setText(String.format("X: […]

手机传感器

经过几个小时的search,我很困惑,所以我现在就告诉我学到了什么,所以请纠正我,如果我错了: 光线传感器:周围的光线 磁传感器:我可以得到北方的位置。 加速计传感器:重力XYZ,地球重力或任何加速度。 接近传感器:就像停车车辆传感器一样。 方位传感器:从轴上指示XYZ度。 我尝试过使用Android市场上的一些应用程序(如“我的传感器”)来testing这些传感器,并且我可以确认, 如果将手机旋转到桌面上, 加速计传感器感觉不到 。 虽然取向传感器似乎赶上了所有的动作。 现在我可以得出结论,指南针应用程序使用磁性传感器来查看北方的位置,然后方向传感器知道你的设备在哪里,对吗? 纵向和横向模式之间的切换使用“加速度传感器”,并检查哪个轴上的地球重力。 Q1:如果一切正常,什么是“陀螺仪”? 是否与“方向传感器”相同? Q2:大多数设备是否提供方向传感器? 问题3:定向传感器有什么其他用途? Q4 :为什么大多数网站甚至维基百科都说过方向传感器==加速度传感器? -Rami

在Android 2.1中使用getRotationMatrix和getOrientation

我一直有这个问题太久了。 这个代码应该输出加速度计的dx,dy,dz和dx的运行总数。 它也应该输出方位angular,俯仰angular和滚转angular。 我已经使用了这里给出的信息 ,但是无济于事。 此代码不能正确输出音调,方位angular或滚动。 它为最后三个文本分别输出0.0,-0.0,-0.0。 switch (event.sensor.getType()) { case Sensor.TYPE_ACCELEROMETER: accelerometerValues = event.values.clone(); case Sensor.TYPE_MAGNETIC_FIELD: geomagneticMatrix = event.values.clone(); sensorReady = true; break; default: break; } if (geomagneticMatrix != null && accelerometerValues != null && sensorReady) { sensorReady = false; float[] R = new float[16]; float[] I = new float[16]; SensorManager.getRotationMatrix(R, I, accelerometerValues, geomagneticMatrix); […]

奇怪的行为与android方向传感器

目前,我正在尝试使用方向传感器值使用getRotation()方法来旋转3D立方体。 当Android设备被旋转到一些边界之上时,会观察到一些意外的行为。 例如,如果我让设备“站起来”,“滚动”的价值就变得疯狂了。 此外,我正在经历类似于所谓的万向节锁的现象。 唯一的区别是我甚至在将传感器值应用到3D旋转之前遇到了这个问题。 当我尝试通过仅围绕“俯仰”轴旋转装置来改变“俯仰”值时,“俯仰”值也根据俯仰的旋转而改变。 对我来说这似乎完全不合理。 有人能帮我吗? 我被困在这个问题上一个月了。

Android – 传感器读数如何影响电池寿命

我在我的应用程序中添加了一个使用接近度和加速计传感器的function(第二个function是检测抖动)。 这是在一个始终运行的服务中实现的(如果用户select它当然)。 但是我担心我的电池会有电量。 我没有使用任何唤醒锁,但即使屏幕closures,我仍然可以看到我的日志中可以看到的读数。 问题是:以下哪项是正确的? 这两个提到的传感器始终由android系统始终激活(在这种情况下,我收集的读数也不会影响电池寿命…我猜)。 Android系统大部分时间closures这些传感器(在这种情况下,通过我的服务始终保持它们的状态会影响电池寿命) 如果(2)是真的:是否有可能为传感器实现我自己的睡眠周期,还是整个切换过程会使事情变得更糟?

传感器融合在Android上实现?

我听了这个讲话: http : //www.youtube.com/watch?v = C7JQ7Rpwn2k 这是Invensense公司将其“传感器融合”系统原型化的地方,它们将陀螺仪,加速度计,罗盘测量结合在一起,以获得更好的结果。 这是目前在任何版本的Android中实施? 我要问的原因是,传感器融合的一部分是自API Level 9以来在Android中实现的“重力”传感器和“线性加速度”传感器…使我认为1)传感器融合是实现的2)传感器融合没有实现,但是这些只是添加到Android API,以期望在未来广泛增加传感器融合实现。 有人知道吗? 谢谢