标签: accelerometer

如何检测有人摇动iPhone的时间?

当有人动摇iPhone时,我想做出反应.我并不特别在乎它们是如何摇晃它的,只是它在一瞬间大力挥手.有谁知道怎么检测到这个?

accelerometer motion-detection shake ios

339
推荐指数
12
解决办法
12万
查看次数

如何在摇动设备时刷新应用程序?

我需要添加一个可以刷新我的Android应用程序的摇动功能.

我发现的所有文档都涉及到实现SensorListener,但Eclipse告诉我它已被弃用并建议SensorEventListener.

谁有一个很好的指导我如何创建这个shake controller

android accelerometer shake

250
推荐指数
4
解决办法
12万
查看次数

如何从Javascript访问加速度计/陀螺仪数据?

我最近遇到过一些似乎可以访问我的笔记本电脑上的加速度计或陀螺仪的网站,检测方向或运动的变化.

这是怎么做到的?我必须在window对象上订阅某种事件吗?

已知这些设备(笔记本电脑,手机,平板电脑)有效吗?


注意:我实际上已经知道(部分)这个问题的答案,我将立即发布.我在这里张贴问题的原因,是为了让每个人都知道,加速度计数据在Javascript中可用的(在某些设备上),并挑战社会关于这个问题发表新的研究结果.目前,似乎几乎没有这些功能的文档.

javascript accelerometer gyroscope

134
推荐指数
3
解决办法
10万
查看次数

Android加速度计精度(惯性导航)

我正在考虑为Android手机实施一个惯性导航系统,我意识到加速度计的准确性和读数的不断波动很难实现.

首先,我将手机放在一个平面上,并在X和Y方向上取样1000个加速度计读数(平行于工作台,因此没有重力作用于这些方向).然后我平均这些读数并使用该值来校准手机(从每个后续读数中减去该值).

然后我再次将它放在桌面上并在X和Y方向上采样5000个加速度计读数来测试系统.考虑到校准,我预计这些加速度应该在每个方向上加起来为0(大致).然而,情况并非如此,并且超过5000次迭代的总加速度远不及0(每个轴上平均大约10).

我意识到没有看到我的代码,这可能很难回答,但在更一般的意义上......

这只是移动电话(HTC Desire S)上加速度计读数不准确的一个例子,还是我在编码中出错的可能性更大?

android physics calibration accelerometer acceleration

108
推荐指数
5
解决办法
9万
查看次数

了解FFT输出

我需要一些帮助来理解DFT/FFT计算的输出.

我是一位经验丰富的软件工程师,需要解释一些智能手机加速度计读数,例如查找主要频率.不幸的是,我在十五年前的大部分EE课程中都睡过了,但过去几天我一直在阅读DFT和FFT(显然没什么用).

请不要回答"参加EE课程".如果我的雇主付钱给我,我实际上打算这样做.:)

所以这是我的问题:

我以32 Hz的频率捕获了一个信号.这是一个32秒的1秒样本,我在Excel中绘制了它.

在此输入图像描述

然后,我从哥伦比亚大学获得了一些用Java编写的FFT代码(在遵循" Java中的可靠和快速FFT "一文中的建议之后).

该程序的输出如下.我相信它正在运行就地FFT,因此它为输入和输出重复使用相同的缓冲区.

Before: 

Re: [0.887  1.645  2.005  1.069  1.069  0.69  1.046  1.847  0.808  0.617  0.792  1.384  1.782  0.925  0.751  0.858  0.915  1.006  0.985  0.97  1.075  1.183  1.408  1.575  1.556  1.282  1.06  1.061  1.283  1.701  1.101  0.702  ]

Im: [0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0 …
Run Code Online (Sandbox Code Playgroud)

java audio signal-processing fft accelerometer

80
推荐指数
4
解决办法
4万
查看次数

基于陀螺仪和加速度计的室内定位系统

我正在开发一个Android应用程序来跟踪室内位置.我的手机是使用两个传感器的Google Nexus S,第一个是加速度计,第二个是陀螺仪.

我的想法是,从起始参考点(已知的GPS位置),使用2个传感器(用于运动的加速度计和用于方向的陀螺仪)在移动时跟踪手机.并在用户出发时显示在地图上.

但问题是我不知道如何将这两种传感器结合起来给我一个实际位置?

我在互联网上看过一些关于"kalman过滤器"的文章,经过一些研究后我发现那个过滤器对我来说非常复杂/太多了)特别是在java for Android(cpu杀手)中编码

