デジタル鉄道模型フォーラムのご案内:
DCCやメルクリンなどのデジタル鉄道模型を楽しむ方が集まって、様々な話題でコミュニケーションできる場です。ぜひご登録ください!登録・利用は無料です。

2018年04月14日

DCCデコーダで自動ブレーキ その1

最近、自動ブレーキがクルマで流行ってます。うちのクルマにも付いてますが、簡易式なので、時速30km/h以下で無いと動かないです。

自動ブレーキは、電車でも信号システムと連動して実装されていますが、鉄道模型だと、存在しなかったのでは無いでしょうか。アナログでは絶対に出来ないので、DCCで実現するしかないですが、DCCで自動ブレーキというと、アシンメトリーDCCの自動ブレーキくらいで、デコーダ自体で反応するものはありませんでした。

さて、自動ブレーキを実現するにあたり、そんなことが出来そうなデコーダは、海外のものでは存在しないのではないでしょうか。国内でも同様です。ただ、実装可能なデコーダについては実は存在します。Nagodenさんのデコーダです。

スマイルデコーダR6Nや、MP3デコーダV5のヘッドライト・テールライト用端子(PAD b1,b2)に、実はI2C端子が出ていて、センサーを繋げてDCCデコーダで、いろいろと遊べるようにNagodenさんがきちんと設計していて用意していたのに、誰も気づかず、全く活用されていません。

実はうすうす気づいてましたが、他の誰かがやってくれるだろうとに思っていたので、スルーしておりました。しかし、一向に誰もやってくれないので、仕方なくので自動ブレーキ技術のとっかかり・ネタを当社が提供させて頂きます。

今回使用するセンサーは、赤外線ToF方式を使用した距離センサーであるSTマイクロのVL53L0CXです。入手性も良く、いろいろなメーカーからモジュールが出てます。チップ自体は、QFNでギョッとする状況ですが、チップを買わなくともモジュールを買えば良いのです。

今回、使ったモジュールはAliexpressで買ったものですが、基本はほとんど変わらないようなので、秋月電子のモジュールや、その他のモジュールなど、お好きに選定ください。

ToF_Sensor_with_ICE2.jpg

今回は、モジュールのピンを、Arduino UNOにつなぎましたが、それぞれVCC->5V, GND->GND, SDA->A4, SCL->A5に配線しました。

まずは実験結果です。ICE2の前面に、無理矢理、センサーモジュール基板をテープ止めして、前方の車両との距離をどのように検出するか調べました。

ST_Distance_Meter_review20180414.jpg

検出範囲は上記の通りで、比較的、前方の視野は狭いと思います。ジオラマを作った場合に、駅などの障害物への反応が気がかりな部分ですが、緊急停止と、徐行の制御をうまく入れ込めれば、実用可能だと思います。

検出も、完全に0 or 1ではなく、赤外線の反射レベルで見ているので、特に検出境界線での反応においては、実際の距離と検出値は一致しません。

なので、ほぼ実測に近い距離、検出境界線の距離(偽距離)を、うまく補償するアルゴリズムを実装して、DCCデコーダに実装することで、自動ブレーキが実現できると思います。

センサの設置については、かなり精度が要りますが、真っ正面を向く形で実装し、高さは運転席の窓付近程度の高さ以上に上げないと、線路を誤検出します。

Arduino UNOのスケッチは、GitHubに落ちているPololuのライブラリのExampleのSingleスケッチを使っています。

以下、センサの反応具合の例です。

■10cm

distance_10cm.jpg

■20cm

distance_20cm.jpg

■30cm

distance_30cm.jpg

■40cm

distance_40cm.jpg

■検出値と実距離のグラフ

タンク車をICE2に近づけたり離したりして、距離と検出値を測定しました。以下のような感じで、非線形になってます。近距離と、遠距離で飽和している傾向が見えます。これを補正するように処理を加える必要があることが分かります。

ToF_Distance_DetectVal.png

■まとめ

・距離の検出範囲は、模型用途にはそれほど問題は無さそうである
・境界線付近で、擬似的に距離がずれて検出されるので、その補正処理などを検討する余地がある。データを取りながらアルゴリズムを開発していく。
・スマイルデコーダR6Nなどに搭載する際に、処理時間に影響が無いかを確認する(I2C通信処理のみなので、影響は小さいと考えているが・・・)

-------------------------

■お断り

本記事で、自動ブレーキの技術に必要なToFセンサーをご紹介しましたが、鉄道模型の飲酒運転、脇見運転、居眠り運転を推奨するものではありません!鉄道模型は、きちんと安全に運行して頂きますよう、よろしくお願いします。本技術は、コントロール不能や、突然の事故を未然に防ぐために必要な技術検討です。
posted by yaasan at 18:19 | Comment(7) | 鉄道模型
この記事へのコメント
R6nはアシンメトリ用の機能も含めており
現在、スケッチ作成中です。
現在は停止するところまでできてますが、
センサーを入れると停止位置が決められ
たり組み合わせでいろんな応用ができますね。
MP3だと自動車内アナウンスもできそうですね
Posted by 名古屋電鉄 at 2018年04月14日 20:17
これはすごい!是非動画で見てみたいですね。
Lenzのブレーキングモジュールを体験して、あれはあれで便利なんですがデコーダの対応が必要ですし結局コンタクトレールにする必要があるので場所を限定します。
デコーダ側でブレーキが実装されれば車輌や構造物に対してもブレーキ出来るわけですね。
更に自由にコントロール出来て幅が広がりますね。
Posted by Nardi at 2018年04月15日 05:28
このTOFセンサーを活用して野良SmartrRailが作れそうですね。
Posted by LOCKE at 2018年04月17日 08:14
RocoのSmartRailのことをおっしゃってますか??
http://www.roco.cc/de/specials/smartrail/index.html
Posted by yaasan at 2018年04月17日 08:27
はい、そのSmartRailです。

流石にコマンドステーション内蔵で値段が値段なので野良で作ってみたいなぁ、と。w

あとはNゲージサイズのが欲しいので。
Posted by LOCKE at 2018年04月17日 14:54
車両側じゃなくて、レール側(のコマンドステーション)にセンサーを置きたいって意味なのですね。その発想はありませんでした。でもそれなら、フォトリフレクターのようなセンサでも良いような気もしますが。
Posted by yaasan at 2018年04月17日 15:16
SmartRailみたいにコマンドステーションは内蔵せず載せた車両を常に同じ場所に保持する自走線路として作りたく。

それで前後からセンサーで置いた車両の初期測定距離を保持する様に無限軌道の制御をデコーダでやろうかなと思いました。
Posted by LOCKE at 2018年04月17日 17:47
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。