2020年1月9日にリリースしたKeiganPiは、Raspberry Piに複数のKeiganMotor用開発環境がセットアップされています。

本ブログは開発環境の1つであるNode-REDを使用し、KeiganMotorを素早く・簡単に動かす方法を数回に分けてご紹介します。

今回は全くNode-REDを触ったことが無い初心者向けの解説も含まれます。
すでにNode-REDを触ったことがある方は、以下メニューから興味のある内容へお進みください。


→ Part.2【Node-RED入門-2】ターンテーブルを回す

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

Node-REDとは

Node-RED(ノードレッド)とは、ノードと呼ばれるパーツを組み合わせて簡単にプログラミングができるソフトウェアです。

ノードを配置して動作を設定し、ノード同士をワイヤーと呼ばれる線で接続することでプログラムのフローを作成します。

簡単で非常に分かりやすく、コピー・貼り付けも簡単に行えます。
Node-REDを使用することで、専門知識なしにKeiganMotorを自由に動かすことができます。

ノードを配置した図 クリックして拡大表示
KeiganPiでKeiganMotorを簡単に操作

KeiganPiを準備する

1.内容物を確認する

今回はKeiganPiKeiganMotor KM-1UがセットになったKeiganPi スターターキットを使用します。

以下部品が全て揃っていることをご確認ください。

  • KeiganPi
  • 電源アダプタ
  • 物理PUSHボタン
  • ボタン延長コード
  • MicroHDMI to HDMI変換アダプター
  • 通信用ケーブル(MicroUSB)
  • KeiganMotor KM-1U
  • モーター通信用ケーブル

2.KeiganPiを起動する

KeiganPiに電源アダプタのケーブルを接続し、市販のモニター・キーボード・マウスを以下の通り接続します。

正常に接続できた場合、モニター上にデスクトップ画面が表示されます。
画面が表示されない場合は、モニターとSDカードがそれぞれ正常に接続されているか再確認の上、電源ケーブルを抜いて再接続してください。

3.ネットワークの設定を行う(推奨)

デスクトップ画面右下からWi-Fiを設定することで、同じ回線の開発用PCからKeiganPiのNode-REDを操作できるようになります。

KeiganPiにモニターやキーボードを取付ける必要が無くなり、コンパクトな環境で作業ができます。
この際、画面右上に表示される「IPアドレス(IP on eth0)」を控えてください。

以降、本ブログではこの設定で開発用PCからKeiganPiを操作します。

4.KeiganPiとKeiganMotorを接続する

以下の手順でKeiganPiとKeiganMotorを接続してください。

  1. KeiganPiとKeiganMotorにそれぞれ電源を供給する。
    Type-A to C ケーブルを使用してください)
  2. KeiganPiとKeiganMotorのLEDがそれぞれ点灯していることを確認する。
  3. KeiganPiとKeiganMotorを通信用ケーブルで接続する。

Node-REDに接続する

Wi-Fi設定が完了している場合、開発用PCからKeiganPiにアクセスできます。

1.IPアドレスを指定して接続する

IPアドレス「192.168.24.32]の場合、http://192.168.24.32:1880/と入力し、Node-REDに接続してください。
(http://と:1880/は共通です。IPアドレスの確認方法はこちら

2. ホスト名で検索し接続する

ブラウザに http://keiganpi.local:1880/ と入力する事でもNode-REDに接続できます。

●ホスト名を変更している場合は『Keiganpi』部分も変更ください。
同じ方法・同じネットワークで2台以上のKeiganPiを接続する場合、ホスト名を変更する事で個別に設定可能です) 

