Articles of 传感器

每秒获取传感器值

有什么方法可以让我每秒获得传感器读数吗? 什么是SENSOR_DELAY_NORMAL费率,以秒为单位? sm=(SensorManager)getSystemService(SENSOR_SERVICE); accelerometer=sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); sm.registerListener(this, accelerometer, SensorManager.SENSOR_DELAY_NORMAL);

“自定义”传感器事件率似乎不适用于SensorManager.registerListener(SensorEventListener侦听器,传感器传感器,int率)

更新: 通过引入类范围的静态计数器并且忽略了x个事件,我能够解决我遇到的具体问题。 但是我仍然想知道我做错了什么:用微秒注释监听器而不是使用四个给定常量中的一个。 我的应用程序中的一项活动是让传感器参与获取设备的方向,确定滚动并使用它。 我在用 SensorManager.registerListener(SensorEventListener listener, Sensor sensor, int rate) 注册我的传感器。 从Android文档获取此方法: 参数 […] 率 速率传感器事件在。 这只是对系统的暗示。 可以比指定的速率更快或更慢地接收事件。 通常会更快地收到事件。 该值必须是SENSOR_DELAY_NORMAL,SENSOR_DELAY_UI,SENSOR_DELAY_GAME或SENSOR_DELAY_FASTEST之一,或者是事件之间所需的延迟(以微秒为单位)。 如果我使用4个预定义常量中的一个,那么应用程序工作正常; 但是这些常量都提供了对我的需求来说太快的速率提示。 我必须发送一个UDP数据包,其中包含每个事件更改的一些信息,并且接收端似乎完全被使用任何预定义速率的消息所淹没。 使用像30000这样的整数(因为API指定以微秒为单位的数量)会导致应用程序停止一起报告传感器事件。 我错过了什么阻止我使用自己的事件率提示?

您可以同时保存/查看video文件和传感器数据吗?

我是Java编程语言的新手,我想知道我是否要收集sesnor数据以及video录制,我能够保存这两组数据,然后打开这两组数据来同时查看它们。 我正在收集压力数据和录像,记录导致压力变化的原因。 我希望在收集数据时显示数据和video的图表。 我想知道是否可以保存两组数据,然后能够重新打开两组数据并将它们彼此相邻查看,以便查看压力何时增加并直观地看出是什么导致压力增加。

如何在Android上从方位角获取指南针方向

我必须显示用户指向Android设备的方向。 我正在使用Sensor.TYPE_ACCELEROMETER , Sensor.TYPE_MAGNETIC_FIELD获取方位角,俯仰,滚动。 但我能够弄清楚如何从这里获得方向(北,南,东,西,……)。 请帮忙 谢谢

有没有办法在Android中检索多个传感器数据

我正在尝试获取加速度计和方向数据。 目前,我创建了一个AccelerometerManager和OrientationManager。 他们都做同样的事情; 实现SensorEventListener并从onSensorChanged()侦听器中的values []中检索数据。 有更简单的方法吗? 似乎有两个处理程序重复代码是不必要的。 有没有办法使用组合的加速度计和方向数据一起访问values []数组? 由于2个处理程序,我还必须这样做: orientationManager = new OrientationManager(this); orientationSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); orientationSensorManager.registerListener(orientationManager, orientationSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_GAME); accelerometerManager = new AccelerometerManager(this); accelerometerSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); accelerometerSensorManager.registerListener(accelerometerManager, orientationSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME);

屏幕关闭时,Android工作方式适用于非工作传感器

[编辑:删除所有提到的Android版本 – 问题出现在所有版本的android] 背景:当屏幕关闭时,许多Android手机不会通过在屏幕关闭时调用onSensorChanged()来为Accelerometer读数的应用程序提供更新。 此行为在SO上进行了讨论,并在此处进一步说明http://code.google.com/p/android/issues/detail?id=3708 在某些手机(Nexus S,Droid X2,…)上,加速度计值仅在值发生重大变化时提供。 例如,坐在桌子上,每分钟可能有一次或零次更新 为了生成跨手机型号的强大代码,我如何区分每个屏幕缺少更新事件,以及每次非移动缺少更新? 我应该维护手机型号的数据库吗?

使用Android Things通过DHT11读取温度

我正在使用Raspberry pi3和DHT11传感器进行温度监测项目。 我有以下针位置 VCC引脚号:2接地引脚号:6输出到GPIO:BCM22即引脚号15 我用过的代码: public class WeatherStationActivity extends Activity { private Handler mHandler = new Handler(); private TextView mTxtStatus; private PeripheralManagerService service = new PeripheralManagerService(); private Gpio tempGpio; private int i = 0; int[] dht11_dat = {0, 0, 0, 0, 0}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d(“Weather station”, “Started Weather Station”); setContentView(R.layout.activity_main); […]

如何设置TI SensorTag以收集数据以供日后检索?

我正在使用TI SensorTag ,我希望它能够在我的手机不在范围内时通过蓝牙LE连接来存储数据。 目前,传感器仅在设备处于无线范围内时才传输数据。 通过访问SensorTag上的固件,即使手机不在范围内,也可以使其存储数据,然后在设备可用时进行传输。 我正在使用iPhone,使用他们的示例代码访问它。 我也可以使用Android代码,如果有人认为可以更好地运行。 是否可以告诉固件在本地记录此数据? 如果是,需要通过蓝牙LE传输哪些命令? 如果没有,是否可以修改固件以支持此function?

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 […]

如何/应该实施卡尔曼滤波器以获得准确的加速度计数据?

我希望尽可能从Android手机中的内置加速度计获得准确的数据。 我想跟踪x和y轴的二维运动,甚至必须注册小的运动。 当我看到手表在桌子上是平的时加速度计/线性加速度的数据,当我应该为零时,它会发生很大的变化。 我看过卡尔曼滤波器,这似乎是一个很好的方法,但我在设置模型时遇到了问题。 1.卡尔曼滤波器是否可以从加速度计获得尽可能准确的数据? 2.卡尔曼滤波器是否有效? 也许我误解了但似乎加速度或速度必须是恒定的? 3.如何设置使用卡尔曼滤波器的模型? 我很难理解(除其他事项外)过程噪音是什么?