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

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

Node-REDとは

Node-REDとは、ノードと呼ばれる『パーツ』を組み合わせ簡単にプログラムを組めるソフトウェアです。

1つ1つのノードに指示を与え、それらを繋ぎ合わせることでプログラムの「フロー」を構築します。
プログラム全体が非常に分かりやすく、組替え・コピー・修正も簡単です。
Node-REDを使用することで、専門知識なしに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.動作用タブを作成する

実際にノードを配置し、KeiganMotorを動かす[フロー]を作成します。
まずは画面の「+」ボタンをクリックし新たなタブを作成してください。

新規作成された[フロー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専用ノードです。
モーターの回転速度や方向を指示できる重要なノードですが、これらを指示する前にNode-REDへモーター動作を許可する必要があります。

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

■ Sequencer(2)

モーター動作を許可することで、初めてKeiganMotorに指示を与えることができます。

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

distance_deg 200
speed_rpm   100

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

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

この段階では1つ1つのノードが独立しており、どの順番で指示するかを指定する必要があります。

[タイムスタンプ]以外のノードは左右に□マークが表示されており、これらをドラッグ&ドロップで繋いで指示の順番を指定します。
今回配置した4つのノードを以下動画を参照し1本に繋いでください。

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

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

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

KeiganMotorを動かす

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

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

備考

[タイムスタンプ]を設定しない場合、クリックするまでその指示は実行されません。
設定した場合はその時間・日時に自動で指示が実行されます。
その場合もクリックすることで即座に指示が実行できます。

KeiganPiをシャットダウンする

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

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

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

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

次回予告

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



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

Part.2 「Node-REDでターンテーブルを回す」