LumiDrive连接指南

γ
贡献者: 伊莱亚斯最耀眼
喜爱的 最喜欢的

介绍

卢米德是Sp亚博官网arkfun在微控制器上对所有事情的探索。利用adafruit的circuit python,我们创造了一种产品,用于驱动APA102.我们已经从机载SAMD21G-AU微控制器中分离出一些模拟和数字管脚,这样您就可以实现外部按钮,开关,以及其他与发光二极管相互作用的嗡嗡声。

亚博官网发光二极管驱动器

亚博官网发光二极管驱动器

DEV-1477
19.95美元

电路蟒蛇

您可以阅读有关circuit python的大量文档在这里在阿达水果的网站上,但让我们回顾一下简短而甜蜜的版本。circuit python是adafruit的版本小蜂.祈祷告诉什么,是微小的吗?Micropython是用于微控制器的python 3。微距技术利用了广受欢迎的巨蟒的力量。解释易于使用的语言,易于阅读,功能强大,可用于微控制器。在你申报和使用别针的方式上感觉很熟悉,但与Arduino不同,您不必编译或上传代码。这是因为当你把微控制器插入电脑时,它就像一个USB驱动器。代码只是作为一个直接修改的文件存在,保存后,自动加载。代数!它还与您计算机上的python 3兼容,这样您就可以在桌面上无缝开发了!为什么我们要使用circuit python?Circuit python的优势在于,默认情况下,它有许多内置的库,可供入门级爱好者使用。对于LumiDrive,我们将利用dotstar库,ADAVORY的APA102 LED图书馆。

所需材料:

LED RGB条-可寻址,1M(APA102)

LED RGB条-可寻址,1M(APA102)

COM—14015
15.95美元
USB 3.1电缆A到C-3英尺

USB 3.1电缆A到C-3英尺

CAB-1474
4.95美元

我们有许多便携式选项为您的LED供电:

锂离子电池-1小时

锂离子电池-1小时

PRT-13813
9.95美元
锂离子电池-2ah

锂离子电池-2ah

PRT-13855
12.95美元
锂离子电池-6Ah

锂离子电池-6Ah

PRT-13856
29.95美元

我发现这个连接器非常有用,因为它使我无法将APA102的不同线直接插入到Poke Home连接器中。

LED条尾光纤连接器(4针)

LED条尾光纤连接器(4针)

CAB-14566
1.50美元

建议阅读

电池技术

便携式电子设备用电池的基本原理:Lipo,尼姆硬币电池和碱性。

发光二极管(LED)

亚博在线娱乐官网了解有关LED的基础知识以及一些更高级的主题,以帮助您计算包含许多LED的项目的需求。亚博官网

LED开关电源连接指南

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

铝环连接指南

Lumini环(APA102-2020)是可用的最高分辨率LED环。

硬件概述

功率

产品有三种电源选择:USB-C,锂离子电池,或输入。你可以提供范围从3.3V-6V.

此图突出显示了包括USB-C连接器的板的电源输入。脂连接器和两针头紧挨着Lipo连接器。

USB总线

UB-C,除了是可逆的,这已经是了不起的,有能力提供比以前更多的电力。我可以用3.1个USB插头从我的电脑上拔出2安培。小心点-我这样做是为了你不必这么做!每台电脑都不一样,我强烈建议你不要做这么草率的事情,除非你绝对有信心。还要记住不同的USB端口(2.0,3,以及3.1)提供不同级别的电源。3.1很容易识别,因为当你观察港口时,它有一个蓝色的舌头。

锂离子电池

我们的目录中有许多选项可以满足您的各种便携式电源需求。LumiDrive还配有充电电路,这样你就可以给Lipo电池充电。

插入Lipo电池以及USB-C电源

双针输入头

最后但不是最不重要的是一个2针的标题输入在那里你可以自己供电。

电流牵引

下表列出了55束LED的电流消耗全白半亮度和全亮度。我还包括了不同LED数量和亮度的各种功能的电流消耗,以帮助您在购买或使用LED时做出更明智的决策。

#LED(半亮度) 电流消耗(安培)
零点零七零
零点零九五
零点一二零
零点一三九
零点二八九
二十 零点五三六
三十 零点七五五
三十五 零点八八三
四十 一点一零二
五十 一点三一一
#LED(全亮度) 电流消耗(安培)
零点五二零
十五 零点七三七
二十五 一点三二八
二十七 一点四二六
二十九 一点五二三
三十一 一点六一八
四十 二点零一八
55 LED下的功能 电流消耗(安培)
切片彩虹(亮度0.25) 零点三三六
切片彩虹(亮度0.50) 零点六零零
彩虹周期(0.25亮度) 零点二八一
彩虹周期(0.50亮度) 零点五零零
85 LED下的功能 电流消耗(安培)
切片彩虹(亮度0.25) 零点五零零
切片彩虹(亮度0.50) 零点八九零
彩虹周期(0.25亮度) 零点四二五
彩虹周期(0.50亮度) 零点七二七

