←Part.10【Node-RED入門-10】キーボードでKeiganMotorを動かす

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

今回の内容

今回はカメラプラットフォームキットにUSBカメラを接続し、キーボード操作で写真撮影する動きを設定します。

また、リモートデスクトップを使い、PCからKeiganPiのデスクトップに接続する方法も解説します。

1.リモートデスクトップを設定する
2.USBカメラを認識させる
3.usbcameraノードを設定する
4.実際にKeiganMotorを動かす

リモートデスクトップを設定する

リモートデスクトップとは

リモートデスクトップ: remote desktop)とは手元のコンピュータからネットワークで接続された他のコンピューターのGUIデスクトップ環境を操作する技術の総称である。

wikipediaより引用

KeiganPi本体の設定やフォルダ作成は、デスクトップ環境で操作した方が視覚的に分かりやすく、初めての方でも簡単に行うことができます。

更にリモートデスクトップ接続のメリットとして、毎回KeiganPiにモニター・マウス・キーボードを取付けずに素早く・簡単に作業でき、効率も上がります。

IPアドレスを確認する

Part.1でモニターとKeiganPiを接続した方法を利用し、IPアドレスを確認して控えます。
有線(LANケーブル等)で接続している場合と、無線(Wi-Fi等)で接続している場合でアドレスの表記場所が異なりますので注意してください。

リモートデスクトップ接続を設定する

KeiganPiを操作するPCのプログラム一覧から「リモートデスクトップ接続」を選択し、接続画面で先ほど控えたIPアドレスを入力します。

リモートデスクトップ接続アプリ
《設定》
コンピューター(C):先ほど控えたIPアドレスを入力
ユーザー名       :(未設定)
オプション       :(未設定) 

正常に接続先が検知されると以下のポップアップが表示されますので「はい」を選択してください。

KeiganPiにログインする

ユーザーネームとパスワードを入力しKeiganPiにアクセスします。
(初期設定から変更が無ければ、以下情報でアクセスできます)

Session  : Xorg
username : pi
password  : keiganpi

KeiganPiのデスクトップ画面(以下図)が表示されれば完了です。

クリックして拡大表示

USBカメラを認識させる

引き続きリモートデスクトップ接続でKeiganPiのUSBカメラを認識させます。
初期設定ではUSBカメラが無効になっており、この状態でUSBカメラをKeiganPiに接続しても利用できません。

ターミナルを起動する

KeiganPiの画面左下からLXTerminal(以下アイコン)を選択しターミナルを起動します。

LXTerminalアイコン
ターミナル画面

ターミナルとは?

ターミナルとは、シェル(後述)をデスクトップ環境で操作できるソフトウェアです。
ターミナルの指示をシェルがカーネル(後述)に伝え、カーネルの情報をシェルが私たちに理解できる形(文字・数字等)でターミナルに表示します。

ターミナルでシェルを起動し、入力したコマンドをシェルがソフトウェアに伝え、ソフトウェアの結果をシェルがターミナルに表示する…というのが一連の流れです。

シェルとは?

シェルは、ターミナルで入力した指示をカーネルやその他アプリケーションに伝える橋渡し的な役割のソフトウェアです。

シェルは入力装置などによる利用者の操作を受け付けて、対応する動作をOSカーネルや他のソフトウェアに指示したり、それらからの出力を画面に表示するなどして利用者に伝える

e-words 様より引用

カーネルとは?

カーネルとは、OS(オペレーティングシステム)の中核を構成するソフトウェア。動作中のプログラムの実行状態を管理したり、ハードウェア資源を管理してアプリケーションソフトがハードウェアの機能を利用する手段を提供したりする。

e-words 様より引用

カーネルは、OS(オペレーティングシステム)の基本機能を制御するソフトウェアの総称です。
CPU・メモリー・ネットワークなどのハードウェアを制御しており、カーネルに指示を送ることでこれらの設定を参照したり変更することができます。
本項目ではカーネルに指示を出し、USBカメラを有効にします。

USBカメラを有効にする

ターミナルを操作してUSBカメラを有効にします。

sudo raspi-config と入力しEnterキーを押す。
5 Interfacing Options を選択しEnterキーを押す。
P1 Camera を選択しEnterキーを押す。
enabled(有効)の確認画面で<はい>を選択しEnterキーを押す。

以上でUSBカメラが有効になりました。
次に、USBカメラが認識されているかを確認します。

USBカメラが認識されていることを確認する

1. USBカメラをKeiganPiのUSBポートに接続する。
2. ターミナルを再起動し lsusb と入力後Enterキーを押す。
3. KeiganPiに接続しているデバイスが表示されるので、その中にカメラが
  あることを確認する。
クリックして拡大表示

今回使用するカメラ及び周辺機器について

今回は以下のカメラを使用します。
KeiganPiのUSB端子に空きがない場合は、USBハブも別途ご用意ください。

Pricing Table Image

後述のusbcameraノードで画像を撮影するために使用します。

Pricing Table Image

KeiganPiのUSBポートをより多く使用する場合に使用します。

usbcameraノードを設定する

パレット にある usbcameraノード を配置し設定します。
最新のKeiganPiイメージデータには最初から追加されていますが、ノードが無い場合は過去ブログの「ノードの追加」を参照し、「node-red-contrib-usbcamera」を追加してください。

usbcameraノードの設定

usbcameraノードは、 入力ポート から情報を受け取ることでUSBカメラの映像を画像として保存できます。
プロパティでは、以下の設定が可能です。

File Mode    :機能の種類を選択します。
          ※今回はFile Modeを選択
File Name    :保存されるファイル名を指定できます。
File Default Path :保存フォルダを指定できます。
           Yesを選択すると初期設定でSDカード内に保存されます。
File Pash      :File Default PathをNoにすると指定できます。
           任意の画像保存先をパスで指定できます。
File Format     :保存される画像の拡張子を選択できます。
Image Resolution  :画像解像度を指定できます。
Name         :usbcameraノードの名前を変更できます。

今回は上記の通り設定してください。

usbcameraノードの注意点として、そのままの設定では複数の画像を撮影する度にFile Nameで指定した名前で上書きされることです。
複数の画像を保存する場合はファイルを移動させるか、次回ご紹介する「ファイル名を変えて保存」を参照ください。

撮影のフローを作成する

前回のブログを参考に、キーボードの[space]キーを押した時にusbcameraノードが実行されるよう設定します。

前回のフローを読み込み、以下のフローを追加してください。

実際にKeiganMotorを動かす

以下のキーを押し、それぞれ意図した動きになることを確認します。

■←→↑↓  :設定速度で絶対位置へ移動
       (キーを離すとその場で停止)
■Enter   :現在の位置を原点に設定
■Backspace :原点の位置まで移動
■1,2,3   :それぞれ速度を20rpm,40rpm,60rpmに設定
■Space   :写真撮影しSDカード内に画像を保存 ←new
クリックして拡大表示

※KeiganPiのフォルダは画面左下の「フォルダアイコン」をクリックして表示できます。

使用事例

以前ご紹介したフォトセンサーと組み合わせることで「フォトセンサーが反応すればカメラの画像を保存する」という監視カメラのような機能も追加できます。

ただし、カメラによっては画像が保存されるまでラグ(時間差)が生じる場合がありますので、事前にお持ちのUSBカメラでフローを実行しご確認ください。

今回使用したノード

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

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


次回予告

次回はスピーカーを接続し、動作ごとに音を鳴らす設定をします。
次回も是非ご覧ください。

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