背景
STマイクロ社のレーザー距離センサVL53L0XをNode-REDで制御できるようにしたいと思い,調べた結果,既にそのようなノードが作られていましたので,その方法をここに記しておきます.
環境
- OS: Raspbian Buster with desktop and recommended software February 2020
- ハードウェア: Raspberry Pi zero WH (おそらく他のRaspberry Piでも大丈夫だと思われます)
- Node-Red: v1.0.3
- Node: v10.15.2(←このバージョンはかなりシビア.より高いバージョンにすると動かなくなることが多かった)
設定
VL53L0Xを制御するノードを追加する方法は,大きく分けて2つです.一つはnode-REDのパレット管理機能を使うもの,もう一つはGitHubからソースをダウンロードしてきてnpmでビルドするものです.それぞれについて説明します.
パレット管理機能を追加うもの
こちらの方が簡単に行えると思いますが,NodeやNode-REDのバージョンが合わないとうまくいかないことが多いみたいです.ここでは前述の環境で行いました.まずは下図のようにブラウザ右上にある三本線のところをクリックし「パレットの管理」を選択します.
次に,現れたダイアログの上の方にある「ノードを追加」タブを選択したのち,検索文字として「vl」を入力するとnode-red-contrib-easybotics-vl53l0xが現れますので,ノードを追加ボタンを押してください.
追加しようとすると,下のような警告が現れますが,気にせず追加を押してください.以上で終わりです.
ソースからダウンロード
パレットの管理機能でうまく追加できればいいのですが,Nodeのバージョンなどが異なるなどの理由から正しく追加されないことがあります.その場合には下記のように,ソースコードからインストールしてください.はじめに,GitHubに登録されているnode-red-contrib-vl53l0xからダウンロードしてきます.
コンパイルをする時,スーパーユーザでないとうまくいかなかったため,下記のようにスーパーユーザになります.
% sudo su -
次に,先ほどダウンロードしてきたmaster.zipファイルをスーパーユーザのホームディレクトリへ移動します.ここでは,master.zipがpiユーザのホームディレクトリにあることを前提にしています.
# mv ~pi/master.zip .
master.zipファイルを解凍します.
# unzip master.zip
解凍すると,node-red-contrib-vl53l0x-masterディレクトリができるはずです.このディレクトリに移動します.
# cd node-red-contrib-vl53l0x-master
移動したらコンパイルします.
# npm install
作られたノードをpiユーザが使えるようにするため,下記の場所へディレクトリをコピーします.
# cd ../ # cp -R node-red-contrib-vl53l0x-master/ ~pi/.node-red/node_modules/
最後にNode-REDを再起動します.
# node-red-restart