投入产出

产品侧面有四个输入/输出插脚断开。有两个数字管脚和两个模拟管脚。这些可用于通过连接按钮与您的LED链(或不)进行交互,开关,光传感器,等。

此图显示产品的顶部,USB-C接口朝上,突出显示四个最低的电镀通孔作为输入和输出销。

按钮

产品上有两个按钮。顶部按钮是一个复位按钮,按下时将复位板。第二个是连接到数字插脚d6的按钮。你可以用这个来代替在电路板上附加一个按钮。

这张图片显示了产品的上部,USB-C接口朝上,并突出显示左侧的两个按钮。顶部被重置,另一个为d6。

发光二极管

板上有两个LED。图中顶部的LED是一个黄色的充电LED,指示正在对Lipo电池充电。第二个是连接到插脚D13的蓝色静态LED。

这张图片显示了产品的上部,USB-C接口朝上,突出显示右侧的两个LED,一个标有电荷,另一个LED。

插入主连接器

在产品的底部有两个插入式家用连接器。

这张图片显示了产品的上部,USB-C接口朝上,并强调了两个大的并排插入式家庭连接器,允许轻松连接电线,而无需焊接。

它们是多功能的,相当坚固,可以让你插入电线而不需要焊接。他们的标签是电线的颜色,在我们在Sparkfun销售的apa102发光二极管中使用,但不仅限于这些。亚博官网就在丝绸下面,你会注意到这些线条的功能如下图所示。

描述
红色 VCC(3.3-5V)
蓝光 时钟
GRN 数据
黄色的 地面

五金件装配

硬件装配是直接向前的。让我们从将您的LED线插入Poke Home连接器开始。更精细的控制可以通过使用一对镊子或一支笔的尖端压入插电式家用连接器顶部的盖子来实现。在这里我们选择了镊子,因为这是我们手边的东西。

用镊子压下黑色活门,将电线插入插入插入式主夹。

当你按下插电式家用连接器顶部的黑色活门时,两个金属楔片在连接器内部横向移动到产品的侧面。把你的电线插进插入式家用连接器。当你释放它的时候,两个楔子将夹在电线上。轻轻地拉一下,确保电线在里面是实心的。你准备好摇滚了!

电线插入到插入式主夹中,黑色活门不再被压下。

使用USB-C接口将LumiDrive插入计算机。它应该作为一个名为电路化的.如果不是自动弹出,拔下插头再插回。如果不起作用,导航到“文件”文件夹并查找电路化的在左手边,点击一下。此时,lumidrive上的蓝色stat LED应闪烁。从这里你可以打开那个电路化的点击它。

拖放文件夹视图

很难看到?单击图像以更近距离查看。

注意!您可能想知道Circuitpy驱动器上的所有这些文件是什么?我的计算机上打开了隐藏文件。具有前一期间的文件,即Mac用户需要“.trashes”或“.metadata_never_index”。boot_out.txt文件告诉您在lumidrive上加载了什么版本的circuit python。最后,“main.py”是所有有趣的事情发生的地方。

让我们进入示例代码。

示例代码

你的lumidrive应该已经有了以下代码,但是万一发生什么事情,然后您可以在此处重新下载示例代码:

lumidrive main.py示例代码

您可以使用Arduino IDE将Arduino代码上载到LumiDrive。只需在Board菜单下选亚博官网择Sparkfun Samd21 Dev Breakout Board。如果您没有Sparkfun SAMD21板定亚博官网义,请查看我们的连接指南。在这里详细说明。如果你真的想走阿杜诺的路线,您需要安装FastLED库。看到我们铝环连接指南有关安装详细信息和示例代码。

在我们开始之前,我们来谈谈在LumiDrive上加载和更新此代码的选项。一种选择是移动文件Me.Py在桌面上用文本编辑器.完成后,您只需将其拖放回电路化的驱动器。电路python将识别更改并自动加载新代码。另一个选项是直接在电路化的驱动器。这一选择更加方便和高效,但需要一个文本编辑器,在保存文件时完全写入该文件。在Windows上,并非所有文本编辑器都显示出必要的行为。下面是一个很好的列表,不太好,不推荐直接在lumidrive(或任何电路python板)上编辑文件的文本编辑器。如果你使用的是Mac,那么你就不会遇到这些问题。

