←Part.08【Node-RED入門-08】カメラプラットフォームキットを動かす
→Part.10【Node-RED入門-10】キーボードでKeiganMotorを動かす

■全記事一覧→Node-REDまとめ

今回の内容

今回は パレット のRaspberry Pi用ノードであるrpi mouseノードを使用し、マウスでKeiganMotorを動かします。
また、 パレット に存在しない ノード を追加する方法や、 ノード がどのような情報を出力しているかが確認できるdebugノードの機能も解説します。

※カメラを滑らかに動かす方法は【こちら】を参照

1.ノードを追加・更新・削除する
2.rpi mouseノードの設定を行う
3.debugノードを設定する
4.右・左のクリックで異なる動きを設定する
5.実際にKeiganMotorを動かす

マウスで動かすメリット

 ■入手しやすい

前回の【Node-RED入門-8】でご紹介した物理ボタンは開発等には便利ですが、紛失した場合すぐに替えが用意できない場合があります。
その点マウスは家電量販店で購入でき、PCで使用しているマウスを仮使用することもできます。

 ■多くの人が使用しやすい

物理ボタンは赤色・黄色・緑色と色分けされていますが、色覚特性を持ち色を判断しにくい方には最適ではありません。
公共の場で不特定多数の方が利用する汎用アプリケーションを作る場合などは、マウスの方が適している場合があります。

debugノードの主な利用方法

debugノードは新しい ノード を追加した場合の動作チェックや、上手く動作しないフローに接続して原因を調査する上で便利です。

ノードを追加・更新・削除する

Node-REDの パレット に新しい ノード を追加する方法や既存のノードを更新・削除する方法を解説します。

どちらの場合も画面右上のハンバーガーメニューから パレットの管理 を選択することで行うことができます。

ノードを追加する

ノードを追加する場合は ノードを追加 タブをクリックし、「ノードを検索」のテキストボックスに文字を入力してください。

※今回使用するrpi mouseノードは「node-red-node-pi-gpio」に含まれていますので、 パレット にノードが無い場合は上記を検索し追加ください。

パレットにあるノードを更新・削除する

パレット にあるノードを更新・削除する場合、 現在のノード タブをクリックすることでノードの一覧が表示されます。
(ノードのバージョンが更新されている場合は、更新ボタンが表示されます)


ノードは「削除」ボタンをクリックして削除できますが、 ワークスペース にそのノードを配置している場合は「使用中」と表示され削除ができません。
その場合、 ワークスペース の該当ノードを全て削除した後で再試行してください。

rpi mouseノードの設定を行う

rpi mouse ノードは、KeiganPi(Raspberry Pi)のUSB端子に接続したマウスのボタンを押すと1、ボタンを離すと0の文字列を出力します。
プロパティで設定可能なボタンは以下の通りです。

right   マウスの右ボタンを押すと反応
left   マウスの左ボタンを押すと反応
middle  マウスの中央ホイールボタンを押すと反応
any   マウスのいずれかのボタンを押すと反応


実際にその数字が出力されていることを確認するには、次項で解説するdebugノードを使用します。

debugノードを設定する

debug ノードは”デバッグ”の名前通り、フローの動作確認やバグのチェックに役立ちます。

debug ノードの設定方法

debugノードが受け取った情報は、プロパティの設定でそれぞれ以下の通り確認できます。

デバッグウィンドウ 後述するデバッグウィンドウに表示
システムコンソール 外部コンソール等に情報を表示
ノード状態(32文字)そのdebugノードの下部に最大32文字で表示

debugノードを配置する

以下図はdebugノードのプロパティで ノード状態 にチェックを入れ、3箇所に配置した状態です。
フロー は上段・中段・下段の3種類に分岐しており、debugノードはそれぞれ以下の場所に接続しています。

上段:rpi mouse(マウスクリック)の出力情報を表示
中段:Usb Selector(モーター選択)ノードの出力情報を表示
下段:cmdEnable(モーター許可)の出力情報を表示

