Node-RedからマトリクスLEDで描画したいです



  • お世話になります
    マトリクスLEDを利用するサンプルコードをIBMクラウドのNode-Redから実行
    しようと試みましたが、以下のエラーがでてしまいました。
    "Error: obniz.js require node-canvas to draw rich contents. see more detail on docs"

    よくわからないながらに調べたのですが解決の糸口がわかりません。
    原因、解決方法をご教示ください

    コードはObnizHPのサンプルにあるもので、こちらです↓
    const matrix = obniz.wired("Keyestudio_HT16K33", { vcc:11, gnd:10, sda:9, scl:8 });
    matrix.brightness(7);

    const ctx = obniz.util.createCanvasContext(matrix.width, matrix.height);

    ctx.fillStyle = "black";
    ctx.fillRect(0, 0, matrix.width, matrix.height);
    ctx.fillStyle = "white";
    ctx.font = "9px sans-serif";
    ctx.fillText('Hello World', 0, 7);

    matrix.draw(ctx);



  • @kemichi さん

    obniz.js/ node-red-contrib-obniz 内部で描画関連はnode-canvasというモジュールを使用しています。しかし、このnode-canvasはPCの環境依存が激しく、うまく入らない場合があるため、オプションとして、自分で入れて頂く形をとっております。

    node-redを自分でホスティングしている場合は、 npm install node-canvasを実行してモジュールを追加することで、使用が可能になると思います。

    もし、自分でホスティングしていない場合は、上記コマンドをすることができないと思いますので、canvasを使うことができません。

    その場合は、dots関数のみ使用することができますので、
    そちらで対応いただければと思います

    const matrix = obniz.wired("Keyestudio_HT16K33", { vcc:0, gnd:1, sda:2, scl:3 });
    const dots = [1,2,4,8,16,32,64,128]
    matrix.draw(dots);
    

Log in to reply
 

SUGGESTED TOPICS