Flaschenode 是一个基于 Node.js 的 npm 包,用于控制灯带上的 LED 灯珠,支持通过网络发送信息到 LED 灯串上,从而实现有趣的 LED 光特效。本文将详细介绍 flaschenode 的安装与使用,以及一些实用技巧。
安装 flaschenode
在使用 flaschenode 之前,你需要先安装 Node.js。安装完成后,使用 npm 命令来安装 flaschenode:
npm install flaschenode
flaschenode 的基本用法
在安装完 flaschenode 后,我们可以用以下代码来测试 flaschenode 是否正常运行:
const Flaschenode = require('flaschenode'); const fn = new Flaschenode('http://<flaschen server ip>:<port>'); fn.fill(255, 255, 255);
其中,http://<flaschen server ip>:<port>
是你的 flaschenode 服务器地址,在使用 flaschenode 的时候,需要将这个地址传入 Flaschenode 类的构造函数中,表示将数据传输到该地址上。
在上面的代码中,fn.fill(255, 255, 255)
表示向 LED 灯串上发送全部点亮的信息,对于一个 LED 灯串而言,其每个点对应一个 RGB 颜色,所以这里设置的是 RGB 为 255,255,255,即表示将 LED 灯串全部点亮。
在 flaschenode 上显示静态图像
除了直接使用 fill() 方法填充颜色,也可以使用图像来显示在 LED 灯串上。具体操作如下:
- 准备好要显示的图片,确保图片大小小于 LED 灯串的像素大小。
- 使用 Sharp 将图片转换为对应的 RGB 矩阵。
- 使用 setMatrix() 方法将矩阵传输给 LED 灯串。
代码示例:
-- -------------------- ---- ------- -- -- ----- ----- ----- - ----------------- -- -------- ------------------ ----------- --- ------ --------------- ------- -- - -- ----- ----- ---- -- ---- ----- ------ - --- --- ---- - - -- - - ------------- - -- - -- -- - -------------------- - --- -------- - - - --- -------- - - - ---- - -- ---- ----- -- - --- ----------------------------- ------ ------------- --------------------- ---
其中,resize(64, 64)
表示将输入图片大小调整为 64 * 64 的大小,可以根据实际需要进行更改。raw()
表示将图片转换为 raw 格式(连续行的 RGB 像素三元组),以便生成对应的 LED 灯串矩阵。toBuffer()
方法的回调函数中,我们将每个 RGB 像素三元组 push 到一个一维数组中,最终将这个一维数组传输到 LED 灯串上进行显示。
在 flaschenode 上显示动态视频
除了能够显示静态图片,flaschenode 还可以在 LED 灯串上显示动态视频。下面介绍一下如何使用 flaschenode 显示动态视频:
- 使用 mp4box-js 将视频分解为帧,分别使用 Sharp 将每一帧转换为对应的 RGB 矩阵。
- 使用 fill() 方法将矩阵传输到 LED 灯串上,以实现动态视频的显示。
代码示例:
-- -------------------- ---- ------- -- -- --------- ----- ------ - ------------------ -- ---- ----- --------- - ------------ -- ----------- ----- ----- --------- - ----------------- ------ ------------ -- ------ ---------------------- -------- -- - ----- ---------- - --------------------- -- ------- ----- ------ - -------------------------------------------- -- ------------- ----- ---------- - ------------------ -- - -- ------- ---- -- ----- --------- - ------------------------- ------ -------------- ------------ ------ ---------- --- -- --------------- --- ----- - -- -------------- -- - ----- -- - --- ----------------------- -- --------- --- --- -------------------------------- ----- - ------ - -- - ------------------ -- ---- - ---- -- -------- ---
总结
本文介绍了 flaschenode 的基本用法,包括在 flaschenode 上显示静态图像和动态视频,希望对大家有所帮助。flaschenode 还有很多其他的高级用法和实用技巧,欢迎大家进一步了解和使用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600672563660cf7123b3636a