gpt4 book ai didi

accelerometer - 如何识别 Microsoft Band 手势

转载 作者:行者123 更新时间:2023-12-02 14:27:48 27 4
gpt4 key购买 nike

我可以通过手机向配对的 Microsoft Band 发送消息和/或对话,但我希望从 Band 向手机返回确认信息。由于似乎没有其他方法,我想我必须采取一个手势,例如用户来回旋转手腕一次,或者可能摇动手腕。这听起来像是加速度计和陀螺仪的工作。从这些数据中收集信息应该很容易,但是在识别手势(例如手腕向一个方向旋转然后再向另一个方向旋转)方面,任何人都可以建议如何将其识别为有意的手势,而不仅仅是正常的手势“非手势” Action ?

非常感谢您的帮助,

约翰·H.

最佳答案

首先保存数据并将其绘制为不同类型的图表,以查看是否看到手势的模式。我遇到了类似的问题,我想检测用户何时咬了一口,并过滤掉其他手势,例如切割、喝水等。

我记录了 1 分钟的数据,并准确地咬了预定的次数,否则交互正常。然后,我对数据进行了一些平滑处理,并查看图表,看看是否可以看到一种模式,以了解可以使用哪些阈值。

我确定的一些因素是:定义咬合的一组读数中的 Nr 个(必须大于 20,间隔为 16 毫秒)Y 轴上的峰谷间断

我用它来创建一个计算,根据用户提供的训练数据找到“最终”阈值,但由于旋转等手势因人而异,因此您可以预先定义阈值例如,让用户设置灵敏度。

以下是一些图表:

应该说 Y 数据:) enter image description here

enter image description here

这张图片可能太模糊了,但这一切都始于一些想法和一些白板,其中考虑了使用斜率、抛物线计算、随时间变化的加速度以及未考虑的所有内容。蛮力效果最好,否则我的数学就很糟糕。

enter image description here

摘要

  • 写下您的手势的定义以及涉及的因素
  • 记录数据来自加速度计和陀螺仪并绘制一些图表
  • 寻找常见模式
  • 构建一个能够产生正确响应的算法基于输入数据和因素。
  • 调整和重构。

摇动应该相当容易,只需决定哪种方式(上下或侧向,或两者都允许)。设置轴的阈值,并决定在多长时间内必须有多少次交叉。

电话上的伪代码,请原谅丑陋:)类似于......的东西?:

if(总时间 < maxTime)

if(读.X>某事) if(reading.timestamp - itemsForCount.Last().TimeStamp <= maxTimeBetweenShakes) itemsForCount.Add(新项目({....})

if (itemsFourCount.Count >=desiredShakes) itemsFourCount.Clear();if(总时间 > 最大时间) itemsFourCount.Clear();

灵感:我对 Leap 运动做了一些工作,我记得查看了他们的 js 代码,看看他们的几个手势是如何定义的。 Here is Js leap motion. C# 库需要反编译,这会违反 lic。协议(protocol)。

Hammer.js另外,它是一个有趣的 OSS,您可以在其中看到如何定义触摸手势,- 查找滑动和旋转。

还有一些 kinect 手势 API 值得一看,但与 Leap 不同,因为您通常需要使用骨架或点模型以及用于坐标的 View 框。

关于accelerometer - 如何识别 Microsoft Band 手势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29829832/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com