有人有经验可以与我分享使用陀螺仪和加速度计的室内定位系统吗?

android location position accelerometer gyroscope

71
推荐指数
2
解决办法
7万
查看次数

结合陀螺仪和加速度计数据

我正在使用Lego Mindstorm的NXT系统构建一个平衡机器人.我使用的是HiTechnic的两个传感器,第一个是加速度计,第二个是陀螺仪.我已经成功地滤除了传感器和衍生角度的噪声,两者的范围在-90到90度之间,0度完全平衡.

我的下一个挑战是结合两个传感器值来校正陀螺仪随时间的漂移.下面是我根据实际数据创建的示例图,用于演示陀螺仪的漂移:

在此输入图像描述

我见过的最常用的方法是将这些传感器结合起来使用卡尔曼滤波器.但是,我不是微积分的专家,我真的不懂数学符号,但我确实理解源代码中的数学.

我正在使用RobotC(就像任何其他C衍生产品一样),如果有人能给我一些如何在C中完成此任务的例子,我将非常感激.

谢谢您的帮助!

解决方案结果:

好吧,kersny通过向我介绍补充过滤器解决了我的问题.这是一个说明我的结果的图表:

结果#1

在此输入图像描述

结果#2

在此输入图像描述

如您所见,滤波器校正陀螺仪漂移并将两个信号组合成单个平滑信号.

编辑:因为我正在修复破碎的图像,我认为显示我用来生成这些数据的装备会很有趣:

在此输入图像描述

c algorithm accelerometer lego nxt

69
推荐指数
2
解决办法
9万
查看次数

屏幕关闭时,Android加速度计无法正常工作

我正在为计算机科学的最终论文开发一个应用程序,我需要收集并记录加速度计数据.我需要一整天才能获得它,因此存在严重的电池限制(例如,我无法启动屏幕).此外,这不是一个以市场为目标的应用程序,因此如果需要,做一些严重的黑客攻击,甚至低级C/C++编码是完全可以接受的.

众所周知,在许多设备上,加速计事件的监听器在屏幕关闭时停止生成事件(关于此问题的一些链接:http://code.google.com/p/android/issues/detail?id = 3708,加速度计当Droid/Nexus One屏幕关闭时,即使使用WakeLock,也会停止传送样本.我已经彻底搜索了一些替代方案,其中一些包括对我的设备不起作用的解决方法(LG P990,股票ROM).

所以会发生这样的事情:当你在服务中为android加速计传感器注册事件监听器时,它可以正常运行,直到屏幕关闭.我已经尝试在IntentService上的服务上注册eventListener,试图获取WakeLocks.关于唤醒锁,我可以验证服务是否仍在运行,观察LOGcat输出,但似乎加速度计进入睡眠模式.某些链接中提供的解决方法之一是使用IntentService的线程定期取消注册和重新注册事件侦听器,如下面的代码片段所示

synchronized private static PowerManager.WakeLock getLock(Context context) {
    if (lockStatic==null) {
        PowerManager mgr=(PowerManager)context.getSystemService(Context.POWER_SERVICE);

        lockStatic = mgr.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,NAME);
        lockStatic.setReferenceCounted(true);
    }

    return(lockStatic);
}

@Override
protected void onHandleIntent(Intent intent) {

     sensorManager=(SensorManager) getSystemService(SENSOR_SERVICE);
     sensorManager.unregisterListener(this);
     sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL);


    synchronized (this) {
        boolean run = true;
        while (run){
            try {
                wait(1000);
                getLock(AccelerometerService.this).acquire();
                sensorManager=(SensorManager) getSystemService(SENSOR_SERVICE);
                sensorManager.unregisterListener(this);
                sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL);
                Log.d("Accelerometer service", "tick!");

            } catch (Exception e) {
                run = false;
                Log.d("Accelerometer service", "interrupted; cause: " …
Run Code Online (Sandbox Code Playgroud)

android screen sensor accelerometer

68
推荐指数
2
解决办法
2万
查看次数

陀螺仪与加速度计?

既然iOS 4不再是NDA,我想知道Gyroscope为开发人员提供的加速度计.API有区别吗?其他事情?

iphone accelerometer ios4 gyroscope

46
推荐指数
2
解决办法
4万
查看次数

如何在Android模拟器中模拟加速度计?

我现在没有Android手机.但在我的应用程序中,我需要使用加速度计值.如何在模拟环境中执行此操作?

android accelerometer android-virtual-device

44
推荐指数
3
解决办法
5万
查看次数