ラズパイでIoT鉄道模型(4) – Node-Redで作ったダッシュボードで運転する

車載カメラを作ると次は運転席画像を見ながら「運転したい」となります。
Webブラウザから操作可能なダッシュボードをNode-Redで作成しました。
本作品とAWS Greengrassによる自動運転の2本立てでMaker Faire Tokyo 2019に出展します。

Maker Faire Tokyo 2019


https://makezine.jp/event/mft2019/

I-07-11 ZioTreks(ジオトレックス) です。初出場です。「ラズパイIoT鉄道模型」

ZioTreks

Node-Redで作ったダッシュボードで運転する

Nゲージ本来のパワーパックを使えば、もちろん列車を運転できます。
車載カメラのストリーミングを見ながらパワーパックを操作すれば良いです。ただそれは線路からの給電電圧を可変することによる制御です。

ここは、あくまで列車から速度を制御したい。線路からの給電は一定の電圧として列車内でそれを制御する。ことにします。
架線と線路の違いはあるものの、より実車に近い構成になります。

車両の編成

1両目:ラズパイ車載カメラ

ラズパイ Zero と Piカメラによる車載カメラは以前に記事にしました。

ラズパイ上に列車を運転するためWeb画面を作成します。
DCモーターを制御するためにモータドライバICを3両目に搭載し、モータドライバICを制御するためにPWM信号をラズパイのGPIOから出力します。
Web画面からの命令によりPWM信号を可変して速度制御を行います。

2両目:モバイルバッテリ

ラズパイの電源は5Vのモバイルバッテリを使用しています。線路からの給電では脱線する毎にラズパイが電源Offされるので危険すぎるので採用していません。
ラズパイからモータドライバへの配線3本をバッテリ下に通し、車両の後部のコネクタに接続しています。

3両目:モータドライバICと集電

市販の客車を改造します。車輪から集電できるタイプの車両です。
車輪から集電されてくる集電版に配線をハンダ付けします。

座席を切り取ってスペースを作ります。
モータドライバICをユニバーサル基板の切れ端に取付け、客車に押し込みます。
モータドライバの出力を4両目の機関車の配線に接続
モータドライバの2本のPWM入力はラズパイに接続するので、GNDと併せて3本を車両の通路を通して前方に出します。



見積もりが甘く、天井につかえたので穴を開けています。放熱効果が高まり電気回路的には良くなりました。

モータドライバ回路です。ラズパイのGPIOは実際には GPIO17(11 pin)とGPIO27(13 pin)を使用しました。

4両目:DCモータ

市販の機関車を改造します。通常は車輪から集電してDCモータを駆動しています。
車輪とモータを熱収縮チューブで絶縁し、端子に配線をハンダ付けします。

運転席の窓を抜き、運転席に穴を開けて配線を通します。

これで配線に外部から供給する電源でモータを駆動できます。

全編成

Node-Redによる運転用ダッシュボード

GitHubにアップしました。(2019-08-16追記)
https://github.com/tyamazoe/raspi_train_nodered

Web画面なのでPythonでFlaskで作る方法も考えましたが、
Node-RedのDashboard nodeが手軽で使い易いので、今回はNode-Redです。

Node-Redのインストール

ラズパイのOS RaspbianにはNode-Redがインストールされています。

起動
$ node-red-start

終了
$ node-red-stop

ブラウザで xxx.xxx.xxx.xxx:1880 にアクセスするとNode-Red画面が開きます。

Node-Red Dashboardのインストール

node-red-dashboard はデフォルトではインストールされていません。以下でインストールします。

$ sudo apt install npm
$ cd ~/.node-red
$ sudo npm install node-red-dashboard

これで dashboard nodeが使用できます。

Dashboard

ボタン nodeとGauge nodeを使用して、速度の上下や停止、方向変換などの機能と速度計を作成します。

PWM制御

ラズパイにインストールされているNode-RedではRaspberry Pi Nodeが使用できます。

「rpi gpio」出力ノードで使用するGPIOを指定し、出力形式に「PWM出力」を選択するだけでOK
Dashboardで出力した速度を適切に変換してPWM nodeに入力すれば、dashboardと連動したPWMが出力されます。

走行


無事ブラウザで運転席の画像を見ながら運転できました。

IoTLT

IoT縛りの勉強会IoTLT vol.53 @LINE で発表しました。

資料はこちら

コメントを残す

メールアドレスが公開されることはありません。

7 − 5 =