Blogs

用光绘画来测量时间

杰森萨赫斯2020年12月26日

最近我在家里工作时面临困境。我需要验证一阶的实施 Sigma-Delta调制 用于调整LED亮度。 (我更详细地描述了这一点 调制软件工程师的替代品但是,我没有,没有示波器。

然后我记得某些东西,关于一个叫做的技术 “轻绘画”:基本上是在快门打开时移动光源的长曝光照片。我先在一篇关于一些不寻常的照片的杂志文章中看到这一点,包括 Eric Staller.1979年工作, hydascope. 。 (我希望我能记得这本杂志!这篇文章可能来自Games杂志或国家地理,大约1983-1986。)

hydascope. ,©1979 Eric Staller。经许可转载。

本文以PDF格式提供,便于打印

Staller通过在晚上走过一条通道来创造它,用两串在圆形和钻石形状上安装了一支圣诞灯灯泡,在他身后留下了发光的小径。因此,艺术家也在绘画中,但是如此黯淡,涂抹他是有效的看不见的。

在技​​术上, 全部 照片是轻型绘画;光落在感光板或薄膜或传感器上,导致化学或电气变化,因为光能在图像的不同部分上产生。

它已经过早使用,作为定量测量方法:看看例如Eadweard Muybridge's 1878系列十二颗仔细定时的一张马托管照片 或者 1880年代开始Étienne-jules Marey和Georges Demeny的生理学研究.

击剑,运动研究,1906年Georges Demeny

在阳光下没有新的东西。

阴极射线管 20世纪20年代在20世纪30年代起飞并在2003 - 2005年左右的液晶平板显示器上超越显示市场之前,在20世纪30年代占据展示市场的灯光。 CRT背后的原理是将一束电子束朝向荧光粉覆盖的屏幕射击,用电磁铁转向光束,以便在CRT屏幕上扫描。当然,他们被电视和计算机显示器 - 和示波器(同样在20世纪30年代),其中输入电压信号控制了Electon梁的水平和垂直位置。使用线性扫描水平输入,以及垂直输入的兴趣信号,您可以直接可视化波形。

正如我所说,我家里没有示波器。但是我 有一个数码相机,我认为我可以拍一张我的Sigma-Delta调制的LED的照片,使相机足够平稳地移动,使LED点扫描到图像上。

结果如下所示。在按快门释放的同时同时同步移动相机是非常困难的,但如果我已经足够尝试过,我发现我可以得到至少一个或两个好照片。

以下是P = 2048,Q = 4096,曝光为1/10秒,在500Hz时蜱率(AKA“芯片速率”),所以名义上在照片中应该有50位样本。如果您在绿色闪烁的LED上仔细观察,您将注意到24个光点,其中23个间隙,显示在47到49位样本之间的某处。 (我们不知道照片是否与绿色LED开启和结束,或关闭。)不错,至少它是一致的。

由于我有一个带有机械快门的相机,并且电路板具有石英晶晶的电路板,我倾向于相信LED时序更精确,并且曝光更可能大约96毫秒,而不是标称100毫秒。

红色LED是一种不在我的控制下的通信,但最有可能在500Hz左右闪烁。

绿色LED更加明亮;事实上,我认为它导致我相机的图像响应中的非线性。绿色“Blobs”不是焦点的伪影。

无论如何,接下来是p = 2176,q = 4096(p / q = 17/32),曝光为1/10秒。

这里,绿色LED显示出以下比特序列(1 = ON,0 = OFF):

<code>1010101101010101010101101010101010101011010101
</code>

这样对吗?

observed_sequence = '10101011010101010101010101010101010101011010101'
def sigmadelta(p,q,accum_init=0):
    accum = accum_init
    while True:
        accum += p
        if accum >= q:
            out = 1
            accum -= q
        else:
            out = 0
        yield out
def sdsequence(p,q,accum_init,n=46,off='0',on='1'):
    sequence = ''
    for k,out in enumerate(sigmadelta(p,q,accum_init)):
        if k >= n:
            break
        sequence += '1' if out == 1 else '0'
    return sequence
print repr(observed_sequence)
sdsequence(2176,4096,3270)

'10101011010101010101010101010101010101011010101'

'10101011010101010101010101010101010101011010101'

这是!它首先让我感到惊讶,看看双1脉冲之间的单个1个脉冲的数量不同,交替在6到7个单1脉冲之间,但这只是数学方式的方式。

这是第三张使用p = 1920,q = 4096,15秒曝光:

这里观察到的位序列是

<code>1010101001010101010101010010101010101010010101
</code>
observed_sequence = '1010101010010101010101010010101010101010010101010101010010101'
print repr(observed_sequence)
sdsequence(1920,4096,3100)

'1010101010010101010101010010101010101010010101010101010010101'

'1010101010010101010101010010101010101010010101010101010010101'

适合我!我只是想确保芯片速率看起来正确,整体序列正在做我的预期。

我宁愿使用一个“真正的”一块测试设备,但在捏,相机很好。起初我在一个黑暗的房间里拍摄了照片,而且没有任何打开,但董事会上的LED,这是一个痛苦......然后我意识到,哦,我只需要保持F-stop足够高,在房间里的环境光线很高很低,并且唯一会在图像中出现的是LED的光线。

度过一个快乐的假期,新年快乐!


©2020 Jason M. Sachs,保留所有权利。



要发布回复评论,请单击连接到每个注释的“回复”按钮。发布新的评论(不是回复评论),请在评论的顶部查看“写评论”选项卡。

注册将允许您参加所有相关网站的论坛,并为您提供所有PDF下载。

注册

我同意 使用条款隐私政策.

尝试我们偶尔但流行的时事通讯。非常容易取消订阅。
或登录