●この方法で接続する場合、Bonjour Serviceがインストールされている必要があります。
※ Macintoshではデフォルトで有効です。(インストール不要)
※ Windowsで使用する場合はiTunesのインストールが必要になります。(https://www.apple.com/jp/itunes/download/) 

3.デスクトップから接続する

KeiganPiにモニターを繋いでいる場合、デスクトップの「Node-REDアイコン」をクリックすることでオフラインでも接続できます。

Node-REDにログインする

正常にNode-REDへ接続した場合、以下画面が表示されます。

初期状態のパスワードは以下になります。

ユーザ名 :pi
パスワード:keiganpi 

正常に接続できない場合や他の接続方法でアクセスする場合、ドキュメントサイトのチュートリアルも参照ください。

プログラムを作成する

1.タブを作成する

タブとは、実際にノードを配置する場所(ワークスペース)のことをいいます。
(タブは複数作成できます)
まずは画面の「+」ボタンをクリックしてください。

新規作成されたフロー1のタブをダブルクリックし、名前を001_動作テストに変更します。

2.ノードを配置する

3種類のノードをパネルと呼ばれる左のメニューからドラッグ&ドロップし、ワークスペース内に配置してください。

  1. 「共通」から[inject]ノードを選択し配置
  2. 「KeiganMotor」から[USB Selector]ノードを配置
  3. 「KeiganMotor」から[Sequencer]ノードを2つ配置

3.ノードを設定する

配置したノードをダブルクリックして詳細を設定します。

■ タイムスタンプ ※今回は未設定

[タイムスタンプ]ノードは、特定の時間・日時を指定してそのタイミングでフローを実行することができるノードです。
※今回は設定しません。

未設定の場合でもノード左側の□をクリックすることでフローを実行できます。

■ USB Selector

KeiganMotor専用のノードです。
電源が入っているKeiganMotorをスキャンして指示を送信できるようにします。
配置した[USB Selector]ノードをダブルクリックすると、以下の画面が表示されます。

モーター名に接続したいKeiganMotorのシリアルが表示されていれば、正常に認識されています。
選択後は完了をクリックしてください。

正常にスキャンされない場合は以下をお試しください。

1:KeiganPiとKeiganMotorにそれぞれ電源が供給されていることを確認する。
2:KeiganPiとKeiganMotorを接続している通信ケーブルを抜いて再接続する。
3:KeiganMotorの電源ケーブルを抜いて再接続する。

※再接続後、10秒ほど時間を置いて再スキャンを実行してください。

■ Sequencer(1)

KeiganMotor専用ノードです。
モーターの回転速度や方向を指示できる重要なノードですが、KeiganMotorは安全のため誤動作防止がされています。
そのため、まずはモーター動作を許可する必要があります。

2箇所配置した内の左側[Sequencer]ノードをダブルクリックし、動作タブからcmdEnable モーター動作を許可するを選択します。
その後ノードの名前を「モーター許可」にし完了をクリックしてください。

■ Sequencer(2)

モーター動作を許可することでKeiganMotorに指示を与えることができます。
※動作を許可しないと、指示を与えてもKeiganMotorは動きません

2箇所配置した内の右側[Sequencer]ノードをダブルクリックします。
動作タブから「cmdMoveByDistanceDeg 相対位置に移動する(単位系:度,rpm)」を選択し、以下を設定してください。

distance_deg 200
speed_rpm   100

名前を「回転テスト」にして完了をクリックしてください。

4.ノード同士を接続する

この時点ではそれぞれのノードが独立していますので、どの順番で指示するかを設定する必要があります。

[タイムスタンプ]ノード以外は、左に入力ポート、右に出力ポートという小さい□が表示されています。
入力ポートまたは外部出力から情報を受け取ったノードは、それらを処理して出力ポートから次のノードへ情報を発信します。

これがフローの基本的な流れになります。

ノード同士は、入力ポート⇔出力ポートをドラッグ&ドロップで接続します。
今回配置した4つのノードを以下動画を参照し1本に繋いでください。

5.デプロイを実行しデータ保存する

この段階ではKeiganPiにデータが保存されていないため、実行してもエラーになります。
画面右上にあるデプロイをクリックしてデータを保存してください。
正常に保存されれば「成功しました」のポップアップが出ます。

ノードの接続順や設定を変更した場合も必ずデプロイを実行してください。

KeiganMotorを動かす

以上で準備が完了したので、実際にKeiganMotorを動かしてみます。
タイムスタンプ左側の□をクリックし、KeiganMotorが動けば成功です。

[USB Selector:ノードでエラーが発生する場合、KeiganMotorの電源ケーブルを抜いて再接続するか、通信ケーブルを抜いて再接続してください。
※デプロイを実行していない場合はデプロイを実行してください

備考

[タイムスタンプ]ノードに日時を設定しない場合、そのフローは[タイムスタンプ]ノードの□をクリックするまで実行されません。

設定した場合、その日時にKeiganPiが起動していればNode-REDを開いていなくても自動でフローが実行されます。
また、日時を設定していた場合でも[タイムスタンプ]ノードの□をクリックすることで、設定に関係なく即座にフローを実行できます。

KeiganPiをシャットダウンする

Wi-Fiで開発用PCからKeiganPiを操作している場合、「システム」タブの[RasPi停止]ノードをクリックしてください。

KeiganPiにモニターを接続している場合は、画面左下のシャットダウンをクリックしてください。

緑LEDが点滅→消灯するとシャットダウン完了です。
KeiganPiを起動する場合は、電源ケーブルを抜いて再接続してください。

※シャットダウンせずに電源ケーブルを抜かないでください。
 KeiganPiが損傷する危険性があります。

次回予告

次回は他の[Sequencer]ノードを使用し、オプションパーツのアクリル製ターンテーブルを使った事例をご紹介します。



次回も是非ご覧ください。

> Part.2【Node-RED入門-2】ターンテーブルを回す

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