Pilot your rgb led matrix with Nodejs on Raspberry Pi ! Nodejs binding of rpi-rgb-led-matrix library https://github.com/hzeller/rpi-rgb-led-matrix
PROJECT NOT MAINTAINED ! :(
If you want to see a better and up to date project go to https://github.com/easybotics/node-rpi-rgb-led-matrix
This repository probably will not work with recent nodejs version.
This repository is probably not binding recent version of rpi-rgb-led-matrix library.
NOTE: node-rpi-rgb-led-matrix should work across Node.js versions 0.8, 0.10, 0.12, 4 and 5 as it uses Native Abstractions. HOWEVER there is a problem with the Node.js version 0.10.29 packaged with Raspbian Jessie 2015-11-21 which breaks Native Abstractions. The easiest fix is to make a minor edit to your v8.js file; this and other solutions outlined on this Raspberry Pi Forum post.
$ npm i node-rpi-rgb-led-matrix
$ git clone --recursive https://github.com/zeitungen/node-rpi-rgb-led-matrix.git
$ cd node-rpi-rgb-led-matrix
$ npm i
var LedMatrix = require("node-rpi-rgb-led-matrix");
//init a 16 rows by 16 cols led matrix
//default hardware mapping is 'regular', could be 'adafruit-hat-pwm' ect
var matrix = new LedMatrix(16, 16 );
matrix.fill(255, 50, 100);
matrix.setPixel(0, 0, 0, 50, 255);
- Constructor: LedMatrix(rows, cols, chainedDisplays, parallelDisplays, hardware-mapping)
default values are
rows=32
,cols=32
,chainedDisplays=1
,parallelDisplay=1
,hardware-mapping=regular
- getWidth() return current led matrix width
- getHeight() return current led matrix height
- fill(red, green, blue) fill the led matrix with color specified
by
red
,green
andblue
.red
,green
andblue
must be between0
and255
- setPixel(x, y, red, green, blue) set the color pixel at the position
x
,y
with color specified byred
,green
andblue
.red
,green
andblue
must be between0
and255
.x
must be between0
andgetWidth()
.y
must be between0
andgetGeight()
- clear() reset the led matrix display (shut down all leds)
You can add specific defines for the rpi-rgb-led-matrix compilation.
You have to modify the binding.gyp
file. In the rpi-rgb-led-matrix
target add defines
array like this:
...
{
"target_name": "rpi-rgb-led-matrix",
"type": "static_library",
"sources": ["external/matrix/lib/bdf-font.cc",
"external/matrix/lib/framebuffer.cc", "external/matrix/lib/gpio.cc",
"external/matrix/lib/graphics.cc", "external/matrix/lib/led-matrix.cc",
"external/matrix/lib/thread.cc"],
"libraries": ["-lrt", "-lm", "-lpthread"],
"defines": ["RGB_CLASSIC_PINOUT", "ONLY_SINGLE_CHAIN"],
"include_dirs": [ "external/matrix/include" ],
"direct_dependent_settings": {
"include_dirs": [ "external/matrix/include" ]
}
}
...
You have this defines possibility:
INVERSE_RGB_DISPLAY_COLORS
SHOW_REFRESH_RATE
RGB_SLOWDOWN_GPIO=1
orRGB_SLOWDOWN_GPIO=2
ADAFRUIT_RGBMATRIX_HAT
ADAFRUIT_RGBMATRIX_HAT_PWM
RGB_CLASSIC_PINOUT
ONLY_SINGLE_CHAIN
Look at rpi-rgb-led-matrix Makefile for more details of this defines.
Don't forget to recompile:
$ cd /path/to/node-rpi-rgb-led-matrix
$ node-gyp build
or run npm i
.