让我们假设有一个 LED。它以 0.5 秒的周期闪烁。所以在第二个 0 => 0.5 它打开,从第二个 0.5 => 1 它关闭,从第二个 1 => 1.5 它再次打开。
假设我想从外部相机(比如 iPhone 相机)读取输入。我所做的是: 1. 获取输入流,从中制作图像,扫描图像是否存在一定数量的白色像素,如果存在,则 LED 亮起,我将“1”写入我的文件。如果它不在那里,我写“0”。我每秒读取两次输入流。所以一般来说,如果一切顺利并且我的处理不会在某个地方滞后,我会得到很好的结果。但想象一下,如果:
0 => 0.5 LED 亮 0.49 => 我的相机将信息读取为“1”
0.5 => 1.0 LED 熄灭 0.99 => 我的相机将信息读取为“0”
1.0 => 1.5 LED 亮起 1.51 => 我的相机滞后并将其读取为“0”
所以我们这里有数据损坏。问题是,我如何同步读取,以便它最好进入此窗口的中间,以获得更大的误差范围。还想象一下,如果我尝试每秒执行 10 次。窗口变得更小了。
我可以阅读有关该主题的哪些内容?我该怎么做才能使它更可靠?
一种可能的解决方案似乎是每秒读取 4 次输入,并使用基于 2 个输入组的数据。