DIY灯光雕塑

贡献者: Feldi
喜爱的 最喜欢的 8

介绍

设计和构建时间:5小时

在这个项目中,亚博官网我们将创造一个美丽的桌面灯雕塑边缘照明激光切割丙烯酸与可寻址LED。此项目嵌入亚博官网了迷你迷你8x8 Adafruit新像素矩阵电位计瞬时按钮,和转换.

灯光雕塑概述

所需材料

让我们回顾一下把你的项目放在一起需要做的所有事情。亚博官网取决于你有什么,您可能不需要这里列出的所有内容。把它加入你的购物车,阅读指南,并根据需要调整推车。

工具

你需要一个烙铁焊料,和一般焊接附件以及3D打印机黑长丝

TAZ 6 3D打印机

TAZ 6 3D打印机

TL—13880
2499.95美元
ABS长丝3mm - 1kg(黑色)

ABS长丝3mm - 1kg(黑色)

TL—12954
42.95美元

您还需要以下项目:

  • 激光切割机
  • 透明丙烯酸(1/8英寸厚)
  • 热胶枪和胶

建议阅读

在你开始之前,花些时间来熟悉以下内容:

如何焊接:通孔焊接

本教程涵盖了关于通孔焊接的所有知识。

安装Arduino库

如何安装自定义Arduino库?这很容易!本教程将介绍如何使用Arduino库管理器安装Arduino库。对于未链接到Arduino IDE的库,我们还将继续手动安装Arduino库。

使用电线

如何剥离,卷曲,和电线一起工作。

什么是Arduino?

这到底是什么“阿杜诺”的东西?

安装Arduino IDE

在Windows上安装和测试Arduino软件的分步指南,雨衣,和Linux。

可寻址LED条连接指南

使用基于WS2812的可寻址LED,为假日装饰添加闪烁的灯光!

软件安装

Arduino IDE

QDuino Mini可通过Arduino IDE进行编程。如果这是你第一次使用Arduino,请阅读我们关于安装Arduino IDE的教程。

安装Arduino IDE

3月26日二千零一十三

在Windows上安装和测试Arduino软件的分步指南,雨衣,和Linux。

Qduino微型驱动程序和板附加组件

如果这是你第一次和Qduino Mini合作,您可能需要通过Boards Manager添加驱动程序和Board插件。有关通过Arduino IDE安装驱动程序和编程Qduino Mini的详细说明,请访问Qduino Mini快速入门指南。

Qduino迷你快速入门指南

示例代码

注:此示例假定您正在桌面上使用最新版本的Arduino IDE。如果这是你第一次使用Arduino,请参阅我们的教程安装Arduino IDE。如果您以前没有安装过Arduino库,请查看我们的安装指南。

在这个程序中,我们还将利用adafruit neopixel库。您可以通过Arduino库管理器获取此库。寻找新苦艾果您应该能够安装库的最新版本。如果你喜欢手动下载这个库,你可以从GitHub库中获取:

下载adafruit neopixel库(zip)

我们在下面为这个项目提供了代码。亚博官网复制粘贴到你的Arduino IDE,然后上传到你的板。请确保在“板管理器”中选择了正确的板,以及“端口”下拉菜单下的端口。

