本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页

基于 Attiny85 的郁金香壁灯

发布时间:2021-10-12
分享到:

基于 Attiny85 的郁金香壁灯

发布时间:2021-10-12
分享到:

最初的想法是种植一些真正的郁金香,但我不知道怎么做,我只知道制作 RGB 相关的东西,所以我用 3D 打印部件和定制 PCB 制作了这些达尔文混合郁金香的版本。

这个项目的主控是一个 Attiny85,它控制着 49 个 WS2812B LED,每个 LED 都焊接在我制作的分线板上。

我的目标是制作一个漂亮的墙壁装饰灯,看起来像郁金香,我通过在网上找到的郁金香涂鸦来塑造这个形状。

在这篇文章中,我将向你们展示我是如何通过几个简单的步骤制作这个花形灯的。

让我们开始吧!

所需材料

  • 3D 打印部件
  • 叶基 x1
  • 叶盖 x1
  • 茎基 x1
  • 茎盖 x1
  • 花瓣底座 x1
  • 花瓣罩 x1

电子产品

  • RGB LED WS2812B LED x49
  • 定制PCB x 49(PCBWAY提供)
  • 100nf 帽 0603 x49
  • 焊膏
  • 银铜线
  • 焊膏分配器
  • Attiny85
  • IN5399
  • 性能板
  • 直流桶形千斤顶 5mm
  • 5V 1A 充电器

基本理念

所以这就是开始整个项目的图像,我看到了这张图像,我完全被它的简单和简约的布局所震撼。

CAD设计

接下来,我通过将上面的图像导入为画布,然后用样条线标记其轮廓,在 Fusion360 中对郁金香进行建模。

我将整朵花分为三个不同的部分。

  • 花瓣
  • 叶子

每个部件都包含一个基体和一个盖子,盖子是 LED 的扩散器。

在对零件建模后,我导出了他们的 3MF 文件,然后将它们打印在我的 ender 3 上。

3D 打印部件

对于 3D 打印部件,我使用黑色和红色 PLA 作为底座,使用透明 PLA 作为扩散器部件。但是,茎盖上印有黑色 PLA,因为茎不包含任何 LED。

至于我的打印机设置,我使用了 0.5 毫米喷嘴,层高为 0.2 毫米,填充率为 20%。

我在这里使用 Cura 切片机。

3D 打印零件后,我准备了 LED Breakout 板。

印刷电路板设计

至于这个项目所需的PCB,我在这个项目中使用了一个简单的Attiny85驱动电路。Attiny85 D0 引脚将驱动花瓣底座中的 23 个 LED,D1 将驱动叶区域中的 26 个 LED。

一般来说,对于这样的项目,可以设计两块PCB。一种用于花瓣基部,一种用于叶基部。

但由于成本原因,我没有制作这两个 PCB。

这朵花很大,180 毫米 x 150 毫米仅用于花瓣,100 毫米 x 200 毫米用于叶子。如果我制作这两块板,PCB 的整体成本会更高,因此为了降低这个项目的成本,我为单个 WS2812B LED 设计了一个小的多边形 PCB,其中只包含与 100nf 电容器连接的 LED。

 

这是 PIXIE 板,它是一个 WS2812B 分线板,形状像一个多边形。

我的想法是将这个 PIXIE 板放置在花瓣和叶子底座内,然后在银铜线的帮助下,我将每块板的 VCC 和 GND 以及 Din 和 Dout 序列连接在一起。

这就是计划,一个简单的计划。

我首先为这个 PIXIE Board 准备了一个原理图,然后将它转换成一个 Board 文件,然后我准备了一个 14mm x 7mm 长的多边形的基本形状。

在 Polygon 的中心,我将 WS2812B LED 与 100nF 电容一起放置,然后以正确的方式排列 VCC、GND、Din 和 Dout 焊盘。

PCB组装工艺

PIXIE板的组装过程主要包括三个步骤

  • 锡膏点胶工艺
  • 取放过程
  • 热板回流

焊膏

首先,我们将焊膏放在每个元件焊盘上,我使用的是带有焊膏分配注射器的通用焊膏(SN-Pb 比率 63-37)。

取放过程

然后我们将组件一一添加到它们指定的位置。您可以查看每个组件精确位置的示意图。

热板回流

在将组件添加到它们的位置后,我们小心地提起 PCB 并将其放在 SMT 电炉上。

我制作了这个加热板,专门用于制作此类需要 SMD 焊接的项目。

但无论如何,电热板将 PCB 从下方加热到焊膏熔化温度,一旦 PCB 达到该温度,焊膏就会熔化并且所有组件都焊接到它们的焊盘上,

我们小心地抬起这块 PCB 并尽量不要摇晃它,因为焊膏仍在熔化,如果移动太多,组件可能会偏离它们的位置。

我们抬起PCB,然后将其放在较冷的表面上一点,以冷却PCB的热量。

重做49块板子的全过程

要制作所有 49 个板,我们必须为所有 PIXEL 板重做这三个步骤。

所以我准备了剩余的PCB,这花了很多时间和精力,但最终,这就是结果。

接下来,我准备了这个简单的 Arduino + Jumper 设置来测试每个板。

测试设置的接线

PIXEL 板的 VCC 变为 5V
地对地
和 PIXEL Board 的 Din 到 Arduino Nano 的 D3
测试设置代码

我将上面的草图添加到板上,并逐个手动测试每个板,在确保每个 PIXEL 都正常工作后,我开始了组装过程。

连接示意图

我首先将第一个 PIXEL 的 Dout 连接到 Second board 的 Din,然后将第二个板的 Dout 连接到第三个板的 Din,然后将第三个的 Dout 连接到第四个的 Din,这样的列表不胜枚举。
然后在此之后,我也连接了所有的 VCC 和 GND。
我主要使用银铜线和 LED 和电阻器上的剩余切口,这些都是我在这样的时刻收集的。

