风筝
发表于: 2019-1-13 22:19:04 | 显示全部楼层

在本篇文章中,我们将介绍如何使用WiFi无线控制营造酷炫的火焰模拟效果。可以随时安装一款漂亮的移动应用程序(适用于Android智能手机)与您的创作一起玩!我们还将使用Arduino开发板和ESP8266来控制火焰。在本文结束时,您将学习到:

●    NeoPixels是如何运作的。

●    如何通过wifi编程ESP8266和控制变量

●    如何使用Neopixels创建酷炫的火焰效果


Neopixels简介

可单独寻址的LED或通常称为Neopixles已经存在很长一段时间了,您可能已经了解过它们,但是,如果您不了解,它们就像普通的RGB LED一样,顾名思义,每个LED的颜色可以单独处理,允许制作无限的炫酷模型和动画。对于WS2812b,您只需要3根电线,2根用于电源,1根用于数据。这意味着你只需要一个Arduino引脚来控制大量的LED!


在本篇文章中,我们将使用这些智能LED来产生火焰效果。为了控制LED,我们将使用FastLED库。我们将使用Mark Kriegsman编写的库的Fire2012草图示例。我们使用6条LED,每条LED有30个LED(总共180个LED)我们将这些LED粘在一块PVC管上并将它们放在玻璃圆筒中(这些玻璃圆筒通常用作花瓶)。我们必须扩散LED的光线以使它们看起来连续,为此我们使用描图纸让光通过并漫射光。

rgb-led-strip-neopixels-ws2812b.jpg


所需的组件

●    ESP8266串口WIFI Witty Cloud开发板

●    Neopixels智能LED灯条(60LED / m带)

●    逻辑电平转换器

●    21厘米40P公对母跳线

●    PVC管60cm尺寸

●    描图纸

●    玻璃圆筒

play_with_fire_required_materials.jpg


制作过程

首先我们需要一个合适的玻璃圆筒,我们的圆筒长60厘米,直径12厘米。


如果你能找到玻璃圆筒,但是如果它是透明的玻璃,你可以使用描图纸覆盖圆筒表面(内表面或外表面),描图纸可以很好地散射光线并产生良好的效果。


得到一个玻璃圆筒测量其内部长度,然后切割PVC管,使其适合圆筒内。我们的玻璃圆筒高度为60厘米(不包括底座,内部长度为59厘米),因此我们将PVC管切割成59厘米。你会在这根管子上贴上LED灯条,直径4cm的管子就是完美的。


接下来我们必须将我们的LED灯带切割成6个相等的部件,在这里我们使用60LEDs / m密度条(如果你愿意,可以使用更高的密度以获得更好的效果)我们使用6个50cm长度,这意味着我们需要3米。将六个长度均匀地围绕PVC管道并将条带粘在管道上。这是它应该是什么样子。

play_with_fire_assembling-1.jpg play_with_fire_assembling-2-400x267.jpg


将LED灯条连接在一起,您可以根据下图直接将电线焊接到灯条上,或者首先将焊接引脚焊接到灯条上,然后使用面包板电线连接它们。

play_with_fire_schematic.jpg


当所有LED灯条焊接完成后,您必须将管道放入圆筒内。为了使管内的管道居中,可以使用泡沫切割圆形,该圆形的外径等于玻璃圆筒的内径,内径等于PVC管的外径。为管道的每一侧准备其中两个。将这些部件连接到末端,然后将管子轻轻地放入气缸内。


代码

我们使用Arduino IDE进行编码并上传到ESP8266。如果要在SPIFFS上传控制器软件文件,则必须使用具有3MB SPIFFS的ESP8266的电路板。 SPIFFS是“Serial Peripheral Interface Flash File System(串行外设接口闪存文件系统)”的缩写,您可以将控制器文件上传到该存储器,以便从该位置提供文件。通过执行此操作,您可以打开浏览器(在手机或笔记本电脑上)并转到ESP的地址(默认为192.168.4.1),您将在浏览器中获得控制器界面,而无需安装应用程序,如果您拥有iPhone或iPad这是您唯一的选择。


将以下草图上传到ESP板上。我们需要FastLED库,所以如果你还没有(首先可以在这里下载),首先将它添加到你的Arduino IDE中。火焰模拟代码是Mark Kriegsman的fire2012草图,您可以在示例中找到它。这个例子是针对一个led的条带,但是,在这里我们修改了代码以使用可变数量的条带。条带/ LED的数量越多,效果越大。


在示例文件中清楚地描述了火焰模拟的逻辑。如果您想知道它是如何工作的,请阅读示例的源代码。 main.rar (2.34 KB, 下载次数: 54)


要控制火的“外观和感觉”,可以使用两个变量:SPARKINGCOOLING,您可以在上传到SPIFFS的控制器软件或您可以下载的Android应用程序中动态控制。你也可以在这里控制FPS。

play_with_fire_app-1.jpg


火的颜色由调色板控制,调色板也可通过控制器软件改变(通过4色停止)。只需单击/点击表示颜色停止的每个颜色圆圈以设置颜色,然后将颜色点击设置为接近关闭对话框并查看更改。

play_with_fire_app-2.jpg


如何上传到SPIFFS?

要首先使用Arduino IDE将文件上传到SPIFFS内存,您需要在草图文件夹中创建一个名为“data”的文件夹,并将要上传的所有文件放在该文件夹中。此处上传的文件包含草图和此文件夹。


接下来,您需要Arduino的Arduino ESP8266文件系统上传插件。按照其Github页面上的说明安装插件。安装后,您将在tools菜单下找到ESP8266 Sketch Data Upload 。将您的ESP置于编程模式并单击它。请耐心等待文件上传,这可能需要一段时间。注意:将“上传速度”设置为921600以使其更快。

play_with_fire_app-3.jpg


它是如何工作的?

上传到ESP8266板上的草图在其上创建了一个Web服务器,它响应从应用程序发送的请求。该应用程序只是将GET请求发送到服务器(ESP8266)。用于创建调色板的颜色数据在get请求中作为参数发送,对于其他参数(例如Sparking和Cooling参数)也是如此。


例如,要设置亮度,应用程序会发送以下请求

http://192.168.4.1/conf?brightness=224


草图中有一个处理程序,当获取此请求时设置亮度。查看代码以了解更多信息。


Android应用

Android应用是使用Phonegap创建的。这项技术允许您使用Web技术(HTML、CSS、Javascript)创建跨平台移动应用程序。您可以从以下链接获取源代码。 Flame_Android_App(source).rar (528.53 KB, 下载次数: 46)

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 705 | 回复: 1492



手机版|

GMT+8, 2024-11-24 08:17 , Processed in 0.047164 second(s), 8 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表