语言:C/***********************************************************************lightsculpture.ino melissa felderman@sparkfun electronics c亚博官网reation日期:7月31日,2018年资源:adafruit_neopixel.h-adafruit neopixel库和示例函数**************************************************************************************包括
           
            //包括afaforuit库define pin 6//led matrix pin define brightpot a0//potentiometer to control l brightness define pwrswitch 4//power switch define mombut 5//button to control led mode int numpix=64;// LED总计数int brightPotVal;//变量,以保持锅值int像素亮度;//variabe保存亮度值int switchstate;//保持开关值int butstate的变量;//保持按钮值的变量int模式=0;//切换状态启动模式布尔值butbool=false;int-topmode=4;//开关状态下LED模式的最大数目无符号长LastDebounceTime=0;无符号长解包延迟=200;Adafruit_NeoPixel strip = Adafruit_NeoPixel(numPix,引脚,NEO_GRB + NEO_KHZ800);//声明新像素矩阵//为每一行led创建一个数组int rowOne[] = {0,1,2,三,4,5,6,7 };int row2 [] = {8,9,10,11,12,13,14日,15};第三行整数[]=16,17,18,19日,20,21,22日,23 };第四行整数[]=24,25,26日,27,28,29,30,31};第五行整数[]=32,33,34,35,36,37,38,39 };int rowsix[]=40,41,42,43岁的44,45岁的46岁,47 };int行偶数[]=48,49,50,51,52,53,54,55 };第八行整数[]=56,57,58,59岁的60岁,61,62年,63 };void setup()serial.begin(9600);开始;显示();输入模式输入);PinMode(电源开关,输入);} void loop() {brightPotVal = analogRead(brightPot);PixelBrightness=地图(BrightPotVal,0,1023年,0,200);switchstate=digitalread(pwrswitch);butstate=数字读取(mombot);strip.setbrightness(像素亮度);显示();//函数的作用是:如果((millis() - lastDebounceTime) > debounceDelay) {if ((butState == HIGH) && (butBool == false)) {butBool = true;模式+;LastDebounceTime=毫秒();} butBool = false;如果(模式>TopMode)模式=0;serial.println(模式);//切换状态功能,循环通过led上的模式,如果(switchstate==high)switch(mode)case 0:for(int i=0,则可以添加任意多个或任意少个;我是NUMPIX;我+ +){ strip.setPixelColor(,255年,255年,255);strip.show();断裂;案例1:彩虹();断裂;案例2:Bulegreengradient();断裂;案例3:PinkGradient();断裂;案例4:YellowGradient();断裂;else if(switchstate==low)for(int i=0;我是NUMPIX;i++)strip.setPixelColor(i,0,0,0);}strip.show ();//LED颜色的函数void everyother()for(int i=0;I<8;i++)strip.setPixelColor(RowOne[i],255年,255年,255);strip.setPixelColor(第三行[i],255年,255年,255);strip.setPixelColor (rowFive[我],255年,255年,255);strip.setPixelColor(行偶数[i],255年,255年,255);strip.setPixelColor (rowTwo[我],0,0,0);strip.setPixelColor (rowFour[我],0,0,0);strip.setPixelColor (rowSix[我],0,0,0);strip.setPixelColor(第八行[i],0,0,0);strip.show();} void pinkGradient() {for (int i = 0;I<8;i++)strip.setPixelColor(RowOne[i],185,0,255);strip.setPixelColor (rowTwo[我],195,0,230);strip.setPixelColor(第三行[i],205年,0,200);strip.setPixelColor (rowFour[我],215,0,160);strip.setPixelColor (rowFive[我],225,0,120);strip.setPixelColor (rowSix[我],235年,0,80);strip.setPixelColor(行偶数[i],245年,0,40);strip.setPixelColor(第八行[i],255年,0,10);strip.show();void bulegreengradient()for(int i=0;I<8;i++)strip.setPixelColor(RowOne[i],0,75,255);strip.setPixelColor (rowTwo[我],0,100,225);strip.setPixelColor(第三行[i],0,125年,200);strip.setPixelColor (rowFour[我],00,150,175);strip.setPixelColor (rowFive[我],0,175年,150);strip.setPixelColor (rowSix[我],0,200年,125);strip.setPixelColor(行偶数[i],0,225,100);strip.setPixelColor(第八行[i],0,255年,75);strip.show();} void yellowGradient() {for (int i = 0;I<8;i++)strip.setPixelColor(RowOne[i],255年,255年,25);strip.setPixelColor (rowTwo[我],255年,220,25);strip.setPixelColor(第三行[i],255年,190,25);strip.setPixelColor (rowFour[我],255年,160,25);strip.setPixelColor (rowFive[我],255年,130,25);strip.setPixelColor (rowSix[我],255年,100,25);strip.setPixelColor(行偶数[i],255年,70年,25);strip.setPixelColor(第八行[i],255年,40,25);strip.show();} void rainbow() {for (int i = 0;I<8;i++)strip.setPixelColor(RowOne[i],255年,0,0);对于(int i=0;I<8;i++)strip.setPixelColor(rowtwo[i],255年,100,0);对于(int i=0;I<8;我+ +){strip.setPixelColor (rowThree[我],255年,255年,0);对于(int i=0;I<8;i++)strip.setPixelColor(第四行[i],0,255年,0);对于(int i=0;I<8;i++)strip.setPixelColor(第五行[i],0,255年,200);对于(int i=0;I<8;我+ +){strip.setPixelColor (rowSix[我],0,0,255);对于(int i=0;I<8;i++)strip.setPixelColor(行偶数[i],255年,0,255);对于(int i=0;I<8;i++)strip.setPixelColor(第八行[i],255年,0,130);strip.show();}
           

了解你的电路

在光雕塑的围墙内有一个NeoPixel Neomatrix 8x8-64 RGB LED共包含64个可寻址的WS2812发光二极管,一个100年佛罗里达大学电容器为了保护第一个LED,一Qduino Mini-Arduino开发板作为项目的大脑,亚博官网一个迷你电源开关要轻松打开或关闭项目,亚博官网一个触觉按钮要在灯光模式之间导航,和A电位计控制亮度。一小块可摘原板用于扩展Qduino Mini上的“+”和“-”终端,使连接组件上的“+”和“-”引线变得更容易。一个活细胞USB电缆用于直接向Qduino上的USB端口提供墙壁电源。但是一个大的锂离子电池也能工作。

如下图所示:QduinoMini是这个项目的核心。亚博官网插脚d6连接到Neopixel Neomatrix,电位计连接到针脚A0,切换到插脚D4,和瞬间按钮到D5。Neopixel矩阵上的第一个LED由100uF电容器保护,电容器位于矩阵上的“+”和“-”之间,Qduino Mini上的“+”和“-”之间。您还可能注意到,当其余组件直接连接到qduini mini上的“+”时,开关和按钮都连接到' -'的Qduino通过电阻。这被称为下拉电阻,允许qduino获得高和低的准确读数。要了解亚博在线娱乐官网更多关于如何与Arduino一起使用上拉和下拉电阻的信息,查看我们的教程.

光雕皱边图

很难看到电路?单击电路图以进一步查看。

外壳制造

本项目的第一部分是在3D打印机上打印附件。亚博官网如果您无法使用3D打印机,请与您当地的图书馆或制造厂联系。也有3D打印服务,你可以使用在线喜欢“塑造方法”.

下载3D打印机驱动程序

下载控制3D打印机所需的所有驱动程序和固件。如果你和Lulzbot合作,就像Sparkfun销售的那样,亚博官网看看他们的下载页面在他们网站的支亚博国际官网持部分。如果你用的是不同的打印机,有关驱动程序和固件的信息,请访问打印机品牌的网站。

下载项目文件亚博官网

从项目页面下载.stl文件亚博官网thingiverse.

在此处下载文件

下载STL

准备GCode

通过将.stl加载到驱动程序软件中来准备gcode。将gcode保存到SD卡,或者通过USB将计算机连接到打印机准备打印。确保您的设置与您计划使用的材料匹配。我推荐使用黑色灯丝,因为它能有效地阻挡光线。较浅的颜色可能会漏光。如果你喜欢浅色的外壳,我会用黑色印刷,然后在添加电子产品之前喷漆。

抬起头来!为了节省时间和灯丝,翻转驱动器中的机箱,使水平插槽平放在床上。

3D打印机驱动程序准备

打印

打印附件!

打印附件

把你的电子设备放在一起

现在我们已经打印了附件,让我们为电路准备电子设备。

请注意!在将电路焊接到外壳中之前,请务必在电路板上测试电路。

焊丝引导

使用实心连接线将大约2“的导线焊接到部件上。为了让你以后的生活更轻松,用红线标出“+”,黑人从接地,GPIO输入/输出为白色。使用热收缩来保护和隔离按钮和开关上的连接。

焊料引导光雕塑

单击图像以更近距离查看。

放置电子设备

将电子器件放置在外壳中各自的空间中。对于新像素矩阵,确保您的DIN针脚在电位计的另一角。这是为了确保你的LED模式与插槽对齐。你可以用电位器自带的螺帽固定电位器。

广场电子灯光雕塑

对于按钮和开关,用少量的热胶涂抹在背面,使其固定到位。

热胶电子灯雕塑

将一根“+”和“-”导线分别焊接到QDuino的VCC和GND上。QDuino上只有一个“+”和一个“-”针,因此我们需要延长这两个针以便您的组件连接。要做到这一点,抓起一小块原板,将“+”引线的另一端焊接到一个角上,将“-”引线的另一端焊接到另一个角上。

焊锡鉴赏灯雕塑

将USB线插入Qduino,将其面朝下放置在电位器后面,USB线穿过外壳后面的选项卡。

插件Qduino光雕

在开始焊接电路之前,外壳中的所有零件应如下所示:

所有部分一起轻划桨

焊料电路

根据上面提供的熔焊图将电路焊接在一起。在原板上使用“+”和“-”扩展名作为所有的“+”和“-”引线。不要忘记在你的开关和按钮上的GND引线和GND分机之间焊接一个电阻。在新像素矩阵上的“+”和“-”引线和“+”和“-”延长线之间使用电容器来保护第一个LED免受电流冲击也是最佳实践。

焊接在一起

验证

测试你的电路。打开它,确保它是按照程序工作。

激光切割你的设计

现在我们已经完成了基础外壳和电子器件焊接成一个电路,让我们来看看如何为您的项目添加一种装饰风格。亚博官网

下载模板

从项目下载激光切割机模板亚博官网thingiverse准备切割亚克力嵌件的页面。打开这个与illustrator,并开始设计你的蚀刻和/或削减。我发现两个蚀刻的图案都把光拾起来了塑料的边缘,因此,您可以使用这两个元素来创建最终设计。矩阵上有8行LED,因此您需要制作8种不同的丙烯酸嵌件。

削减你的设计

根据制造商的规范,这些插入件被切割,设计在我们的Epilog 75W激光切割机上粗糙。如果你没有激光切割机,查看你当地的图书馆或黑客空间。或者,您可以在网上订购您的设计波诺科.

激光切割丙烯酸嵌件光加工

点亮你的生活!

把插件插进你的外壳里,尽情享受吧!

浅雕塑GIF

最后的光雕塑

资源和进一步发展

有关本教程的更多信息,请浏览以下连结:

以下教程提供了有关WS2812S的一些重要信息以及为LED项目供电:亚博官网

WS2812分接头导向装置

如何使用ws2812和ws2812b LED创建像素字符串!

RGB面板连接指南

让明亮,彩色显示器使用32x16,32×32,和32x64 RGB LED矩阵面板。这个连接指南展示了如何连接这些面板并使用Arduino控制它们。

LED开关电源连接指南

在本教程中,我们将把一个平均良好的LED开关电源连接到一个由Arduino控制的可寻址LED条上。

寻找另一个项目?亚博官网请看下面的一些教程:

天棚派对包

本教程提供了制作您自己的天棚派对包所需的所有知识!

DIY亮灯鞋

本教程提供了你需要知道的一切,使你自己的光高顶运动鞋!

DIY加热耳罩

嵌入加热垫和四个新像素环,这些耳罩比普通的冬季配件更能保暖,同时又美观。

查看这些博客文章,了解更多伟大的想法!