接下来是准备花瓣部分,我必须做与以前相同的过程,结果是这个花瓣底座带有密集的 LED 和许多电线。

现在,在焊接银铜线之后,我使用之前用来检查每个 PIXIE 板的 Arduino Nano 设置测试了 Leaf 和 Petal。

  • 我将 RGB 的 VCC 连接到 5V
  • 地对地
  • 和 Din 到 Nano 的 D3
  • 代码将保持与上次相同,我们只需要更改 LED 的数量,叶子为 26,花瓣为 23。

3D 打印零件组装

接下来,我将花瓣、茎、叶的所有底部部分收集起来,然后在强力胶的帮助下将它们组合在一起。

我先用强力胶将花瓣与茎连接,然后将茎的另一端连接到叶子。

总共有两个关节用强力胶粘在一起。

将所有三个部分粘合在一起后,我们得到了一个巨大的单一郁金香,里面包含 RGB LED。

选择合适的微控制器来驱动 LED

这个项目的大脑是强大的 Attiny85 MCU。

在之前使用的 Arduino nano 上使用 Attiny85 的原因实际上非常简单。成本和过度杀伤。

与 Arduino Nano 板相比,Attiny 成本非常非常低。

此外,在这个项目中,放置电路的空间是一个问题,Arduino 板将需要更多空间。此外,只使用了两个数字引脚,所以为什么要选择一个带有 13 个引脚的微控制器,它只会闲置。

为了简单易用,我选择 Attiny85,这是一款低功耗 Microchip 8 位 AVR?基于 RISC 的微控制器结合了 8 KB ISP 闪存、512B EEPROM、512B SRAM。

它有六个 IO 端口,工作电压在 2.7-5.5 伏之间,非常适合我们的应用,即从 D0 和 D1 引脚驱动两条独立的 WS2812B LED 线。

我根据下面的示意图准备了一个简单的 Perf 板设置。

为了插拔电路上的Attiny85,为了方便,我添加了一个DIP8 Socket。

这里的想法是在将 Attiny85 放入 IC 插座之前对其进行闪存,如果将来我想更改代码,我可以将 IC 从其位置移除并对其进行闪存,然后再将其重新安装。

使用 Arduino 作为 ISP 编程器的烧录过程

至于刷机过程,我们不能通过任何USB直接对ATTINY85进行编程,我的意思是有一种直接从USB端口对Attiny进行编程的方法,但我没有这样做。

相反,我将使用 ISP 闪存方法,该方法将利用 attiny85 的 SPI 引脚在其中烧录引导加载程序,然后烧录。

在 Arduino IDE 上安装 Attiny13 内核

在开始刷机之前,我们首先需要在 Arduino IDE 中下载并安装 Attiny85 Core 文件。

编程过程使用 VCC、GND 和四个数据引脚。三个引脚连接编程微和目标微之间的 MISO、MOSI 和 SCK,编程微的第四个引脚连接到目标的复位引脚。

按照上述方式将 Attiny85 与 Arduino 连接起来。(同样在将 ISP Sketch 上传到您的 Arduino 后,不要忘记在您的 Arduino 板的重置和 GND 引脚之间添加一个 10uf 电容)

我不会使用 Arduino UNO 和面包板来完成这项工作,而是使用我的 DIY Attiny Programmer,它是我为闪存 Attiny 或 Atmega MCU 而制作的。

  • 在上面的接线配置中将开发板连接到 Arduino 作为 ISP 设置
  • 选择正确的端口,正确的编程器(Arduino 作为 ISP),然后点击 Burn Bootloader
  • 等待几秒钟,您将完成刻录引导加载程序消息。
  • 现在打开要上传到此 Attiny 的草图
  • 转到 Sketch 菜单并选择使用编程器上传。
  • 并且您的 Sketch 将上传到 attiny85。

另外,因为我使用的编程器有 DIP 插座,我只需将 MCU 插入其中并在其中闪烁代码,然后移除 MCU。

现在在用主代码烧写 MCU 之后,我在主电路上添加了 Attiny85 并开始了这个项目的最后布线过程。

最终接线

这是整体设置的主要接线图。

这里的目标是将 Attiny85 的 VCC 连接到 LED 的 VCC,GND 连接到 GND,D0 连接到 Petal 的 RGB Din,D0 连接到 Leaf 的 RGB Din。

另外,为了给这个设置供电,我使用了一个通用的 Barrel Jack 连接器。

我在 Barrel jack 和 Attiny85 的 VCC 之间添加了一个 IN5399 二极管,并将其 GND 连接到 Attiny85 的 GND。

在此之后,接线完成,现在我们在所有三个主体上盖上盖子并将此设置挂在墙上。

能量源

至于电源,我使用了一个 5V 1 A 充电器来为这个设置供电。

此设置仅包含 49 个 RGB LED,每个 LED 消耗的电流非常小,因此 1A 充电器可以正常工作而不会出汗。

至于所需的改进,我必须准备一个全尺寸的叶子和花瓣PCB。

为了节省成本,我为单个 WS2812B LED 准备了一个小型分线板,该设置确实有效,但由于 VCC GND 和 Din-Dout 焊盘的手动焊接而难以制作。

明智的选择是为这个项目获得一个大尺寸的 PCB,它们会花费更多,但我们不必做这个项目所需的多余布线。

此设计所用到的一些代码

如果您对此项目有任何想法、意见或问题,请在下方留言。

加入微信技术交流群

技术交流,职业进阶

关注与非网服务号

获取电子工程师福利

加入电路城 QQ 交流群

与技术大牛交朋友

讨论