2019年03月23日

NodeJS Portableで気軽にNode-Redを始める方法

Windows環境でNode-Redを使用する場合、DockerやUbuntuをVM上で動作させて使用することが多いと思います。
ただ、初心者にとってDockerの設定、VM導入は少し敷居が高いです。

WindowsにNodeJSを直接インストールしてNode-Redを使用することもできないことはないですが、UnixベースのOSでNodeJSが開発されていることもありうまくインストールできないことが多々あります。また、PC毎にインストール作業が必要で構築に労力を要します。


ここで紹介するのはNodeJS Portableを活用する方法です。
NodeJS Portableはその名の通り、Portableなので
一度、Portable版でNode-Redをインストールすれば、
そのフォルダ毎コピーで別のPCでも動きます。

フォルダで管理することができるため、
同じPC上でもバージョンやアプリケーションごとに分けて
フォルダ管理するということも可能です。


■NodeJS PortableにNode-Redを導入する手順
@NodeJS Portableをダウンロードする

AダウンロードしたNodeJS Portableを実行し、
NodeJS Portableフォルダを生成する
※注意点としてNodeJS Portableフォルダは浅いディレクトリで実行してください
フォルダの階層が深いとファイル生成に失敗する可能性があります。
例:C:\Users\XXXXの直下にフォルダを生成する XXXXはユーザー名

BNodeJSをダウンロードする
デフォルトのNodeJS Portableはv5.7.0でNodeJSのバージョンが非常に古いです。
そのままではNode-Redがインストールできても実行できません。

今回はNodeJSサイトからnode-v8.15.1-win-x86.zip をダウンロードしました。
なお、デフォルトのNodeJSがx86のため、同様にx86版のv8を選択しています。

Cnode-v8.15.1-win-x86.zipを解凍する

DNodeJSの置き換え
\NodeJSPortable\App\NodeJS内のnode.exeを削除し、先ほど解凍したnode-v8.15.1-win-x86内のnode.exeに置き換えてください。

また、\NodeJSPortable\App\DefaultData\node_modules内のnpmフォルダを削除し、先ほど解凍したnode-v8.15.1-win-x86.zip\node-v8.15.1-win-x86\node_modules内のnpmフォルダに置き換えてください。

ENodeJSPortable起動
\NodeJSPortable内のNodeJSPortable.exeを実行します。
コンソール画面が表示され、置き換えしたNodeJSバージョンが表示されれば置き換え成功です。


node.jpg

NodeJS Portableのデフォルトはv5.7.0ですが、
置き換えをしてv8.15.1と表示されています。

FNode-Redインストール
npm install -g --unsafe-perm node-redと打ち込んでインストールします。
数分でインストールが完了します。

GNode-Red起動
node-redと打ち込んでEnterで実行されます。

初回は下記のようにファイアウォールの設定が自動で表示されます。
「アクセスを許可する」をクリックしてください。

firewall.jpg

起動に成功すると下記のようにNode-Redのコンソールが表示されます。

node-red2.jpg

HNode-Redにアクセス
ブラウザ(FirefoxもしくはChrome、IEは非推奨)から下記のアドレスにアクセスします。

お馴染みの画面が表示されればあとはNode-Red三昧です。

node-red3.jpg


I終了する
コンソールウインドウを閉じるか、
Ctrl+cを押してy、exit、yで終了させてください。

■NodeJS Portable固有の情報
・インストール時にnode-gyp系のエラーがでる場合は
WindowsのビルドツールPython2をインストールしてください。

・置き換え後にNode-Redのインストールに失敗する場合、先にNode-Redをインストールしてからnode.exeを置き換えして起動させてください。

・フローの保存場所について
\NodeJSPortable\Data\.node-red内のflows_XXXX.jsonが作成して保存されたフローです。XXXXにはPC名が入ります。
他のPCであらかじめ作成したフローを開く場合はXXXXを動かすPCのPC名に書き換えてから起動させてください。

・NodeJSPortableはSerial Port Nodeを使用することができます。
 DockerやVMのNode-RedではUSBデバイスやシリアルノードを使用することが簡単にはできません。
