我正在开发一个应用程序,它读取亮度传感器以检测Ferraris electrical meter轮上的红色条纹。检测这种情况的一种简单方法是查看数据,选择阈值,然后计算信号低于阈值的频率以检测旋转。然而,这并不理想,因为亮度传感器的读数根据环境光而变化。
因此更优雅的解决方案是实际检测波形,波形具有非常明显的模式。我做了一些测量并绘制了它们:
顶部的图表描述了发生的绝对值,底部的图表是与前一个值的差异。
我认为底部图形中的波形比顶部图形更容易检测,因为它非常平滑,2波(首先是负的,然后是正的)与“高度”大致相同。
我将原始传感器值存储在环形缓冲区中并对它们进行平均。因此,底部图表获得当前平均值与之前平均值之间的差异。
编辑:如果问题不明确:我需要一种可以可靠地检测这种波形的算法。此外,它不应该太耗费资源,因此它可以在嵌入式系统上运行,例如Arduino Uno。