使用 PyAudio 获取跑步机速度

Get Treadmill Speed Using PyAudio

我正在尝试通过拦截从速度传感器引出的电线来读取手动跑步机(York Pacer 2120 - 手册:http://www.yorkfitness.com.au/uploaded/pdf_40Pacer%202120%20Treadmill_5500.pdf)的速度。我通过尽可能多地拆开跑步机获得的理解是,速度传感器基本上是一个磁铁,附在一个大磁盘上,该磁盘附在跑步机的皮带上,每次通过线圈时都会产生电流.

从速度传感器引出的电线末端为 3.5 毫米插孔。我将它插入笔记本电脑的麦克风端口并记录了我在高速和低速下行走的 "sound"。我附上了分别在 Audacity 中记录的低速和高速波形图像。

我的目标是实时测量跑步机的速度,以便我可以将其作为输入传递到我的游戏引擎并控制游戏中角色的速度。我不确定执行此操作的最佳方法是什么,但目前我正在尝试使用 PyAudio 测量 python 中 "beats" 之间的距离。

为此,我从另一个问题 (Detect beat and play (wav) file in a syncronised manner) 的答案中复制了节拍检测代码,但这给了我一个可用的高误报率。

有没有人知道我还能如何从这个信号中获得可用的速度?如果您这样做,将不胜感激代码示例。除此之外,人们还能如何尝试测量手动跑步机的速度?我尝试了各种方法,从使用相机测量粘在跑步机皮带上的胶带之间的距离,到将鼠标物理粘在跑步机上以测量皮带的速度。

声音文件在这里:

大胆的项目在这里: https://www.dropbox.com/s/3cjvo3m2ln2ldet/AudacityFiles.zip?dl=0

我可能会看这里Convert multi-channel PyAudio into NumPy array

从音频来看,当信号<0时,你只需要一个简单的触发器,你可以修改回调方法来检测振幅何时为正,N个样本为负,然后计算每秒发生次数检索速度

我最终解决了这个问题,但我放弃了 PyAudio 并改用 Raspberry Pi。如果有人感兴趣,我把代码开源了:https://bitbucket.org/grootteam/gpio-treadmill-speed/