PixelNode 是一个基于 Raspberry Pi 和 LED 灯带搭建的硬件实现平台,用于开发新奇有趣的光电互动艺术项目,其像素点串口通信采用 SPI / GPIO 方案。
在这篇文章中,我们将介绍 npm 包 pixelnode-driver 的使用教程,这个包提供了一个帮助你轻松控制 PixelNode 特性的 JavaScript API。
安装
要安装 pixelnode-driver,你首先需要创建一个新的 Node.js 的项目。打开命令行终端,输入以下命令,创建一个名为 my-pixelnode 的项目:
- ----- ------------ - -- ------------ - --- ---- --
在项目根目录下,运行以下命令安装 pixelnode-driver:
- --- ------- ----------------
使用
pixelnode-driver 提供了一些简单易用的 API 来控制 PixelNode 的操作。你首先需要导入这个包:
----- --------- - ----------------------------
然后,你可以用以下代码创建一个新的 PixelNode 实例:
----- --------- - --- ----------- ------------ -------------- ----- --- ----- ---------------------- ---
PixelNode 构造函数接收一个包含以下属性的选项对象:
color_order
: 它可以是 PixelNode.RGB、PixelNode.GRB 或 PixelNode.BRG(表示像素的 RGB 颜色序列)。默认为 PixelNode.RGB。leds
: 要控制的 LED 灯的数量。默认为 0。type
: 灯带的型号。应该是 PixelNode.TYPE_WS2812B 或 PixelNode.TYPE_APA102。默认为 PixelNode.TYPE_WS2812B。gamma
: RGB 颜色空间的 gamma 矫正值。默认为 2.8。fps
: 指定每秒钟更新像素的速率。默认为 60。
另外,还有两个可选参数,用于 SPI 线的设置:
spi_device
: SPI 设备的路径。例如,/dev/spidev0.0
,默认为/dev/spidev0.0
;spi_speed_hz
: SPI 速度,以 Hz 为单位。默认为 8000000。
创建 PixelNode 实例后,你可以使用 setPixel()
方法设置每个像素的颜色,使用 update()
方法来更新所有像素的颜色:
--- ---- - - -- - - ------------------------ ---- - --------------------- - -- ---- -- -- -- - --- - -------------------
setPixel()
方法的第一个参数是像素编号,第二个参数是包含 r、g 和 b 的对象,表示对应像素的颜色值。这些值应该在 0 到 255 之间。
注意,setPixel()
方法是零基索引的,所以第一个像素的索引是 0。
示例
这里有一个简单的示例,它显示了一些闪烁的红色和黄色的 LED。它会不停地闪烁直到你按下 Ctrl + C
。
----- --------- - ---------------------------- ----- --------- - --- ----------- ------------ -------------- ----- -- ----- ---------------------- --- -------- ------- - --- ---- - ------ -------------- -- - --- ---- - - -- - - ------------------------ ---- - --------------------- - -- ---- - --- - -- -- ---- - --- - -- -- - --- -- -- - - --- -- - --------------------- - -- ---- - --- - -- -- ---- - --- - -- -- ---- - --- - - --- - - ------------------- ---- - ------ -- ----- - --------
总结
在这篇文章中,我们介绍了如何使用 pixelnode-driver 这个 npm 包来控制 PixelNode 灯带。我们讲解了包的 API 和用法,并提供了一个简单的示例来演示其使用方法。PixelNode 是一个非常有趣的硬件项目,它可以用于创造出新奇别致、富有创意的光电互动艺术作品,希望这篇文章对大家有所帮助。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/80181