NodeJSPortable版は簡単にUSB Serial等をNode-Redから操作できます。
これは組込系の機器と連携することができるため、非常に魅力的です。

・デプロイがうまくできなくなってしまう場合やNode-Red画面の応答がない場合、コンソール画面でEnterキーを連打して溜まったログを出力させてください。


posted by Crescent at 00:00| Comment(0) | ナレッジ | このブログの読者になる | 更新情報をチェックする

2019年03月16日

組込ソフトウェア開発で便利なマクロ

今回は組込ソフトウェア開発で便利なマクロを簡単に紹介します。

まずはビルド管理に便利なマクロ、
__DATE__と__TIME__です。

例えば起動時に下記のコードを仕込んでおけば
ビルド時にビルド日時が埋め込まれます。
printf("Build: %s %s \n\r",__DATE__, __TIME__);

例えばシリアルから出力すると下記のようになります。
Build: May 6 2019 13:56:47

自動でビルドの度に埋め込まれるため、
ビルド管理やファームウェアバージョン管理が容易になります。



続いてエラー処理等で便利なマクロ、
__FILE__、__FUNCTION__、__LINE__です。

エラーは発生した際にこれらのマクロを使用するとエラーの出た処理が記述されたファイル名、関数、何行目か出力することができます。

printf("ERR-> File: %s Func: %s Line: %d\n\r",__FILE__,__FUNCTION__, __LINE__);

例えばシリアルから出力すると下記のようになります。
ERR-> File: ../Src/main.c Func: main Line: 264

これらのマクロを仕込むことでデバッグがし易くなります。
posted by Crescent at 00:00| Comment(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする

2019年03月09日

アンプ内蔵アナログ出力MEMSマイク変換基板

以前からアナログ出力MEMSマイク変換基板を販売しておりましたが、
アンプを内蔵しておらず、外部で別途アンプが必要でした。

外付けアンプの場合、拾う音の対象に応じてアンプのゲインを変えて対応できるというメリットはありますが、回路が別途必要となるのが面倒でした。

そのため、現在のラインアップに加えて、アンプ内蔵アナログ出力MEMSマイク変換基板を設計してみました。


img1.jpg


img2.jpg



デフォルトではアンプゲインを約50倍に設定しています。
大きな音の場合は飽和する場合がありますが、部屋の音などを拾う分にはちょうどよいゲインに設定しました。
また、出力中立電圧を電源電圧/2に設定しました。
アンプ内蔵のため、Arduinoといったマイコンのアナログ入力(ADC)にそのまま接続することが可能です。

もし、拾う対象の音が大きく、出力が飽和してしまう場合はゲインのR4をデフォルトの500kohmから例えば100kohmにすれば、ゲイン約10倍となります。1608サイズの抵抗を使用してください。

基板のサイズ、固定穴径はこれまでのアナログ出力MEMSマイク変換基板と同じにしています。


設計に問題なければ1個2000円弱程度で販売開始予定です。
詳細についてはこちら
posted by Crescent at 00:00| Comment(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする

2019年03月02日

RFID機能付きEEPROMモジュール

今回は以前に紹介したRFID機能付きEEPROMのモジュールを紹介します。

STから販売されている「Dual Interface EEPROM」は一般的なEEPROMのI2Cインタフェースに加えて、RFIDのアンテナ端子も付いています。
つまり、EEPROMにI2CとRFIDの2つの通信で内部のデータにアクセスできます。

更に面白いのはRFIDの通信の場合はEEPROMに電源を供給せずともRFIDの電波でそのままパッシブにEEPROMが動作する点です。
RFIDの電波でパッシブで動作するため、マイコンの電源を入れなくともデータの読み書きができます。

このRFID機能付きEEPROMにアンテナとGroveコネクタを接続したモジュールを設計、作成してみました。


img1.jpg


現在、量産前の試作検討をしており、問題なければ春頃、どこかで1個1500円程度で販売開始予定です。
詳細情報はこちら
posted by Crescent at 00:00| Comment(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする