周末项目:构建巨型LED像素显示器

我喜欢LED像素:亮度高,易于控制,价格便宜且用途广泛。我的最后一个项目是流光溢彩的电视背光。今天,我们将把它们变成可以挂在办公室墙上的大像素显示器;

这是一个相对简单的项目,需要花费一些时间来构建,但是在连接LED灯串时可能有点麻烦。基本思想是在相框背面铺设蛇形LED像素条。

From there, it’s mostly a question of which software to use, depending on your needs – I’ll get you started with some demo code and pointers, then revisit the software angle in a later article as we figure out how to pull information like notifications and stock prices onto the display.

步骤0:您将需要

  • 10米长的LED像素条带(分成两个5米长的卷轴出售)–我使用WS2812B是因为它们很便宜。如果您想要更高的分辨率,也可以购买每米60个LED的双密度灯条。
  • 5V 10A电源。我使用的模型将240V AC输入到一些螺钉端子。如果您需要完全的安全,请购买一个封闭的模型。
  • Arduino UNO。
  • 许多条粗线;我使用的是旧计算机PSU上的残渣。
  • 宜家RIBBA宜家深相框,长50厘米x 50厘米。
  • 玻璃磨砂喷雾和白色油漆。
  • 总费用应低于$ 100。在工具方面,您还需要:

  • 烙铁和焊料
  • 热胶枪
  • 刀或剪刀
  • 电线剥离器
  • 请务必先阅读我们的《初学者电子技能指南》!

    步骤1:算术

    如果您购买了相同的50cm x与我一样的50厘米宜家相框和LED灯串,您应该能够安装15根15盏LED灯。但是,没有什么可以阻止您使用其他尺寸的框架。每个LED的间距大约为1英寸,所以我的目标是在显示器上使用大约平方英寸的像素-是的,即 1 DPI 。不完全是Retina图形。

    进行数学计算,并在框架背衬上绘制一些基准线。进行两次测量,然后仔细检查:我必须在线之间留一个小的差异,因为到了粘住所有东西的时候,我意识到我只能安装14串15个LED。无论如何,该软件很容易针对行数和行数不同的不同像素数进行调整。继续,将您的LED切成适当的长度。不幸的是,我发现每条线的15个像素恰好与我的一个线轴上的焊接点重合,因此我不得不对其进行脱焊。从正面看,至少要对它们进行预焊接。

    步骤2:为玻璃上蒙上一层雾气

    为帮助散射来自LED的光,我决定使用一些基本的两侧都有玻璃磨砂喷雾。由于烟雾很危险,请在室外进行此操作,并尝试尽可能均匀地喷洒。结霜一旦干燥就很难穿了,但是您需要首先确保涂层均匀,并且不惜一切代价避免刮擦。

    在外面时,也将相框背面喷涂成白色–这会将LED的光反射回来。我们不会使用白色硬纸板照片环绕。剪掉电源线和信号线的一个角。

    步骤3:将LED连接到板上

    使用强力粘合剂或强力胶。我试着用双面胶带,却发现它在几周后滑落了。当两面都无孔时,热胶枪会更糟。如果您购买的线束封装在橡胶盒中,则确切的定位并不重要–它们可以在线束中自由移动以重新定位。

    请记住,信号会从头到尾缠绕,并且每个链都有特定的方向。放置一个,箭头指向右,然后下一个线束向左移动,然后重复。

    步骤4:焊接

    连接每根绞线将需要3根长度稍有不同的电线。在每种情况下,您都将用最短的电线连接内部的两个焊盘;然后是中间两个;那么外面的两个最长。内焊盘将在+ 5V线和GND线之间切换,具体取决于您当前正在处理的框架的哪一侧。

    确保焊盘和导线均已预焊接。这是项目中最耗时的部分,但至关重要的是您不要着急并仔细检查是否连接了正确的线路!

    步骤5:固定所有钢绞线

    最后,如果您使用了连接到绞线上的电源线和输入线,则可能会发现不断在板上移动可将第一根绞线释放出来。我决定钻两个小孔,并穿过白色的扎带固定该零件。如果您在购买强力胶时遇到问题,则可能需要考虑使用这种方法来固定两端的所有绞线。

    步骤6接线测试

    接线简单:插针Arduino上的6用作控制LED的信号引脚;而进入LED的5V电源应直接来自外部电源。在绞线,Arduino和电源之间连接一条公共接地线。 请勿尝试直接从Arduino上为绞线供电,或在连接USB时不要将5V电源直接连接至Arduino (因为它将上传测试代码)。

    下载Adafruit NeoPixel库并将其添加到Arduino库文件夹,然后启动Arduino。使用库中包含的示例链测试代码执行初始链测试。调整下一行第一个参数中的LED数量(将60更改为许多):

    Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, PIN, NEO_GRB + NEO_KHZ800);

    如果动画在特定行停止,请立即将其拔出并检查接线。您要么把链子弄错了方向;要么电线交叉;

    第7步:放入框架

    由于我使用的凹口比框架设计的允许深,首先使用热胶枪将玻璃密封到框架上。然后,在将LED放回原位之前,我在框架的外边缘周围添加了一些橡胶短包装,以形成所需的深度。在对LED进行最终测试之后,我再次使用热胶枪将所有东西密封到位。

    您可能还想在框架的拐角处切一个小凹口,以容纳粗电缆。

    就构建实际的显示而言,就是这样,尽管您最终可能希望将电源和Arduino隐藏在项目框中。其余的取决于软件。

    Glediator

    更新:不幸的是,托管Glediator软件的站点似乎已经离线了一段时间。如果您知道在哪里可以找到固件和PC软件的副本,请在评论中告知我们,以便我们更新本指南。

    对于聚会或在专业俱乐部环境中使用,SolderLab.de的Glediator是LED矩阵控制之王,能够以每秒24帧的速度驱动多达512个WS2812 / NeoPixels。它可以让您创建LED动画的实时或预录制的混合,甚至可以添加GIF(是的,我在看着您Nyan Cat);就像DJ软件一样,它包含一个渐变器,可以在动画之间平稳地混合。

    要开始使用Glediator,请将此固件加载到Arduino UNO上,并确保信号电缆位于引脚6上。不要

    在Glediator运行期间,打开选项并更改矩阵大小输出。如果您的布局不同,请调整像素顺序,但是很遗憾,此步骤的文档很少,因此主要是反复试验。如果您的输出与屏幕上显示的不匹配,请尝试其他设置。 HS_BL 为我工作,我怀疑这是“ h 原始 s n",从 b 底部 l开始 eft"。

    Glediator是专业级应用程序,因此尽管将来可能会涉及到它,但现在我将让您探索界面并玩转。尝试在左侧和右侧加载不同的动画,然后在两者之间滑动推子。或在最右侧找到一个现成的序列播放列表,如上面的演示视频所示。

    Adafruit NeoMatrix和GFX库

    Adafruit制作了令人惊叹的用于处理此类像素矩阵的有用库。第一个称为Adafruit GFX库,最初是为与TFT和LCD显示器一起使用而设计的。 NeoMatrix库是对此的一种修改,使所有功能均可用于NeoPixel LED矩阵。定义好矩阵后,将打开大量易于使用的功能,例如输出文本或显示位图精灵图形。

    如果您完全按照我的方式制作了项目,则可以会发现此示例代码很有帮助。该代码最重要的部分是:

    #define XSIZE 15#define YSIZE 14#define PIN 6Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(XSIZE, YSIZE, PIN,NEO_MATRIX_BOTTOM + NEO_MATRIX_LEFT +NEO_MATRIX_ROWS + NEO_MATRIX_ZIGZAG,NEO_GRB + NEO_KHZ800);

    前几行应该是不言自明的。底部的三个告诉图形库有关布局的信息–在这种情况下,我的第一个像素位于左下方,并排列在中,其后的行之字形模式。如果您以其他方式定向它,请查看库文档。

    我已经在代码中定义了一些精灵(尽管只使用了笑脸)。若要创建自己的Sprite,请在GFX库下载中找到一个 Img2Code Java应用程序。

    在以后的文章中,我们将介绍如何使用该库显示有用的信息,例如股票报价或Twitter流,但现在您应该可以使用我的示例代码并加载自己的图像。

    这一次仅是本教程的内容。您已经制作了一个巨大的LED显示屏,现在这只是弄清楚该如何处理的一种情况。考虑用剩余的LED制作一个迷你的闪电云灯。

    如果您准备点亮PC,可以通过以下方法使它通过可编程的LED发光。

    标签: LED灯条