上図の黄色で囲んだ箇所には、マウスの左ボタンをクリックした際の情報が表示されています。
上段のdebugノード(マウスクリックのデバッグ)には、左ボタンを離した際の0の数字がノードの下に表示されています。

ここで中段と下段のdebugノードに注目してください。
中段のdebugノード(モーター選択後のデバッグ)には0、下段のdebugノード(モーター許可後)にはtrueの文字列が表示され、受け取った情報が異なっていることが分かります。
これは SequencerノードcmdEnable 機能が文字列にtrueを代入しているためです。

このように ノード によっては受け取った文字列をそのまま出力する場合と変更する場合があり、debugノードはその確認にも役立ちます。
追加したノードが正常に動作しない場合、debugノードを活用すれば フロー の不具合箇所を素早く特定できるようになります。

デバッグウィンドウに表示する場合

debugノードの プロパティデバッグウィンドウ にチェックした場合、画面右上のバグ(昆虫)アイコンをクリックして表示されるスペースに情報のログが表示されます。
蓄積されたログはゴミ箱(ログを解除)で消去可能です。

デバッグウィンドウ には、受け取った「時間」「情報」「ノード名」が時系列に表示されます。
複数のdebugノードを表示する場合は ノード 毎に名前を付けると管理しやすくなります。

debugノードを一時的に無効化する

debugノードは右側の四角ボタンをクリックして有効・無効を切り替えることができます。
これにより一度配置したdebugノードを削除→追加する手間を省略できます。

右・左のクリックで異なる動きを設定する

rpi mouseノードdebugノード を使用し、以下を参考にノードを配置してください。

1.rpi mouseノードを2つ配置し、左クリック・右クリック用とし設定する。
2.switchノードをそれぞれ配置し、以下図の通りプロパティを設定する。

※ボタンを押して1、離して0が出力されるが、0の出力時はKeiganMotorを動かさないようにswitchノードで設定。

Switchノード の使い方は【こちら】

3.Changeノードをそれぞれ配置し、以下の通り設定する。
 左クリック側: Left
 右クリック側: Right

※左クリック、右クリック共に1が出力されており、これらを区別するためそれぞれ1の出力を上記文字列に変換。

Changeノード の使い方は【こちら】

4.USB Selectorノードを配置し、出力側にdebugノードを配置する。
5.配置したdebugノードのプロパティを開き「ノード状態」にチェックする。

※Changeノードで変換した文字列がUSB Selectorノードから正常に出力されていることをdebugノードで確認。
6.switchノードを配置し、Leftで上、Rightで下のフローへ分岐設定する。
7.Sequencerノードをそれぞれ2つずつ配置し、以下の通り設定する。

【上側】
Sequencer:モーター許可
Sequencer:cmdMoveByDistanceDeg 相対位置に移動 200deg,40rpm

【下側】
Sequencer:モーター許可
Sequencer:cmdMoveByDistanceDeg 相対位置に移動-200deg,40rpm

すべての配置が完了すると上図のような配置になります。

実際にKeiganMotorを動かす

右クリック・左クリックで意図した動きになることを確認します。
また、debugノードにはクリックしたボタンに対応した文字列が表示されることも確認します。(左クリック→Left , 右クリック→Right)

USB Selectorノード は受け取った情報をそのまま出力するため、このように一部 フロー を簡素化して配置可能です。

今回使用したノード

今回のブログで使用した ノード は以下から読み込みが可能です。
文字列を全て選択(3回クリック)し[ctrl]+[c]でコピーしてください。

ノードの読込み方法は【こちら】


次回予告

次回はキーボードを用いてKeiganMotorを操作します。
次回も是非ご覧ください。

→Part.10【Node-RED入門-10】キーボードでKeiganMotorを動かす

KeiganPiとは、Raspberry Pi(ラズパイ)にKeiganMotorの開発環境をインストールした製品です。