我看到很多关于过滤Accelermeter值的例子,以消除重力(高通滤波器).
但是大多数都是一阶的,据说很简单,但是迟到而不是最好的(尽管我对滤波器或DSP一无所知).
这里有人说DSP中存在用于感知运动的更好的解决方案.遗憾的是,我甚至无法想象会是什么,因为我完全不喜欢这个领域.
我希望有人能够分辨出处理传感器时可以使用的滤波器类型.当然,即使对具体算法进行简要介绍也会非常高兴:)
提前致谢.
我需要一些帮助从方向传感器获取信息.正如我在几乎每个教程/指南中看到的那样,值被传递给一个事件(onSensorChanged(SensorEvent事件),在该事件中可以操作它们.
我的问题是我不想让电磁/方向传感器持续运行(为了电池寿命).我希望能够打开它,获取当前值并将其关闭.有没有办法做到这一点?
我做了一些搜索,发现我可以尝试多线程,但我对此并不十分满意.
我正在寻找的东西是(抱歉由于缺乏格式化我似乎无法弄清楚):
private void getOrientationNOW() {
m_SensorManager.registerListener(mySensorEventListener, m_MagneticSensor, SensorManager.SENSOR_DELAY_FASTEST);
//---->Something here to get the current value from the sensor
m_SensorManager.unregisterListener(mySensorEventListener);
}
Run Code Online (Sandbox Code Playgroud)
如果可以,请帮助我!
谢谢大家!
我试图用加速度计检测摇动事件.我发现当我对手机进行连续摇动时,加速度的值差非常稳定.但是当我旋转手机时,价值总会发生很大的变化(该值通常大于"不旋转时摇晃").我想专注于摇晃事件,而不是旋转事件.有办法解决问题吗?
这是我的shaing检测代码
public void onSensorChanged(SensorEvent event)
{
if (event.sensor.getType() == SensorManager.SENSOR_ACCELEROMETER)
{
nowTime = System.currentTimeMillis();
float x = event.values[SensorManager.DATA_X];
float y = event.values[SensorManager.DATA_Y];
float z = event.values[SensorManager.DATA_Z];
nowAcc = Math.sqrt(x*x+y*y+z*z);
accDiff = Math.abs(nowAcc - preAcc);
timeDiff = (nowTime - preTime);
// try to get the sum of 10 samplings of accDiff
tempAccDiff10 = tempAccDiff9;
tempAccDiff9 = tempAccDiff8;
tempAccDiff8 = tempAccDiff7;
tempAccDiff7 = tempAccDiff6;
tempAccDiff6 = tempAccDiff5;
tempAccDiff5 = tempAccDiff4;
tempAccDiff4 = tempAccDiff3;
tempAccDiff3 = tempAccDiff2;
tempAccDiff2 = tempAccDiff1;
tempAccDiff1 = …Run Code Online (Sandbox Code Playgroud) 有一个编译命令行应用程序在这里做这个.
是否有Cocoa API来查询这些数据?
我想知道我是否可以使用(线性)加速度计和指南针来计算速度,而无需使用位置服务.我想通过北/西/上轴计算加速度分量并随时间积分来实现.
那会有用吗?
是否可以在我的移动电话和传感器之间建立连接而不进行同步?
我扫描设备,发现我的传感器(出现在没有同步的列表中),但是当我尝试与它同步时,传感器从列表设备(最近发现)中消失,没有理由,所以我不能同步它们.
我正在使用摩托罗拉Razr中的Bluetooh Low Energy开发并使用摩托罗拉提供的蓝牙LE API:http://developer.motorola.com/docs/bluetooth-low-energy-api/
提前致谢!
编辑:只是为了澄清我的问题,这个问题(最后一段)是在内部应用程序中管理Android操作系统中的BT连接,而不是在我的应用程序中.
我只是想知道是否可以连接没有配对的设备并使用蓝牙低功耗(重要提示).
我想开发一个应用程序,我需要知道我的设备在建筑物内的位置(设备当前所在的房间).GPS不在建筑物内工作.有没有办法在建筑物中找到设备的位置?如果有,怎么样?我可以使用位置或运动传感器或这些传感器的组合吗?
我是Ubuntu应用程序的新手,我正在尝试为Ubuntu Touch创建一个应用程序来读取传感器的值(Accelerometer,Gyroscope,...),但我不知道从哪里开始.使用哪种语言?QML,C++ ..我已经在网上进行了彻底的搜索,我在ubuntu touch中找不到使用传感器的单个示例应用程序.
我曾尝试将QtMobility和QtSensors插件与QtCreator一起使用,但它只在桌面上运行代码.当我尝试在设备上运行应用程序时,会显示一条消息,指出未安装模块.因此,我不知道QtSensors是否在Ubuntu Touch中实现,或者即使这是在Ubuntu touch中访问传感器的正确方法.
我用OTA将Nexus 5升级为Marshmallow.由于更新基于简单传感器的活动不再起作用.以下代码在其他设备上执行应该执行的操作(Galaxy S4 Lolipop,AVD,...)
有人也试过这个吗?我错过了什么吗?
这是代码:
的build.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "fr.rouk1.test"
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
}
Run Code Online (Sandbox Code Playgroud)
AndroidManifest.xml中
<?xml version="1.0" encoding="utf-8"?>
<manifest
package="fr.rouk1"
xmlns:android="http://schemas.android.com/apk/res/android">
<uses-feature
android:name="android.hardware.sensor.gyroscope"
android:required="true"/>
<uses-feature
android:name="android.hardware.sensor.accelerometer"
android:required="true"/>
<uses-feature
android:name="android.hardware.sensor.compass"
android:required="true"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/> …Run Code Online (Sandbox Code Playgroud)