1

让我们假设有一个 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 个输入组的数据。

4

1 回答 1

1

听起来您可能想了解编码时间码的方法。 http://en.wikipedia.org/wiki/Timecode

它们中的每一个都以选定的帧速率(例如 30fps)传输 80 位数据。我不确定在你的情况下你会怎么做。

显然,窗口更小更准确。使用 LTC,由于音频通常以 44kHz 左右的频率进行采样,因此几乎可以准确地得到它。

如果 iPhone 相机每秒只能拍摄 2 张​​照片,我想知道您是否可以尝试以不同的时间间隔(例如,甚至 0.7 秒)拍摄照片,并以某种方式计算是否应该打开或关闭(作为LED 仍以 0.5s 交替)。在几秒钟内,它可能与每 0.1 秒采样一次一样吗?(我只是从天空中提取数字,但我想你可以计算出类似的东西)

另一个想法:您可以使用相机中的视频而不是一系列照片吗?你也许可以这样获得30fps?(我不确定——还没有研究过)iOS 6.0 中也可能对此进行了改进(如果您是开发人员,则值得检查)。

于 2012-07-26T09:54:04.903 回答