仅适用于附加组件 不推荐
吡甲酰亚胺 记事本/记事本++
vim 原子 空闲的
Emacs 光滑编辑 纳米技术
崇高文本
Visual Studio代码

我的建议是崇高文本.第一种更适合初学者,第二种更轻,具有一些非常好的功能。如果你已经熟悉Vim了,Emacs,或者使用Visual Studio代码。

如果你和一个未推荐的编辑然后有一种方法让它工作。在您更改了main.py之后,如果你弹出电路化的驱动器,然后它将强制Windows写入您所做的保存。

让我们快速讨论一下python监视哪些文件进行保存。circuit python按此顺序查找以下四个文件,并运行找到的第一个文件:代码代码密码M.TXT,和Me.Py.就这些,现在开始编写代码。

在代码的顶部,我们有一些库是代码所必需的。

语言:pythonimport adafruit_dotstar我们的LED库导入数字导入板导入数学导入时间

在这里,您可以开始修改特定LED条的代码。这个数字像素变量应反映您有多少个LED,以及亮度控制亮度。我们在示例中有60个像素,因为它反映了我们的1米长APA102S.在设置这些设置时请记住,如果通过计算机供电,不要加得太快。否则,您可能会损坏计算机。在我们的两个变量下面,我们创建了一个称为像素的库实例,下面我们有一些预定义的颜色。

