我在家尝试制作人工阳光:基于 LED 阵列的 DIY 项目
我在家尝试制作人工阳光
2025 年 3 月 27 日
前段时间,我看到了 DIY Perks 的这个视频,他们用一个 500W 的 LED 和一个巨大的(1.2 米)抛物面反射器在家制作人工阳光。我一直对这个项目很着迷,也想拥有一个。
在过去一年左右的时间里,我终于抽出时间来做类似的项目,但我有了一个不同的设计思路。抛物面反射器的问题是它占用大量的空间。我是否可以做类似的事情,但采用不那么笨重的设计呢?这是我第一次尝试这个项目的故事——暂且称之为 V1 版本。也许将来会有 V2 版本。请享受阅读!
我的想法——我相信其他人也有过——是使用一个排列成网格的透镜阵列。然后,不用单个光源,而是使用多个 LED 的网格阵列,每个透镜对应一个 LED。在我看来,这将有两个主要的优点:
- 不那么笨重。设备的尺寸将由单个透镜元件的焦距决定,而且由于每个透镜元件都很小,焦距也可以很小,同时保持一个不错的 f 值。
- 更容易进行热管理。多个光源可以是常规的低功率 LED,不需要特殊的冷却。只是数量会很多,分散在整个设备表面。
在这个项目的过程中,我还打算自学一些制造和 3D 设计的知识,因为我没有任何这方面的经验。我的背景是软件,正如你将看到的,我采取了一种非常偏向软件的方法。这对我来说是一个漫长的学习过程,但最终我使用了:
- 主要使用 build123d 进行 CAD 建模,并使用一些 FreeCAD 进行最终的组装检查以及一些试验——包括使用很酷的 OpticsWorkbench。
- 使用 KiCad 进行 PCB 设计。
- 自定义 Python 代码来模拟光线并优化光学系统。(这段自定义代码最终演变成一个完整的基于优化的光学设计的开源项目)
- 使用 JLCPCB 打印和组装 PCB,并使用他们的 CNC 服务制造铝和塑料部件。
TL;DR:我成功了! 这是今天晚上放在我桌子上完成的设备:
这是白天拍摄的 (效果没那么令人印象深刻!)
请注意,很难拍出好的照片,而且我没有最好的摄影设备。这里还有一个视频:(在晚上)
Your browser does not support the video tag.
很酷的是,你可以看到镜头光晕效应,其形状为透镜网格阵列。
技术规格
机械方面:
- 透镜正方形边长: 30mm
- 有效焦距: 55mm
- 阵列尺寸: 6x6 = 36 个 LED
- 总尺寸: 180x180mm
零件:
- 透镜: 1 个双凸透镜阵列,1 个平凸透镜阵列 - 定制,由 PMMA 亚克力制成,JLCCNC 进行 CNC 加工,并进行蒸汽抛光处理
- LED: LUXEON 2835 3V -- 型号: 2835HE。CRI: 95+,色温: 4000K,65mA。
- PCB: 定制设计
- 安装硬件: 定制设计 - 铝 60601 用于 CNC 部件,哑光黑色树脂用于 3D 打印部件
- 瑞利散射器: 防水打印喷墨膜
总体设计和尺寸
要创造人工阳光,你需要四个要素:
- 平行的光线。太阳距离我们太远,以至于从太阳表面一点发出的光线基本上是平行的。这并不是说所有来自太阳的光线都是平行的,因为它仍然具有 0.5 度的视张角。但是它们需要非常直。来自像 LED 这样的人造光源的任何光线都会朝各个方向传播,因此需要一些光学器件。
- 高色彩质量。在数据表中要寻找的一个好的指标是 显色指数 (CRI)。建议使用 95+ 以获得良好的效果。我相信你可以深入研究更多的色彩科学,但对于现成的部件来说,CRI 是一个很好的起点。
- 瑞利散射,或对其的模仿。
- 大量的功率。
光强度是最重要的尺寸约束,所以我们先来看一下它。现在,太阳非常明亮。非常非常明亮:大约 100,000 勒克斯。用 LED 实现这一点绝非不可能,但这是一个挑战。对于第一个版本,我认为 10,000 勒克斯的目标就足够了,因为对于第一个原型来说,它可以大大降低功耗,而且亮度感知是对数的。因此,十分之一的强度实际上在感知上几乎与全亮度相同。(最终,我估计我的设计实际上只实现了 1000 到 10000 勒克斯之间的效果)。
这个项目的总体网格设计实际上有两个变量:
- 单个 LED 的光输出,以流明为单位
- 单个透镜的表面积,以 mm² 为单位
经过一些研究,我认为 30 到 130 流明是高 CRI 表面贴装 LED 的典型值。因此,假设我们正在使用这些,那么要达到太阳的亮度,所需的透镜尺寸是多少?
我们必须假设一些不完美的光线准直效率。这永远不会是 100%,事实上,如果焦距很高,效率可能会很低,因为很多光线会撞击侧壁,而不是到达透镜。透镜本身也会吸收一些光线。因此,对于整体光学效率进行 0.5 的粗略估计,并采用 30、80 和 130 这三个流明值,我们得到这张图:
考虑到这一点,我选择了 30mm 作为我的透镜正方形边长。据推测,这应该足够小以实现某种效果,但又不会太小而使透镜难以制造。
透镜
焦距以及透镜的总体形状是下一个设计考虑因素。目标是获得完全平行的光线。理论上,对于理想的点光源和理想的透镜,这很容易。将光源放在透镜的焦距处,你就完成了。在实践中,很多事情使得用透镜实现这一点更加困难。(这就是抛物面反射器设计优于透镜的地方)。
- LED 不是点光源
- 透镜不会有完美的光学性能(即像差)
- 设备的机械现实意味着定位和方向不会是完美的
- LED 的辐射模式不是各向同性的,这意味着强度在透镜中心会更大
这是我的 LED 数据表中的辐射模式特性图:
我编写了一些自定义 Python 代码来模拟我脑海中的光学系统,并使用数值优化找到最佳的透镜形状。(这段代码最终演变成一个开源项目:torchlensmaker)。经过大量的试验,我确定了 2 个透镜的设计:
- 透镜 1:双凸抛物面透镜
- 透镜 2:平凸抛物面透镜
这个双透镜系统的有效焦距约为 55mm。焦距是一个关键的设计参数,在这里我觉得需要更多的试验。这是一个很大的权衡考虑因素,并且对系统设计有很大的影响。它影响:
- 透镜表面的曲率,这是一个关键的制造点(你希望最小化曲率以进行制造,这意味着最大化焦距)
- 由于 LED 辐射模式而导致的光学系统效率(在这里你希望最小化焦距,以收集更多的发射光)
- 设备厚度(在这里我想要一个不太厚的设备,因此也最小化焦距)
我使用双透镜系统主要是为了减小透镜阵列的表面曲率。这大大降低了制造成本。高曲率透镜通常更昂贵,并且这种网格阵列设计意味着高曲率透镜会在透镜之间产生某种“山谷”。因为我的目标是 CNC 制造,所以要尽量减少这种情况,以获得一种甚至可以加工的设计。
这是我最终确定设计并订购透镜时的光学模拟。(从那时起,我的模拟代码得到了改进,并且我今天可以使用最新版本的 torchlensmaker 进行更好的建模):
使用一些自定义的 build123d 代码,我可以通过将透镜堆叠成网格模式并添加边缘进行安装来制作两个透镜的 3D 模型:
Your browser does not support iframes.
Your browser does not support iframes.
使用 build123d 进行 3D 建模的真正酷之处在于,我可以只更改一个 Python 变量来更改阵列的大小、透镜的厚度或任何其他内容。由于它是常规的 Python 代码,因此所有内容都是开箱即用的参数化!这使得探索设计空间非常高效。我从未以任何其他方式进行过 3D 建模,但我无法想象如果我再次进行 3D 建模时,没有编程的力量!
我让 JLC 使用蒸汽抛光处理的 PMMA 亚克力制造透镜。透镜的总成本约为 55 欧元,这真的还不错!
其中一个主要的透镜阵列,由 JLCCNC 制造:
LED
我真的很想使用 YUJILEDS 的 3030 G04,但它仅以 5000 个为单位的卷轴出售,每个卷轴的价格为 1000 美元……也许对于 V2 版本,我会升级到这些。对于 V1 版本,我选择了 LUXEON 2835 3V。它们比 YUJILED 的亮度低大约 3 倍,但它们具有良好的显色性和我正在寻找的 SMD 封装。重要的是,JLC 全球采购的最小订购量只有 50 个。
在 V1 版本设计中,网格为 6x6,这意味着总共有 36 个 LED。
PCB
我使用 KiCAD 设计了一个定制的 PCB。每个 PCB 包含 6 个 LED,它们排列成一个 12V LED 灯条的 2 个并联段。这允许使用标准的墙插 12V 电源。
PCB 的机械作用在这个设计中非常重要。它不仅将电力分配给 LED 并调节电流,还将 LED 精确定位在透镜的焦点上。为此,导出 PCB 3D 模型并将其导入 FreeCAD 非常有用,可以检查所有部件是否配合在一起:PCB 在铝支撑底板中,光罩上的孔等。我的 Python 代码导出了精确的 LED 坐标,我可以将其输入到 KiCad 的布局编辑器中。
我让 JLCPCB 打印 PCB 并组装组件。在你的电脑上设计一个电子板,并在几周后收到完全组装好的邮件——无需焊接! (无论如何,对于这个步骤)。
机械安装部件
为了将所有部件组装在一起,我设计了 3 个部件:
- 一个底板,用于固定 PCB 和侧壁。PCB 安装在底板下方,光线穿过钻入底板的孔。还有一些部分孔,用于容纳安装在 PCB 顶部的 SMD 电阻器的厚度,最后每个 PCB 有两个安装孔。这就是它有这么多孔的原因 :)
Your browser does not support iframes.
- 侧壁,使用凹槽固定透镜,并将透镜插入其中,以及一个较大的凹槽以固定在底板中。底板侧面的孔经过螺纹处理,以支撑 M2 螺钉,从而固定壁的底部。同样,JLCCNC 以优惠的价格完成了孔的钻孔和螺纹处理。
Your browser does not support iframes.
- 光罩,一个带有矩形孔的矩形块。它位于 PCB 的顶部,将来自每个 LED 的光线塑造成锥形(或实际上是一个四面金字塔)。这是为了确保来自给定 LED 的光线仅到达透镜阵列上与其匹配的透镜,而不是其他透镜。杂散光是不可避免的,但至少这可以防止直接泄漏。
Your browser does not support iframes.
光罩是用黑色树脂 3D 打印的,壁和底板是用铝 60601 CNC 切割的。
我不是机械工程师,所以这个过程是……反复试验。但结果仍然有效,所以我对此感到非常满意。对于可能的 V2 版本,我会在机械设计上进行很多更改。但是,除了我可以用钻头手动修复的一个设计缺陷外(更多内容见下文),一切都在第一次尝试中很好地配合在一起。
瑞利散射
最后一个要素是 瑞利散射。这是使天空看起来是蓝色的物理现象,并且对于获得令人信服的效果非常重要。在启发这个项目的 DIY Perks 视频中,他们使用了一种自制的液体溶液,其中悬浮着大小正确的可进行瑞利散射的颗粒。不是很实用,我真的很想找到另一种解决方案。值得庆幸的是,在原始视频发布后的一段时间里,diyperks 论坛上的某人发现喷墨打印膜可以达到非常相似的效果。我只需要去 当地的一家办公用品商店!惊人的发现。
我在初始设计阶段并没有预料到这一步,因此该膜只是被切割成正确的尺寸并用黑色电工胶带固定。
组装
经过几周的设计工作,以及等待零件到达的另外几周后,终于到了组装的时候了!
除了使用 build123d 制作的各个 3D 模型外,我还有一个最终的组装 FreeCAD 模型,其中所有部件都配合在一起,包括透镜:
请注意我最初计划使用的绿色支架。当实际将壁组装到底板时,形成的盒子的坚固性非常高,我决定完全放弃支架。这就是为什么侧壁上仍然有一些额外的未使用孔的原因。
这是所有零件刚开箱后的样子(不包括喷墨膜、焊锡丝、螺钉、电源、接线、电工胶带):
唯一真正的设计缺陷是固定透镜的凹槽宽度不足。透镜的边缘厚度为 1.2 毫米,我原本打算将其安装在 1.22 毫米的凹槽中。事实证明这还不够,可能是由于制造公差以及铝部件阳极氧化黑色哑光表面处理增加的额外厚度造成的。透镜不适合放入凹槽!
我家里没有非常先进的工具,因此我对这个问题的最佳解决方案是使用电动钻手动加宽现有凹槽。我购买了一个 1.5 毫米的金属钻头,并通过每个凹槽进行 4 到 5 次切割,从而获得了不错的效果。这总共花费了大约 2-3 小时,因为我必须非常缓慢地移动钻头,并且每次只能通过缓慢地移动钻头来加工每个凹槽深度的大约 1/4,并且总共有 8 个凹槽。
以下是一些更多组装图片。
背面,在将电线焊接到 PCB 电源引脚和 12V 电源插座后。PCB 和光罩部件共享一个公共安装孔,因此每个 PCB-光罩对仅使用两个螺钉。
底板 + PCB + 光罩组件的正面,但没有透镜,已通电。不要直视它 :)
有趣的是,在上面的图片中,你可以从 LED 看到的所有光实际上都是“杂散光”,而不是有用的光。上面可见的光中没有哪部分是打算进入透镜并产生阳光效果的光。
使用壁的部分组装以及 2 个透镜中的 1 个进行测试:
使用鳄梨作为主题测试喷墨膜层。我最终决定在最终版本中使用两层喷墨膜:
成本
总的来说,我在这个项目上花费了大约 1000 欧元。但这包括我缺少的工具的成本,我制造但丢弃的原型部件,LED 和 PCB 等部件的批量订单,这些部件的最小订购量高于我 1 个单位所需,以及各种用品,如螺钉等。仅零件的实际原始成本(不包括运费)来构建最终单位很难估计。但我认为大约 300 欧元。最昂贵的部件是 CNC 部件(PMMA 透镜以及铝底板和壁),约占总价的 2/3。其余(PCB、组装服务、LED、3D 打印塑料部件)非常便宜。
结论
在我撰写本文时,最后一个部件正放在我的桌子上,发出令人愉悦的柔和白光。这绝对很棒,我为这个结果感到非常自豪 - 尤其是因为这是我做过的最大的构建项目。
感谢这个项目,我学到了很多关于 PCB 设计、电子和 CNC 制造以及光学方面的知识。我甚至深入研究了学习光学的辅助任务,以至于我开始了一个开源 Python 项目,用于建模几何光学。
那么,它作为人工阳光是否令人信服?
我对这个问题的诚实回答是:部分令人信服。光源出现在无限远处的几何效果起作用。当我从一侧到另一侧平移和倾斜我的头时,光线来自物体后面很远处的错觉 100% 是成功的。最重要的是,如果你在将你的头移入光束时观察它,我的眼睛会因突然的强度跳跃而感到惊讶 - 几乎受伤。这表明准直良好,你可以在这篇文章开头的视频中看到它。
然而,很明显,它太弱了。不要误会我的意思,它仍然很亮。我不戴太阳镜就无法直接看它,而且老实说,很难拍出它的好照片,因为它发出的光与外部之间的对比度非常高。
另一个缺点是,我绝对可以分辨出透镜的网格,因为强度模式清楚地揭示了网格形状。这是一个很小的缺点,并不是真的令人不愉快,我相信可以改进它。
如果我要处理 V2 版本,我将专注于:
- 更多功率。我的感觉是光输出需要强 3 到 5 倍才能更接近令人信服的效果,并且旨在比这个原型亮 10 倍并不疯狂。
- 更多表面积。这个原型是 18 厘米 x 18 厘米。因此,只有当你能够坐在产生的直光束中时,你才能真正获得这种效果,这对于类似于任何种类的“假窗户”来说太窄了。我认为未来的版本需要宽 2 到 4 倍。
- 更好的光学设计。我仍然认为基于折射的设计是可能的,但这需要非常精确的光学设计和机械公差。我的感觉是,基于折射的设计,尤其是作为网格,对零件的定位和方向非常敏感。我缺乏这方面的机械工程技能。
但是,我对这种基于网格的折射设计有一些非常令人鼓舞的事情,我真的很喜欢:
- 它具有可扩展性。如果我建造了 4 个相同的物品,我可以将它们彼此堆叠起来并获得更多的表面积。“边框”将仅占总发光面积的 5%,我相信这可以降低。我也喜欢内部设计要求重复元素,因为这即使在原型级别也引入了一些规模经济。唯一不容易扩展的部分是透镜网格。也许它可以用于非常大规模的生产,或者对于中等规模,你可以想出一种方法将多个透镜网格平铺成更大的整体网格模式,从而添加一些薄边框以进行安装。
- 它很紧凑。总尺寸为 19 厘米 x 19 厘米 x 9 厘米。对于 5 厘米的焦距和 18 厘米 x 18 厘米的有效照明面积来说,这非常紧凑。像 DIYPerks 视频或像 CoeLux 这样的商业产品之类的反射设计无法实现这种外形尺寸。
- 通过设计可以更好地进行热管理。这并不是我针对这个设计深入研究的内容,因为它功率不足。整个设备可以使用 12V / 3A 的墙砖电源舒适地运行。但是这种设计提供了很大的扩展空间,因为没有单个光源需要冷却,而是有许多与表面积成正比的 LED。我怀疑扩展时的主要热问题是电源本身的冷却,而不是灯的冷却。
作为最后的想法,让我谈谈我为这个项目采用的以软件为主的方法。这太棒了。如果我今天要创办一家制造公司,我会做所有基于代码的事情。PCB、3D 模型、组装、测试……我希望代码无处不在。更改参数并使用单个脚本更新整个设计的能力非常好。运行一个脚本并获得所有生产数据,包括 GERBER、BOM、3D 模型、机械示意图、技术图表、自动公差和电气检查……在更改设计参数和准备好发送新订单进行制造之间绝对没有手动步骤。PCB 和 CAD 领域甚至正在发展为使用 合适的 CI/CD 工具,这真的很令人兴奋。
我不知道我是否有时间处理这个项目的 V2 版本,但无论如何这都非常有趣!现在我有一个很酷的独特的灯。感谢您的阅读!