Node-REDで鉄道模型を運転する
2019-11-29
山添 知久
Node-RED UG 勉強会
2019年末LTパーティ
自己紹介
• 山添 知久(Tomohisa Yamazoe) @zoe6120
• フリーランス IoTエンジニア
• 工作・模型・ギター
• IT業界やビルディングオートメーション業界でオープン
技術による機器・設備のIoT化に取り組んでいます。
• データセンタ機器メーカー、BAデバイスベンダを経て
フリーランス
Node-RED UG 勉強会2019年末LTパーティ 2
ブログ https://zoe6120.com/
Maker Faire Tokyo 2019 にラズパイIoT鉄道模型を出展しました
• AWS Greengrass による自動運転
• 車載カメラとNode-REDによる手動運転
• https://youtu.be/0gG_AIJcxH0
Node-RED UG 勉強会2019年末LTパーティ 3
車載カメラとNode-REDで運転 – その1
Node-RED UG 勉強会2019年末LTパーティ 4
RasPi Zero W
Pi
カメラ
モータ
ドライバIC
DC12V
DC
モータ
モバイル
バッテリ
5V
PWM制御
できました
Node-RED UG 勉強会2019年末LTパーティ 5
ラズパイをNゲージの鉄道模型に乗せて動画をストリー
ミングしながら速度を制御する
• ラズパイZero + カメラを鉄道模型に乗せる
• 動画をストリーミングする
• GPIOからPWM制御でモータを制御する
• Node-RED Dashboardで操作画面をつくる
Node-RED UG 勉強会2019年末LTパーティ 6
ラズパイZero WとPi Cameraを載せる
• Nゲージのコンテナ台車
• タミヤ1mmプラバンでボディを作る
• モバイルバッテリ
• mjpg-streamer で動画ストリーミング
Node-RED UG 勉強会2019年末LTパーティ 7
車載カメラ
Node-RED UG 勉強会2019年末LTパーティ 8
機関車のDCモータをモータドライバICで制御
• 機関車を改造
• レールからの給電を絶縁
• モータの入力をモータドライバからの出力に接続
Node-RED UG 勉強会2019年末LTパーティ 9
Node-RED UG 勉強会2019年末LTパーティ 10
客車にモータドライバICを搭載する
• 客車を改造
• 車輪から集電したDC12Vを供給
• モータドライバICをPWM制御 -> モータへの出力可変
Node-RED UG 勉強会2019年末LTパーティ 11
Node-RED UG 勉強会2019年末LTパーティ 12
モータドライバIC TA7291P
Node-RED UG 勉強会2019年末LTパーティ 13
Node-RedでDashboard とGPIOからPWM制御
Node-RED UG 勉強会2019年末LTパーティ 14
ボタンクリック
GPIOへPWM出力
https://github.com/tyamazoe/raspi_train_nodered
Node-RedでDashboard とGPIOからPWM制御
• Dashboardの作成
• ラズパイにNode-Redをインス
トール
• node-red-dashboard を追加
• $sudo npm install node-
red-dashboard
• Node-RED 1.0.3ではパネルの管
理から追加
• GPIO x2 にPWM出力
• rpi-gpio-node
Node-RED UG 勉強会2019年末LTパーティ 15
ストリーミング画面を操作画面に追加
• Dashboard Template
nodeにストリーミン
グURLを埋め込む
Node-RED UG 勉強会2019年末LTパーティ 16
<div><img
src="http://192.168.10.22:9000/?actio
n=stream"></div>
Speed 決定するfunction node
• Context で現在値を保存
Node-RED UG 勉強会2019年末LTパーティ 17
var speed = context.get('speed')||0;
// +1: forward, -1: reverse
var direction = context.get('direction')||1;
….
context.set('direction',direction);
…
context.set('speed',speed);
走行動画
Node-RED UG 勉強会2019年末LTパーティ 18
• IoT鉄道模型 - 車載カメラとNode-Redで運転
• https://youtu.be/g5MZLR0io9U
運転席動画
Node-RED UG 勉強会2019年末LTパーティ 19
• IoT鉄道模型 - 車載カメラ映像(2)
• https://youtu.be/xf3WPNJbScI
気付き
• とにかく脱線する
• 左右バランスを均等に
• バッテリ重い
• 配線材固い
• 車両数を増やすと難易度上がるので簡単化したい
Node-RED UG 勉強会2019年末LTパーティ 20
車載カメラとNode-REDで運転 – その2 カメラと制御の分離
Node-RED UG 勉強会2019年末LTパーティ 21
RasPi Zero W
Pi
カメラ
DC
モータ
モバイル
バッテリ
5V
PWM制御
機関車はノーマル
RasPi3
モータ
ドライバIC
5V
ラズパイZero + ラズパイ3による妥協案
• ラズパイZeroは動画ストリーミング専用
• ラズパイ3で線路へのDC12VをPWM制御する
• Node-RED Dashboardはラズパイ3へ
Node-RED UG 勉強会2019年末LTパーティ 22
同じFlowをそのまま使用
Node-RED UG 勉強会2019年末LTパーティ 23
ポイント(信号)の
On/Offを追加
Thank You!
Node-RED UG 勉強会2019年末LTパーティ 24
https://zoe6120.com/

Node-REDで鉄道模型を運転する