← Part.3【Node-RED入門-3】2台のKeiganMotorを同時に動かす
→ Part.5【Node-RED入門-5】フォトセンサーと連動してKeiganMotorを動かす

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

今回の内容

今回はKeiganPi付属の物理ボタンを使用し、3つのボタン(緑色・黄色・赤色)にそれぞれ異なる動きを設定します。

1.物理ボタンを取り付ける
2.物理ボタンの動作確認をする
3.物理ボタン(緑色・黄色・赤色)にそれぞれ異なる動きを設定する
4.実際に物理ボタンを押してKeiganMotorを動かす

物理ボタンを取り付ける

まずは以下チュートリアルに従い、KeiganPiに物理ボタンを取り付けてください。

物理ボタンの動作確認をする

1.Node-REDのノードを読み込む

物理ボタンのチュートリアル下部にあるノードを読み込みます。
Part.2内のノードの読み込み方法を参照しノードを読み込んでください。

正常に読み込めた場合、ボタン動作テストのタブが追加されてます。

フロー内のノードを全て選択し[ctrl]+[x]で切り取り、今まで作業していたフローへ[ctrl]+[v]で貼り付けしてください。
貼り付け後、ボタン動作テストのタブは使用しないためダブルクリックしてプロパティから削除してください。

2.実際に物理ボタンをクリックする

デプロイ完了後、実際に物理ボタンをクリックして色に対応した[PIN:**]ノードの数値が1→0に変わることを確認してください。

正常に動作しない場合は以下を確認してください。

1.デプロイが完了していることを確認してください。
1.物理ボタンが指定されたピンに接続されていることを確認してください。

※上記で改善しない場合は部品不良の可能性がありますので、お問合せよりご連絡ください。

物理ボタン(緑色・黄色・赤色)にそれぞれ異なる動きを設定する

1.物理ボタンの指示を設定する

ボタン動作テストで使用したノードを編集し、 緑色・黄色・赤色の物理ボタンにそれぞれ異なる動きを設定します。
今回は以下の通りに設定しました。

●緑色:クリックすると速度20rpmで時計回りに2秒回転する。
●黄色:クリックすると速度40rpmで反時計回りに2秒回転する。
●赤色:クリックするとモーターが停止する。
●[33,35,37番ピンに接続]の名前を[物理ボタンでKeiganMotorを動かす]に変更。


※時計回り・反時計回りの設定方法は【こちら】
※モータ停止の設定方法は【こちら】
※コメントの名前変更方法は【こちら】
[delay]や[モーター停止]など、どの物理ボタンでも同じ処理を行う場合は、1つのノードにまとめておくと変更が楽になります。

※配置の一例

2.条件設定を行う

この状態で物理ボタンを押しても実際にKeiganMotorは動きますが、以下の問題が発生します。

●物理ボタンを押したときと離したときで2回同じ指示が実行される。
 (ON,OFFの切り替え時に動作する設定になっている)

この問題を解決するため、新たに[switch]ノードを設定します。

3.[switch]ノードを設定する

[switch]ノードとは

機能のメニューにある switchノード は、受け取るデータや条件によってノードを分岐させる機能を持ちます。
今回はこれを利用し、物理ボタンを押したときのみ指示が実行されるようにします。(物理ボタンを離したときは何も起こらない)

1.機能メニューからswitchノードを1ヶ所に配置する。
2.switchノードを開き、名前をONで実行へ変更。
3.プロパティ下部の==横の入力スペースに0を入力。
4.+追加をクリックし列を追加する。
5.追加した==横の入力スペースに1を入力し完了

解説

列を追加したことで、[ONで実行]ノードの形が上記のように変更されました。
【物理ボタンの動作確認】項目にもある通り、物理ボタンを押していない時は1、物理ボタンを押している間は0の情報を発信しています。

今回は物理ボタンを押した時(0の情報を発信した時)に動作を実行させたいので、0の情報を受け取ったときは[ONで実行]ノードの1側1の情報を受け取ったときは[ONで実行]ノードの2側を実行するよう設定しました。

4.[ONで実行]ノードを物理ボタンにそれぞれ設定する

先ほど作成した[ONで実行]ノードを[ctrl]+[c]でコピーし、2回貼り付けします。
その後、[pin:**]と USB Selectorノード の間にドラッグ&ドロップすると、2つの設定の間に[ONで実行]ノードを追加ことができます。

簡単な動作で指示の追加や入れ替えができる点もNode-REDの魅力の1つです。

今回は1側(物理ボタンを押したとき)のみ動作を実行したいので、2側(物理ボタンを離したとき)には何も配置しません。
作業完了後、忘れず デプロイ してください。

実際に物理ボタンを押してKeiganMotorを動かす

実際に物理ボタンを押し、指示した通りの動きをする事を確認してください。

使用事例

物理ボタンは押す・離すのシンプルな動作で指示を出します。
例えばモーターでドアを自動で開けるという設定を物理ボタン1つで行うこともでき、うちわを取付けて自動で扇ぐ簡易扇風機なども作ることができます。

カメラプラットフォームキットを使用し、物理ボタンでスマートフォンやカメラを自由にコントロールするのも面白いかもしれません。

KM-1U カメラプラットホームキット

KeiganMotor モーターモジュール®

カメラプラットフォームを作成可能なキット。

カメラアダプタキットの部品一式と、2軸でカメラを固定する為のフレーム部品が付属します。

2つのKeiganMotorを組合せ、様々な方向・角度へカメラを傾けることができます。

今回使用したノード

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


次回予告

次回は市販のフォトセンサーを使用し、モノが横切るとKeiganMotorが動くよう設定します。

> Part.5【Node-RED入門-5】フォトセンサーと連動してKeiganMotorを動かす

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