← 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に電源ケーブルと通信用ケーブルをつないだ状態でカメラを回転させます。
動かしたい範囲を事前に手で回し、ケーブルが絡まらない事を確認してください。
※注意※ KeiganPiにKeiganMotor KM-1U 2個を接続した状態で電源を入れる場合、正常にKeiganPi が起動しない場合があります。 詳しくはこちらを参照ください。
物理ボタンを取付ける
物理ボタンを準備する
今回は4つのボタンに動作を設定するため、KeiganPi付属の物理ボタン(ボタン3つ)の他にもう1つボタンを使用します。
※今回は以下キープレスフィルムスイッチ(青)を使用
また、必要に応じジャンパワイヤ(オス~メス)もご使用ください。
フォトセンサーや物理ボタンを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の開発環境をインストールした製品です。