语言:python这两个变量应该被调整以反映您拥有的LED的数量和您想要它们的亮度。num _pixels=60 brightness=0.25这创建了dotstar库的实例。像素=adafruit.dotstar.dotstar(board.sck,莫西数字像素,亮度=亮度,auto_write=false)一些标准颜色。黑色=(0)0,0)红色=(255)0,0)黄色=(255,150,0)橙色=(255,40,0)Green =(0)255,0)TEAL=(0);255,120)青色=(0)255,255)蓝色=(0)0,255)紫色=(180,0,255)洋红=(255,0,20)白色=(255,255,255)十种颜色的列表。如果你想循环使用这些颜色,可以使用这个。颜色列表=[红色,黄色的,橙色,绿色,水鸭,青色,蓝色,紫色,品红,怀特

我们有许多功能来处理不同的LED行为。每个函数的定义上面都有一些注释。

语言:python travel函数获取颜色和更新颜色之间的时间。它将从链上的LED灯开始,并填充给定颜色,直到达到定义为“num_pixels”的最大像素数。def travel(颜色,wait):num_pixels=len(像素)代表范围内的位置(num_像素):pixels[pos]=color pixels.show()time.sleep(wait)travel_back函数类似于travel函数使用颜色和更新颜色之间的时间。但是它不同于旅行功能,它将从最后一个LED开始,并按其方式工作到LED。用给定的颜色填充LED。def travel_back(颜色,等待):num_pixels=范围内位置的len(像素)(num_pixels,0,-1):pixels[pos]=color pixels.show()time.sleep(wait)此函数可以让您了解要创建的其他函数。在这里,我们从绿色LED开始,然后慢慢地填充红色直到我们有黄色。def green_yellow_wheel(wait):范围(255)内的红色:颜色=(红色,150,0)pixels.fill(color)pixels.show()time.sleep(wait)您可以使用此函数获取自定义颜色值。#以一个元组的形式表示的价值,就像上面的颜色。def wheel(pos):35;输入值0到255以获取颜色值。#颜色是从R-G-B-返回R的过渡。如果pos<0或pos>255:返回(0,0,0)如果pos<85:返回(255-pos*3,POS*3,0)如果pos<170:pos-=85返回(0,255 -POS*3,pos*3)pos-=170返回(pos*3,0,255-pos*3)此函数采用颜色和三角形,并用该颜色填充整个链。#如果在一行中使用多个颜色填充,则会给出延迟。def color_fill(颜色,wait):像素。填充(颜色)像素。show()时间。sleep(wait)用两种交替颜色填充链,并循环通过10种颜色的def slice_alternative(wait):num_pixels=len(像素)像素[::2]=[红色]*(num_pixels//2)像素。show()时间。sleep(wait)像素[1::2]=[橙色]*(num_pixels//2)像素。show()time.sleep(wait)像素[::2]=[yellow]*(num_像素//2)像素.show()时间.sleep(wait)像素[1::2]=[green]*(num_像素//2)像素.show()时间.sleep(wait)像素[::2]=[teal]*(num_像素//2)像素.show()时间.sleep(wait)像素[1::2]=[cyan]*(num_像素//2)像素.show()时间.sleep(wait)像素[::2]=[蓝色]*(num_像素//2)像素。show()时间。sleep(wait)像素[1::2]=[紫色]*(num_像素//2)像素。show()时间。sleep(wait)像素[::2]=[品红色]*(num_像素//2)像素。show()时间。sleep(wait)像素[1::2]=[白色]*(num_像素//2)像素。show()时间。sleep(wait)此函数divid是给定的像素数,并用彩虹图案(红色,橙色,黄色的,绿色,蓝色,紫色)每6个LED重复一次。def slice_rainbow(wait):num_pixels=len(pixels)pixels[::6]=[红色]*math.ceil(num_pixels/6)pixels.show()time.sleep(wait)pixels[1::6]=[橙色]*math.ceil((num_pixels-1)/6)pixels.show()time.sleep(wait)pixels[2::6]=[黄色]*math.ceil((num_pixels-2)/6)pixels.show()time.sleep(wait)pixels[3::6]=[green]*math.ceil((num_pixels-3)/6)pixels.show()time.sleep(wait)pixels[4::6]=[blue]*math.ceil((num_pixels-4)/6)pixels.show()time.sleep(wait)pixels[5::6]=[purple]*math.ceil((num_pixels-5)/6)pixels.show()time.sleep(wait)此函数使一系列LED变为低好吧,就像彩虹旗沿着这条线的长度飘扬。它不是无限连续的,在任何一个LED循环通过每种颜色后都会停止。def rainbow_cycle(wait):num_pixels=len(pixels)for j in range(255):for i in range(num_pixels):rc_index=(i*256//num_pixels)+j pixels[i]=wheel(rc_index&255)pixels.show()time.sleep(wait)print(“clearing leds.”)color_fill(black,0)

最后我们有一个while循环,类似于空环在阿杜伊诺。现在,我们的蓝色d13 stat LED灯闪烁。

语言:python ah trusty ol'闪烁。当为真时:led.value=true time.sleep(.5)led.value=false time.sleep(.5)

相反,让我们从上面的函数中选择一些函数,然后将它们键入。我选择了以下内容,并给出了函数的必要参数:延迟时间。

语言:pythonwhile真:彩虹周期(0)

修改代码后,只需点击保存(假设您有正确的文本编辑器直接保存在LumiDrive上),代码就会自动运行。如果一切正常,您应该看到以下内容:

黑暗中的LED链示例

代数!

使用3英寸铝环,以及一些其他功能。

带Lumini环的LumiDrive演示

抬起头来!更新apa102s的速度会随着您所驾驶的LED灯的长度或数量的延长而变慢。这只是在Python中工作而不是在C中工作的本质。还有一些 已知的效率问题与dotstar库。

读取评估打印循环(repl)

有关读取评估打印循环的说明,或者RePL。它是一个语言外壳,允许您在交互的Python环境中与LumiDrive交互。如果你拔出你最喜欢的串行程序打开它到LumiDrive的COM端口,您会看到以下内容。

显示repl的终端窗口

很难看到?单击图像以更近距离查看。

main.py将运行一个无限的闪烁循环,从框中刷新。简单压榨Ctrl—C中断代码。这里有一个交互式的python环境供您使用。!在这里我们可以做一些有趣的事情,比如数学!

显示数学示例的终端窗口

很难看到?单击图像以更近距离查看。

更重要的是,我们可以在加载到LumiDrive上的Circuit python版本中看到哪些库和管脚可用,使用帮助(模块)迪尔(董事会)命令。

显示帮助模块和目录(板)的终端窗口

很难看到?单击图像以更近距离查看。

如果你看上面写着迪尔(董事会),下面是Circuit python中提供的各种插脚,但并非所有插脚都在板上物理断开。当你完成了在repl中的混乱并准备运行你的lumidrive上的代码时,你可以按CTRL—D这将启动软重启。

资源和进一步发展

需要更多的灵感吗?查看以下部分教程:

红外线控制套件连接指南

如何充分利用红外线控制套件中的红外线接收器和发射器。

LED机器人弹出卡

制作一个带有循环RGB LED的纸电路弹出卡,电池,还有铜带。

Lilypad三色LED连接指南

亚博在线娱乐官网了解如何连接Lilypad三色LED,并在电子纺织项目中使用通用阳极RGB LED。亚博官网
新!

现场Spotify专辑艺术展示

亚博在线娱乐官网了解如何使用ESP32将我们的64x64 RGB LED矩阵面板变成当前Spotify专辑艺术的显示器。

或者查看这些日志: