我正在开发一个需要检测某人头部运动的应用程序,尤其是当有人点头时。为此,我们在带有加速度计 (MPU-6050) 的盖子上放置了一个 Arduino。加速度计从水平方向返回 0 到 10 之间的值以向上看,0 和 -10 以向下看。
我需要识别代表简单点头的值中的模式,例如this。我被告知我必须使用类似的东西:
for(int x = 0; x < 100; x++){
result += abs(oldvalue) + abs(newvalue) / 2;
}
这将获得 100 次循环(如 0.5 秒)的平均值,但无法根据result
.
我自己考虑过检查某种波形,实际上是点头。旧值会在一段时间内低于或高于另一个值,但不确定如何执行此操作,因为我无法暂停我的代码,因为它也在检查其他传感器(麦克风和指南针)的输出。