← Part.7【Node-RED入門-7】モノが離れている間KeiganMotorを動かす
→ Part.9【Node-RED入門-9】マウスクリックでKeiganMotorを動かす

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

今回の内容

今回はカメラプラットフォームキットKeiganPiを使用し、物理ボタンで動かす設定をします。

パンチルト ( ティルト )のKeiganMotorを3色の物理ボタンと1色の物理ボタンを使用し、正回転・逆回転させてカメラを動かします。

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

1.カメラプラットフォームキットを組立てる
2.物理ボタンを取付ける
3.カメラ操作用フローを作成する
4.実際にKeiganMotorを動かす

カメラプラットフォームキットを組立てる

以下リンクの組立手順を参考に カメラプラットフォームキットを組立ててください。
※カメラと三脚は付属しません

組立て状態 クリックして拡大表示

KeiganPiと接続する

KeiganMotor KM-1U 2個と KeiganPi を電源に接続します。
その後、 KeiganMotor KM-1U 2個と KeiganPi を通信用ケーブルで接続してください。

KeiganMotorに電源ケーブルと通信用ケーブルをつないだ状態でカメラを回転させます。
動かしたい範囲を事前に手で回し、ケーブルが絡まらない事を確認してください。

動かしたい範囲を手で回して確認します
※注意※
KeiganPiKeiganMotor KM-1U 2個を接続した状態で電源を入れる場合、正常にKeiganPi が起動しない場合があります。
詳しくはこちらを参照ください。

物理ボタンを取付ける

物理ボタンを準備する

今回は4つのボタンに動作を設定するため、KeiganPi付属の物理ボタン(ボタン3つ)の他にもう1つボタンを使用します。
※今回は以下キープレスフィルムスイッチ(青)を使用

また、必要に応じジャンパワイヤ(オス~メス)もご使用ください。

Pricing Table Image

GPIOピンに接続できる物理ボタン。
Node-REDではボタンを押す・離すことでフローを実行することが可能です。

Pricing Table Image

フォトセンサーや物理ボタンをKeiganPiやブレッドボードに接続する部品。
3種類のタイプ(上から順にメス⇔メスメス⇔オスオス⇔オス)があり、部品のリード線を延長したり、オス⇔メスを変換することもできます。

物理ボタンを取付ける

3色の物理ボタンと、1色の物理ボタンを以下の通り取付けます。
物理ボタンの取付け方法は以下図及び「物理ボタンの取付け方法」のリンク先にあるチュートリアルページを参照ください。

クリックして拡大表示


2種類のボタンを取付けると、以下図の通りになります。

カメラ操作用フローを作成する

4つのボタンを以下の通り設定し、カメラを操作する フロー を作成します。
今回はPart.6と同様、決まった範囲内でKeiganMotorを動かしたいので絶対位置を使用します。

ボタンの動作(押している間以下の動きを実行)

■ KeiganPi付属の物理ボタン
緑: パン を正回転-反時計回り
黄: パン を逆回転-時計回り
赤: チルト ( ティルト )を正回転-反時計回り

■ 追加したキープレスフィルムスイッチ
青: チルト( ティルト )を逆回転- 時計回り

配置完了図 クリックして拡大表示

現在位置を原点に設定

現在位置を原点に設定します。
以下を参考にノードを配置してください。
※原点の設定方法はこちら】

 原点を設定するフロー クリックして拡大表示

各ノードの設定

■ タイムスタンプノード 
 →設定無し(クリックしてフロー開始)

■ USB Selector ノード
 →動かすKeiganMotorをそれぞれ指定

■ モーター許可  sequencerノード 
 →cmdEnable

■ 原点を設定  sequencerノード 
 →cmdPresetPosition
 →position →0

絶対位置へ動かす設定

ボタンを押している間は原点から絶対位置90(-90)degまで移動し続け、ボタンを離すとその場で停止する設定をします。

絶対位置で指定するため、90(-90)degまで移動後にボタンを押し続けていてもそれ以上は移動せず、コードの絡まり等が発生しない事が特徴です。
 
以下を参考にノードを配置してください。

ノード配置 クリックして拡大表示

各ノードの設定

■ PIN:↑37(35)  rpi-gpio in ノード
 →Pin:接続しているGPIOピンを選択
 →Resistor?:noneからpullupへ変更 

■ switch ノード
 →プロパティ:msg.payload
 →0が入力されると1(上のノード)へ
 →1が入力されると2(下のノード)へ

■ USB Selector 
 →動かすKeiganMotorを指定

■ モーター許可 sequencerノード
 →cmdEnable

■ 絶対位置90deg 15rpm sequencerノード
 →cmdMoveToPositionDeg
 →position_deg:90(反時計回り)
 →speed_rpm:15

 ■ 絶対位置-90deg 15rpm sequencerノード
 →cmdMoveToPositionDeg
 →position_deg:-90(時計回り)
 →speed_rpm:15 

15rpmの速度で、原点を中心に時計・反時計回りに90°の位置まで動く設定ができました。

ボタンを離すと停止する設定

続いて、ボタンを離すとKeiganMotorが停止する設定をします。
この設定は4つのボタン共通の設定になりますので、Part.7のリンク設定を使用します。
以下を参考にノードを配置してください。

ノード配置例 クリックして拡大表示
■ モーター停止 Sequencerノード 
 →動作:cmdStop

設定完了後、ボタンのフローを[ctrl]+[c]でコピーして以下図のように貼り付けてください。
その後[Pin]ノードを他のボタンへ変更し USB Selectorノード をもう1つのKeiganMotorへ変更してください。

物理ボタンの設定 クリックして拡大表示

以上でノードの配置は完了です。
ボタンを押して0の情報を入力すればKeiganMotorを絶対位置へ移動させ、ボタンを離して1の情報を入力すればKeiganMotorが停止します。

これによりボタンを押している間(ボタンを離して1の情報が出力されるまで)だけKeiganMotorを動かす設定ができました。

また、 パンチルト( ティルト )共に絶対位置で原点に設定した位置から90deg(-90deg)の位置以上は移動しないよう設定しています。

ボタンを押し続けても指定した位置以上は回転せず90deg(-90deg)の位置で停止するため、コードの絡まりも発生しません。
(絶対位置の詳細は【こちら】

実際にKeiganMotorを動かす

デプロイ 後、まずは原点を設定する フロータイムスタンプノード をクリックして原点を設定してください。
その後、4つのボタンを押して正常に動くことを確認してください。

緑⇔黄,パン 赤⇔青,チルトティルト

使用事例

角度や向きを変更できる点は様々な活用方法が考えられます。
カメラの代わりにスマートフォンを取付けると、角度や向きを変更できるタブレットスタンドやモニターアームを作成することも可能です。

KeiganPiカメラプラットフォームキットを組み合わせ、色々なアイデアを実現してください。

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

今回使用したノード

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

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


次回予告

次回は Sequencerノード のcmdMoveByDistanceDegSync(相対位置に移動し、移動の成否を通知する)をご紹介します。
次回も是非ご覧ください。

→ Part.9【Node-RED入門-9】マウスクリックでKeiganMotorを動かす

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