使用 Raspberry Pi 和 Arduino 的网络控制 LED 动画
组件和用品
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
应用和在线服务
|
关于这个项目
项目概况
Arduino Light Animation (ALA) 是一个 Arduino 库,用于以最少的工作量控制 LED 和运行彩色动画。该库提供了 30 多个预定义动画和多个调色板。有关 ALA 图书馆的更多信息,您可以访问我的博客。
该项目介绍了一个 Raspberry Pi 3 板,它将提供一个网页,允许使用网络浏览器从智能手机或 PC 控制动画、颜色和速度。这是 AlaWeb 运行的简短视频。
此项目所需的组件很少。
- WS8212 RGB LED 灯条 :此灯条包含多个 RGB LED,可以使用单线接口单独寻址,让您可以完全控制每个 RGB LED 的颜色。
- 阿杜诺 :著名的微控制器板将运行我的 ALA 库来驱动 LED 灯条,通过 USB 串行端口接收来自 Raspberry PI 的命令。您可以使用 Arduino Uno、Nano 和 Mega 板。
- 树莓派 :这台小型电脑将提供网页来控制灯光和动画的参数。
如果您熟悉 Arduino 和 Rapberry PI 板,则该项目非常简单。我将项目分为两个步骤,以指导您完成设置过程。
接线
WS8213 LED 灯条非常容易连接。您只需要足够的功率来驱动所有这些 LED。对于非常短的灯带(不超过 10 个 LED),您甚至可以直接从 USB 端口为它们供电,但对于较长的灯带,您必须提供良好的电源。作为起点,我建议使用 Arduino 5V 引脚为 LED 灯条供电,如您在上面的视频中所见。
- Arduino GND 引脚到 WS2812 GND
- Arduino 5V 引脚至 WS2812 5V
- Arduino 引脚 6 到 WS2812 Ctrl/Din 引脚
如果要驱动更多像素,则必须提供更多功率。计算很容易。每个 RGB LED 在全亮白色时消耗 60mA 电流。例如,要以 60 个 LED/米驱动 2 m 长的灯带,您需要一个 5V 电源,提供 2m * 60pixel/m * 60mA =7,2 A。
像这样连接电源、Arduino 板和 WS8212 条。
- 电源 GND 到 Arduino GND 和 WS2812 GND
- 为 Arduino 5V 引脚和 WS2812 5V 供电 5V
- Arduino 引脚 6 到 WS2812 CTRL 引脚
请注意,为 Arduino 5V 引脚供电是为 Arduino 供电,因此您无需将其连接到桶形连接器上的第二个电源。使用此连接方案时要非常小心,因为 5V 引脚绕过稳压器和保护。有关更多详细信息,您可以阅读本指南。
有关 WS8212 LED 灯条接线方案的更多详细信息,请阅读本指南。
Arduino 设置
将 Arduino 板连接到 PC 的 USB 端口。打开 Arduino IDE 并启动库管理器(Sketch> Include Library> Manage Libraries)以安装最新的 ALA 库 .
打开 RgbStripSerial 示例(文件> 示例> ALA> RgbStripSerial)并验证 NUM_PIXELS 常量定义与 RGB 灯条中的 LED 数量相匹配。请记住,如果您要驱动超过 10 个像素,则必须使用改进的连接方案。
您现在可以按 Ctrl+U 将草图上传到您的电路板 从 Arduino IDE 或选择上传 Sketch 菜单中的操作。如果您在上传草图时遇到问题,请在“工具”菜单中检查板类型和端口。
打开 Arduino 串行监视器(工具> 串行监视器),您将看到这样的欢迎消息。
设置右下角的“换行”行并确保波特率设置为 9600。
现在尝试以下没有空格的命令(粗体):
- A=101 - 打开 LED
- A=251 - 运行“larson 扫描仪”动画
- P=2 - 设置彩虹调色板
- A=242 - 另一个动画
很酷吧?
您可以按照这个简短的参考来试验不同的命令和组合:
- A=[动画代码] - 设置动画。 AlaLed.h 头文件中列出了可用的动画代码。
- B=[亮度] - 设置亮度。它必须在 [0-100] 范围内。
- D=[持续时间] - 以毫秒为单位设置动画周期的持续时间。标准值介于 500 和 5000 之间。
- C=[颜色] - 设置颜色。它必须是像 E8A240 这样的十六进制 RGB 表示。
- P=[调色板] - 设置调色板。它必须在 [0-5] 范围内。
现在让我们通过智能手机控制动画。
树莓派设置
在项目的这一部分中,我们将设置 Rapberry Pi 板来运行一个小型网络服务器,以从网络浏览器控制 LED 灯条。请注意,相同的应用程序可以在任何安装了 Python 3 的 PC 上运行。
先决条件是您的 Raspberry PI 已经配置并运行最新的 Raspbian 操作系统(我已经使用 Stretch 对其进行了测试)并已连接到互联网。
我们首先需要使用以下命令为 Python 3 安装几个库:
sudo pip3 安装pyserial Flask
为您的项目创建一个主目录:
mkdir /home/pi/AlaWebcd /home/pi/AlaWeb
将 AlaWeb git 仓库下载到 LightStrip 目录下并解压。
wget https://github.com/bportaluri/AlaWeb/archive/master.zipunzip master.zip
现在所有软件都已准备就绪并进行设置。将 Arduino USB 端口连接到 Raspberry PI。您刚刚下载的 AlaWeb 应用程序将通过 USB 串行连接与 Arduino 板通信。
cd AlaWeb-mastersudo python3 AlaWeb.py
AlaWeb 应用程序将列出所有 USB 串口并尝试自动检测 Arduino。如果它一直循环,中断执行并尝试按如下方式传递端口名称(根据需要替换端口 id):
sudo python3 AlaWeb.py /dev/ttyACM0
如果一切正常,您应该会看到类似这样的内容。
打开 Web 浏览器并连接到显示的 URL。您将看到一个充满按钮的网页,允许您从网络浏览器控制 LED 灯条。
享受!
代码
AlaWeb
AlaWeb 是用 Python 和 Flask 编写的 tini Web 服务器,用于从 Web 浏览器控制动画。https://github.com/bportaluri/AlaWebALA
Arduino Light Animation (ALA) 是一个用于 Arduino 板的库,用于使用 LED 和 LED 灯条简化灯光动画的开发。访问此页面了解更多详细信息:http://yaab-arduino.blogspot.it/p/ala.htmlhttps: //github.com/bportaluri/ALA示意图
制造工艺
- 用三星 SAMIIO、Arduino UNO 和 Raspberry Pi 在几分钟内制作一个火灾探测器
- 带有 Raspberry Pi 和湿度传感器的 Aeroponics
- 使用 Raspberry Pi 和 Python 构建机器人
- 使用 Arduino 和 Raspberry Pi 构建您的 Internet 控制的视频流机器人
- 带视频的树莓派网络控制机器人
- 带有 Arduino 的用于飞行模拟器的 LCD 面板
- 用于 FS2020 的带有 Arduino 的开关/LED 面板
- Arduino 带蓝牙控制 LED!
- Arduino Quadruped
- 使用 Arduino 和 MPU6050 控制伺服电机
- 使用 Bolt 和 Arduino 控制 LED 亮度
- u-blox LEA-6H 02 GPS 模块,带有 Arduino 和 Python