第1步:材料
您将在下面找到所需材料的确切数量。材料的总成本取决于您购买的地方,但led环是最昂贵的组件,可能会让您至少回到100美元。我强烈建议购买几乎所有东西的附加物 - 部件不可避免地丢失,损坏或有缺陷。
(1张)黑色纸板或泡沫芯,大约18英寸×30英寸(你可以随时修剪它)以后)。您可以使用其他材料,但要确保在电子元件上打孔时相对容易。
(156)红外发射器:940nm波长红外led。你需要156个,但要得到更多;它们很便宜。我买了这些。
(61)红外光电二极管:确保它们检测到940nm红外线。你将需要61,但得到额外的。例如,这些电阻器的电阻范围为6.8欧姆至12欧姆。确切的值取决于您购买的红外发射器的额定电压。我们将以5v输入电压为三个串联供电。您可以使用此计算器估算所需电阻的大小。
(61)10k欧姆电阻;每个红外光电二极管一个。这些用作上拉电阻。
(61)12像素ws2812环 - 我从aliexpress(例如,这些)买了我的,因为它们便宜,但它们需要一段时间才能收到邮件。
(50)10cm三线女 - 女跳线 - 就像这样。
像这样的dupont连接器套件。我还建议使用压接工具。
(4)模拟多路复用器板 - 我买了这些?
(1)5v 20安培电源 - 我买了这个电源
(1)esp32微控制器 - esp32是一个神奇的微控制器,具有大量的内存和处理能力,你会需要这个项目。你可以在亚马逊上获得它们(例如,这里),但是如果你愿意等待它们(我买了这个),aliexpress有更多的选择以更少的钱。
你还需要多种多样的连接线和原型板用于固定组件:
22awg或24awg裸铜线或母线电线。获得合适尺寸的线轴。
22awg或24awg连接线。我喜欢有机硅涂层的东西,因为它非常柔软和耐热。获得几个不同颜色的线轴。
18awg或20awg黑色和红色连接线用于电源
用于传感器的28awg连接线 - 你需要很多,因为每个61都有一根单独的电线传感器。
这样的原型开发板。
步骤2:构建单个“单元”
在我们构建全表面之前,我将向您展示如何制作单个“单元”:一组红外发射器,一个红外传感器和一个rgb led环。在某种意义上,表格设计很简单:它只是这些单元格的一大堆。
在第一张照片中,您将看到布局图。我将我的细胞组织成互锁的六边形,在后面的步骤中,我将向您展示如何将它们放在纸板表面上。目前,我们只关注单个单元格的构建方式,因此确切的布局并不重要。
红外发射器位于每个六边形边缘的交叉点;红外传感器位于中间,由led环包围。第二张照片显示了纸板上的布局(我实际绘制了两个单元格,但我只会连接其中一个)。
步骤3:红外传感器和发射器的打孔
电子桌子的组件位于纸板的顶部表面,但布线全部都在背面。为了实现这一目标,我们以所需的方式在纸板上打孔。为了使组件合适,我建立了两个打孔“夹具”,确保孔的适当间距。
第一个夹具用于红外发射器和传感器。我将一个两针直角头部焊接到一个小型的原型板上(见图1)。孔的间距与led引线的间距完全匹配。您可以添加一些热胶并锐化点,以便更容易穿过纸板。
首先在六边形的每个角落打孔,然后打孔(见图2-4)。请注意,孔对齐水平 - 这对于背面布线非常重要。
接下来在中间打孔发射器的孔 - 注意这些孔是对齐垂直。见照片5.完成后,您应该在最后一张照片中显示图案。
步骤4:rgb led环的打孔
每个rgb led戒指背面有六个垫(见第一张照片) - 三个是输入,三个是输出,这使它们很容易连在一起。我将这些环连接到电路板上的策略是将三针直角插头焊接到每组焊盘上,然后将这些插针穿过纸板,并通过三线连接将它们连接在一起。
为了打出戒指的孔我制作了另一个夹具,这只是一个环,针脚焊接并磨尖。你可以添加一些热胶来使设置更强,所以它不会在应变下破裂。我还粘上两根细线,以提供一个“十字线”来对齐戒指。见照片2-4。
将十字准线与环的中心对齐,然后推动销钉以形成六孔图案(照片5)。最终结果应该像照片6.请注意led环的引脚如何排列到中心的一侧 - 这对背面的布线至关重要。
步骤5 :插入红外发射器和传感器
获取一堆红外发射器(清晰的红外led)每个细胞有一个红外传感器(黑暗传感器)。为了简化布线并防止自己出错,我的所有红外led的极性方向都相同。对于发射器,所有正极引线(较长的引线)位于左侧,所有负引线(较短的引线)位于右侧。对于传感器,正极引线位于底部,负极引线位于顶部。请参阅第一张照片。
将所有led推入孔中。他们应该贴身地适应。您可能需要稍微摆动它们以找到穿过纸板背面的孔。完成后应该看起来像照片2。
将电路板翻转过来 - 您应该看到引线穿过,所有正向引线(较长的引线)的方向相同。
步骤6:将线连接在一起红外发射器
上面的第一张照片显示了红外发射器和传感器的整体电路设计。我将首先向您展示如何连接其中一个单元格,然后展示如何为整个表格进行扩展。主要思想是在工作台底部安装一系列正负“导轨”,以便将它们连接在一起。
典型的红外发射器额定电压为1.2v至1.5v。由于我们将以5v电源为我们的电源供电,我们需要考虑这种差异。最简单的策略是一次串联三个,然后添加一个小电流限制电阻来保护它们。第二张照片显示了红外发射器电路。
在纸板背面,您可以绘制线条以显示电源轨的位置。它们成对排列 - 一对位于红外传感器的左侧,一对位于传感器的右侧(见图3 - 左侧的黑线已经存在)。
接下来,添加电源轨。我使用了22 awg裸铜线段。按照红线和黑线将它们按行排列。
如图4所示,开始向下折叠引线:折叠第一个正极引线,使其穿过正电源线;然后将负极引线朝向其下方led的正极引线折叠。继续折叠,匹配正负极形成一个串联链,最后负极引线穿过负电源轨。当你完成后,它应该看起来像照片5。
添加一个电阻(应该在6.8欧姆到12欧姆的范围内,具体取决于你的红外发射器)。确保电阻器与三个ir发射器串联。见照片6。
将所有引线拧在一起并修剪额外的如图7和图8所示。在满量程表中,下一步是焊接所有连接。
步骤7:连接红外传感器(光电二极管)
ir传感器是一种光电二极管,以一种不寻常的方式工作,称为反向偏置:正极引线(较长的引线)连接到负电源轨;负极引线连接到正电源轨。正如您所料,这会阻挡电流 - ,除非上有红外光照射在它上面,在这种情况下,它允许电流流动(与常规led相反的方向!)您可以找到更多信息,以及其他许多网站。
电路图显示在第一张照片中。需要注意两个重要的事项:首先,我们在正极上读出信号,这意味着当没有红外光照射在它上面时,引脚会读取高电平(5v)(前面没有物体)它)。我们在5v电源和信号之间添加一个10k欧姆的电阻,用作上拉电路并保护电路。当红外光照射在光电二极管上时,它会失去电阻,所有电流都直接从电源流到地,导致信号引脚读低(接近0v)。
折叠正极引线,使其穿过负电源轨。直接折叠否定线(见图2)。添加10k欧姆电阻将负极引线连接到正电源轨。留下一小段引线伸出 - 这是我们将电线连接到读取信号的地方。压接并修剪所有电线。见照片3。
步骤8:完成红外发射器和传感器单元
重复前面的步骤以完成右侧的第二系列红外发射器。密切注意led和电源轨的极性。不要忘记限流电阻!最后的电路应该如上图所示。
另一个需要注意的重要事项是:rgb led的6个引脚孔不应该挡住或穿过你现有的任何电线。
步骤9:添加rgb环
通过焊接两个直角头的三针段来准备rgb led环垫子。我的策略是在两个焊盘上添加一点焊料(参见第二张照片),然后使用这两个焊盘“胶合”这些焊盘。一旦安全,请在所有六个焊盘上找回完整的焊点。
使用镊子取下将引脚固定在一起的黑色塑料(见图5)。小心不要拔掉插针或破坏焊料!
如图6和图7所示,将6个插针穿过孔。将电路板翻过来 - 你应该看到6个插针穿过,有足够的额外领先优势。在照片8中,您将看到焊盘是如何排列的:接地引脚始终是外部引脚,电源引脚是中间,信号引脚是内部引脚。
最终,我们将所有环与三针连接器连接在一起(参见上一张照片)。我选择了颜色与引脚匹配的连接器(黑色和红色表示电源,白色表示信号)。
步骤10:向上扩展
现在你了知道如何构建单个单元,您可以继续构建一个全尺寸的单板。在某些方面,它很简单:只需重复多次细胞模式即可。我选择了一个包含61个单元格的图案,这使得它既对称又能产生很好的偶数组件。我将向您展示如何构建此配置。
步骤11:完整网格布局
第一步是在纸板的顶部布置六边形网格。有一些关于六边形网格的疯狂网页,但我想出了自己的绘图方案。首先,画一个50毫米乘30毫米的网格(第一张照片)。每隔一个交叉点(照片2)将成为单个红外传感器所在的“单元”的中心。用一系列对角线连接这些点给出了六边形的轮廓(见照片3-5)。最后一张照片显示了最终产品。你不需要勾勒出六边形,但我发现提醒我一切顺利是有帮助的。
第12步:为组件打孔
使用步骤3和4中的技术,红外发射器和传感器的打孔以及rgb led环。请记住:六边形的角是红外发射器,孔应该水平定向;六边形的中心是传感器,孔应垂直定向。 rgb led环的6孔冲头应位于传感器的左侧或右侧。见照片。
步骤13:添加所有红外发射器和传感器
开始通过推动红外发射器穿过六角形角落处的所有水平孔。您应该能够清楚地看到六边形网格形状(请参见第一张照片)。 重要:确保所有正极引线都与我们在步骤6中所做的相同。
接下来,推动所有红外传感器(光电二极管)通过,再次支付关闭注意极性,使它们都一致。结果应该看起来像照片3.此时,你会有很多尖尖的线索伸出纸板的底部,所以要小心。
步骤14:向下折叠潜在客户
小心地折叠所有的如步骤6和7所示,对于红外发射器,请记住,您正在尝试形成三个串联的led组,从正电源轨到负电源轨。此处的任何错误都会导致led阵列出现暗点或短路。
将一对led引线扭转在一起(照片4)。
步骤15:添加电源轨并连接组件
放下电源成对的导轨,如步骤6所示。在我的设计中,有12对电源导轨。确保它们越过折叠的引线 - 这将使它们更容易压接。
将电线折叠在电源导轨上并压接它们(见图2)。确保每个电路的一侧留有电阻器(见图3)。
添加电阻器(发射器的限流电阻器和传感器的上拉电阻器)。压接和修剪所有连接(照片4-6)。
重要提示:请注意,在底部我有一排红外发射器(即它们不适合三组)。为了确保它们点亮,我制作了三个水平组,需要穿过电源轨。我用kapton胶带让它们绝缘。
焊接所有接头 - 是的,这是很多焊接!您可以在照片7中看到最终产品。
步骤16:测试1:检查红外发射器组
此时,您可以在垂直组中测试ir发射器。将5v电源连接到一对铜导轨。一个问题:你看不到红外灯!但事实证明,大多数傻瓜相机都能检测出红外线并将其显示为紫色。关闭灯,将相机对准led。我试着拍些照片(见上文)。
如果任何单个led指示灯不亮,则可能表示它们有缺陷。如果单个串联电路中的一组三个led没有亮起,那么任何一个都有缺陷,或者其中一个led的方向错误(极性错误)。您可以使用万用表进行检查。根据需要拔出并更换led。
步骤17:将各个电源轨连接在一起,然后测试
我们需要一种简单的方法为所有正负电源供电。我的技术是采用一段连接线(22或24 awg)将每根电源导线焊接到导线上的不同点。
首先布置连接线并标记连接导轨的位置。请记住,所有正轨应连接到正电源线;所有的负(地)电线到另一个。使用剥线器,轻轻地雕刻出一部分绝缘材料,然后用exacto刀将其取下。见照片1至3.
在照片4和5中,你会看到所有的正轨焊接到红线上,所有的负轨焊接到黑线上。
现在测试所有发射器!将5v电源连接到红色和黑色连接线。获取你的傻瓜相机并在黑暗中检查。
步骤18:测试红外传感器
此时,您可以通过连接电源并测量二极管两端的电压来测试红外传感器。将万用表的探头连接到信号引脚(光电二极管和电阻器之间的额外引线)和负极(地线)上(见第一张照片)。接通电源时,电压读数应在3v至5v范围内。
接下来,将手挥动到传感器前面(照片2)。现在电压读数接近于零(我的万用表在照片4中显示为170毫伏)。
您可以测试每个传感器,但这项工作非常繁琐。测试几个,然后我们将在添加多路复用器和微控制器时对它们进行全部测试。
步骤19:多路复用ir输入
该项目的挑战之一是投入数量。有61个红外传感器 - 太多不能将每个传感器单独连接到微控制器上的引脚。相反,我们使用模拟多路复用器。在这种情况下,我选择了一个基于cd74hc4067芯片,可以处理16个输入,因此我们需要其中四个来处理61个输入。第一张照片显示其中一块电路板。
每个多路复用器有四个数字“选择器”输入和一个信号输出。每个数字引脚可以设置为高电平或低电平,允许16种组合。设置特定模式选择通道到信号输出的输入 - 具体来说,是我们想要的输入的二进制编码。例如,要读取输入数字13,我们将选择器引脚设置为高,高,低,高 - 1101,二进制编码为13.读取信号输出将给出与模拟输入数字13相同的读数。/p》
有多种方法可以组合多路复用器来处理更多输入。我的策略很简单:将所有数字选择器线连接在一起(因此所有四个多路复用器都获得相同的输入选择器),然后将每个信号输出连接到一个单独的微控制器引脚。要读取任意输入(在61中),我们取输入数字的低4位并将其写入选择器引脚;然后我们使用接下来的两位来决定要读取哪个信号输入。我后面提供的代码中包含了所有这些逻辑。
步骤20:构建多路复用器单元
四多路复用器板组装在一个大尺寸的原型板上。照片1到3显示设置。每块板的16个输入位于左侧。我一直向下添加直角公母接头,以便插入和拔出ir输入线。你可以把它们焊接进来,但我想在必要的时候让它可以修复。接下来,使用常规接头将多路复用器板焊接到大板上(照片5)。为每块电路板添加电源和接地线(照片6)。
接下来,将所有输入选择器连接在一起。在我的电路板上,引脚标记为s0,s1,s2和s3。使用跨接线将所有s0引脚连接在一起;然后为s1,s2和s3做同样的事情。最后,添加四根较长的导线,用于将输入连接到微控制器上的引脚(照片7)。
每块电路板上都有一个标有“信号”的输出。为每一个添加一根导线(照片8中的蓝色导线)。
最后,使用dupont四线外壳连接两组四根导线的另一端(照片9)。我真的很乐意使用特殊的压接工具。
步骤21:连接所有红外传感器
此步骤这是非常繁琐的:我们需要为每个红外传感器制作一根导线,它从传感器本身(我们留下的小导线)到多路复用器。我们还需要记住从ir传感器的位置到多路复用器系统中的索引的映射。
我的方案是将它们分组成行;为整行制作一组电线,并将所有电线连接到一个dupont外壳。第一张照片中显示了一个这样的“单位”。连接到ir传感器的一端是一个母连接器;另一端是一组公连接器(照片2)。
将多路复用器板对齐在桌子的一端(照片3)。插入电线组(照片4),然后将每端连接到连续的红外传感器(照片5和6)。当你完成一行时,它应该看起来像照片7。
重复所有传感器行。是的,我知道,单调乏味。完成的电路板显示在照片8和9中。
步骤22:组装并安装rgb led环
重复前面描述的过程,将两个3针直角插头部分焊接到每个led环底部的焊盘上。当焊料很硬时,小心地从焊头上取下黑色塑料,只留下引脚。是的,我知道,再次乏味!当你完成后,你应该把这些东西搞得一团糟 - 看照片。
将每个环推到一个前面制作的六个孔中,将环安装在顶面上(照片3)。要温和,因为针脚很容易折断。完成后,顶部表面看起来应该像照片4.
恭喜,顶部完成!
步骤23:连接led环
将纸板翻转过来,您将看到led环上的所有3针组对穿过(见第一张照片)。六个引脚具有以下功能:接地,电源输入,数据输入和接地,电源输出,数据输出。这使我们可以使用三线连接器(两端带有母连接器)轻松地将环连接在一起。结果是rgb led的单个逻辑条带,只要我们仔细地绘制出每个led逻辑阵列的位置,就可以轻松编程。这些信息(连同ir传感器索引)在代码中的一个位置表示。
这种策略的一个问题是产生的“条带”由61个12个led的环组成 - 总共732个led!好多啊。第一个问题是电源:我们的三线连接器可能是24或26 awg,这不足以为所有这些led传输电流。其次,我们使用的ws2812 led花费时间将信号传递到线下,限制了动画的帧速率。
问题一的解决方案是将每列环直接连接到主体电源线,单链由最多72个led组成。为了解决第二个问题,我将数据信号分成三组 - 两组22个环,一组17个。幸运的是,fastled库可以很容易地设置这个模式,同时仍然可以开始处理led作为代码中的单个条带。
首先在成对的相邻环之间添加所有三线连接器(照片2,3和4)。密切关注输入和输出模式:确保连接接地,电源和数据到数据。在我的戒指上,数据信号始终是彼此面对的两条线内部。成品如图5和图6所示。此时我们有圆柱,但是柱子没有相互连接。
接下来用重型仪表制作电源和接地总线,例如作为20 awg。我使用相同的策略为ir导轨供电:切掉一小块绝缘层并焊接各个电源线和地线。请参见照片7和8.注意连接器:它按照您的预期连接了电源和接地,但数据引脚上还连接了一根长导线。该导线将数据从前一列的顶部传送到下一列的底部。将其连接到任何三线连接器(照片9和10),然后将蓝色线连接到上一列顶部的数据输出引脚(照片11和12)。
当连接所有电源线时,您会在数据线中看到一个z字形图案,它将所有rgb led环连接成一个长逻辑条(照片13)。在我的设计中,我将其分成三个逻辑条带,因此您可以看到三个输入(照片14)。最后将电源线连接到电源(图15)。
我还在电源线上增加了一个1000uf的大电流耦合电容,以吸收大功率波动,特别是在上电时。
步骤24:连接并连接微控制器
《我为这个项目选择了espressif esp32微控制器。它是一款出色的芯片:双核,160或240 mhz,具有充足的内存,大量的引脚和许多有趣的特殊功能。我与其他一些人合作开发了对fastled库的esp32支持,部分原因是为了使这个项目成为可能。我将在下一步讨论代码。
连接微控制器非常简单:我们需要四个输出引脚用于ir选择器;四个输入引脚,用于读取ir传感器;和三个输出引脚来驱动led环。我将esp32焊接到一个原型板上,然后添加了母头,以便我可以根据需要轻松插入所有内容。
我还为原型板导轨添加了电源,这也用于为多路复用器板供电。完整的接线设置如图4所示。
步骤25:向电源添加交流电源
我的电源采用三线ac输入(110v)。小心连接三根电线,包括绿色地线。另外:确保电源设置为110v - 其中一些有一个开关,我的设置为220v。
整个表面的底部显示在最后一张图片中。
步骤26:配置和安装软件
您可以在https://github.com/samguyer/reacttable找到我的软件。它实现了您在演示视频中看到的四种模式(实体,五彩纸屑,齿轮和火焰),但您可以随意尝试自己的模式!
除非您构建并连接表格 * * 我的方式,您可能需要更改软件配置中的一些内容:
pins
我使用了以下内容我的esp32上的引脚分配:
ir通道选择器:引脚5,18,23,19 - 它们碰巧在我的板上彼此相邻
ir输入:引脚32,33,34,35 - 也彼此相邻,并且仅是输入。
led(分为三个子条):引脚17,16,4
您将在顶部找到所有这些引脚分配(和描述)。草图。如果您更改的是这些引脚,则修改应该快速而简单。
led和ir布局
如果更改表格中的单元格数量或布局/布线,则需要更改其他一些内容。首先,修复三个#defines,指定单元格数和每个单元格的led数量(也在文件顶部的配置部分)。
接下来,更新单元格映射。此信息存储在名为g_cellmap的全局cellmapentry结构数组中。您现在可以忽略x和y字段。最重要的是将ir索引(传感器连接到的ir输入)与led条带排序中相应的环位置相匹配。在我的桌子上,排序有点奇怪 - ir输入按行从左到右和从上到下排列(数组本身的顺序),而led环从底部按列排序到顶部和从右到左。我没有试图找出一个奇特的映射函数,而是明确写下所有索引。
编译并运行!
编译并上传到esp32!请注意,我通常需要将其插入,否则它会尝试从我的计算机的usb端口绘制所需的所有电源!
步骤27:创建模式
我在演示中看到了创建模式的很多乐趣,但是还有很多其他的东西可以做。代码并不复杂,我提供了许多有用的实用函数来帮助您创建新模式。
单元类
几乎所有有趣的东西发生在cell类中。每个单元有一个这个类的实例(每对红外传感器和一个led环)。每个模式都是通过类中的方法实现的,该方法读取ir传感器并设置led环的颜色 - 仅适用于该单元。草图的主循环只是以给定的帧速率重复调用此方法。
实体模式是一个简单的例子:
void solidpattern()
{
if (m_new_pattern) {
m_palette = rainbowcolors_p;
m_new_pattern = false;
}
uint8_t level = senseirwithdecay(12, 4);
setallledshue(level);
}
第一部分初始化模式,如果我们刚刚从另一种模式切换。请注意,我们可以为每个模式设置不同的调色板(实际上每个单元格,如果需要)。
下一行读取ir传感器,它产生0到255之间的值。您可以认为这个数字在概念上称为“距离” - 较小的值是由靠近桌子的东西引起的;更大的值是更远的东西(或没有任何东西)。
这种特殊的方法包含一个衰减因子,导致值徘徊,留下痕迹。您还可以使用senseir()方法读取立即值。
最后一行将环中的所有led设置为ir级别给出的色调。该值是当前调色板的索引。就是这样!
led
在环中设置led有两种不同的方法。第一组直接将每个led设置为分立元件。您可以将颜色指定为rgb(24位颜色)或作为当前调色板的索引(8位值)。索引必须在0和leds_per_cell之间。
void setled(int index, crgb color);
void setledhue(int index, uint8_t hue, uint8_t brightness);
void setallleds(crgb color);
void setallledshue(uint8_t hue, uint8_t brightness);
第二组方法将环视为像素的连续空间,因此您可以照亮圆中的任何逻辑位置。对于这些方法,索引是16位固定精度数 - 高8位表示0到255之间的整数部分,低8位表示以1/256为单位的小数部分。下面的方法通过在实际物理像素之间进行插值来创建所有这些位置的错觉。这是gears模式用于使运动平滑的方法。
void setpixel(uint16_t pos, crgb color);
void setpixelhue(uint16_t pos, uint8_t hue, uint8_t brightness);
CES:惠普Sandy Bridge新品
浅谈2018年柔性AMOLED手机面板趋势分析
PLC顺序控制方法之Graph编程介绍
5G+全栈国产化赋能智能电网,助力“5G智慧之城”
阿里物流机器人小蛮驴上岗 浙大全球首个纯机器人送货高校
炫酷LED环的制作教程
华为P30 Pro正式发布了墨玉蓝和嫣紫色两款新配色
基于单片机的VRAM型彩色液晶显示模块设计
如何使用DevExpress Winforms实现UI自动化
FSR3性能画质双超DLSS3!AMD RX 6750 GRE首发评测:远强于RTX 4060
Intel正式宣布幽灵峡谷NUC,首次搭载酷睿i9+独显
服务型机器人呈现客制化 机器人可为信徒解签
惠斯顿电桥原理及其应用
TI推出采用CapTIvate™技术的MSP430™微控制器(MCU)系列产品
赛普拉斯半导体推可编程汽车级USB-C控制器 符合PD 2.0标准
村田购买了索尼的电池业务,还想借此转行到电动车领域
怎样测量电机的绝缘电阻
光刻工艺的苛刻高精度、重复性和稳定性要求
如何最大程度的降低电源模块的电磁干扰
带通滤波器宽阻带技术解析