DCC-EXまとめ

Last Updated on 5日 by strv

DCCの主にコマンドステーション機能を提供するソフトウェアをオープンソースで開発しているプロジェクトの一つにDCC-EXというものがあります。DCC-EXの各ソフトウェアはArduinoプラットフォームで動くため非常に簡単に利用できるのが特徴で、完成度の高いDCCコマンドステーションをお手軽に構築できます。こんなにも良いものなのに一次情報が英語しかなく、日本語情報が全然ないのがもったいないと思ったので情報をまとめることにしました。

DCC-EXプロジェクト

https://dcc-ex.com/
すべての情報はここに詰まっています。翻訳ソフトを使いながらでもここを見ることで多くの問題が解決するでしょう。

EX-CommandStation

DCC-EXのコマンドステーションがEX-CommandStationです。長いので以後はEX-CSと書きます。EX-CSは前述のとおりArduinoで構成するコマンドステーションですが、基本的には通信で操作するタイプとなります。コマンドステーション本体にはスロットルレバーやファンクション操作のボタンなどは一切設定されておらず、外部からの通信でDCCコマンドを発行して車両を操作します。非常に多くのデコーダに対応しており主要メーカのものはほぼ問題なく利用できると言えるでしょう。国内サウンドに対応している SmileSoundのデコーダはデコーダ側のファームウェアが2024年2月以降のものになっている必要があります。

EX-CSとの通信はUSBによるシリアル通信もしくはWiFi経由のEthernet通信に対応しています。通信プロトコルはDCC-EXの前身となっているDCC++を引き継いだものとなり、多くのソフトが対応しています。特に海外では絶大な人気である自動運転、列車管理ソフトであるJMRIなどにも対応しています。また、スマホアプリも複数公開されており手元からの操作も簡単にできるようになっています。

EX-IOExpander

EX-CSに接続するIO拡張モジュールのプロジェクトです。EX-CSにはセンサや信号なども取り付けられるのですが、その接続ポート数は限られています。それを拡張するのがEX-IOExpanderの役目となります。EX-IOExpanderもEX-CS同様にArduinoプラットフォームで開発されており簡単に利用できます。

はじめかた

基板を用意する

マイコン基板

まずはDCC-EXのソフトウェアを動かすためのハードウェア、基板が必要になります。現状対応しているマイコン基板は公式サイト上では下記のとおりとなっています。

  • Arduino Mega Setup
  • Arduino Uno Setup
  • Arduino Nano Setup
  • Nano Every
  • Teensy
  • Mega+WiFi Setup

この他に開発中という位置づけではありますがESP32にも対応が進んでおり、ESP32を使うとWiFi機能が内蔵されているため外付け部品が少なく利用を始められます。

モータドライバ基板

マイコン基板の他にDCC信号を増幅して実際に車両などを駆動できるようにするモータドライバ基板が必要となります。公式では motor-shield と表現されています(shieldとはこの場合Arduinoの拡張基板のこと)。モータドライバなら何でも良いというわけではなく、次の信号があることが前提となります。オプションと付記した信号はなくても問題ありません。

  • Sleep(ON/OFF):モータドライバ出力のON/OFFを切り替えするためのピン。OFFのとき出力はハイインピーダンス(未接続)となること。
  • PWM:有効のときモータが回る出力がでるピン。
  • Direction:モータの回転方向を切り替えるピン。
  • 電流:モータ電流の絶対値を計測できるピン。オプション。正しく設定すると過電流保護等の機能が有効になります。アプリから現在の負荷電流をリアルタイムに確認できます。
  • Enable:モータドライバ出力のON/ブレーキを切り替えるためのピン。ブレーキ時はローインピーダンスとなること。オプション。現在では未対応ですが、RailCom対応する場合必須となります。
  • Fault:モータドライバ動作不良出力ピン。オプション。

公式サイト上に対応したモータドライバのリストがあるため、ここから選ぶと簡単です。

また、小型化に注目してSTRVが製作したRM-CS03基板も利用可能です。Nゲージブックケースに収まるのでどこでもお手軽にDCC運転が可能になります。

ファームウェアを用意する

EX-CSは最低限一つの設定ファイルを用意する必要があります。この設定ファイルにはどのマイコン基板を使って、どのモータドライバをどのように接続するか、という情報を書き込む必要があることから必ずそれぞれで設定する必要があります。

このとき、前述の公式対応しているリストからマイコン基板とモータドライバを選んでいる場合にはDCC-EXが開発しているEX-Installerという独自の設定・書き込みソフトを使うことで簡単に設定ファイルを作ることができ、その設定をしたソフトウェアをマイコンに書き込むことまでできます。EX-Installerは非常に便利なのでソフトウェアに不慣れな人は標準対応のリストから部品を選ぶとよいでしょう。その他の基板を使う場合には自分は設定ファイルを用意する必要があります。

車両情報を登録する

ファームウェアに車両情報(Roster)を登録する事ができます。車両情報を登録することで車両アドレスに好きな名前をつけたり、ファンクション番号に名前をつけることができます。ファンクションがたくさんある車両でも取説無しで操作ができるので大変便利です。詳細は説明記事を参照してください。

進路を登録する

ファームウェアに複数の分岐器状態をまとめて一つの進路(Route)として登録することができます。進路を登録しておくと、進路に名前をつけられ、一回の操作で複数のポイントを一気に転換できます。固定レイアウトでは非常に便利な機能です。

自動制御する

EX-CSのみで車両や信号、分岐器などを自動制御することができます。EX-CS独自のEX-RAILという記法を使ってスクリプト形式で記述可能でファームウェアに直接変換して利用します。画面を使った表示はできないのでシンプルな内容に留める方が良いとは思いますが、非常にお手軽に利用可能です。

アプリを用意する

EX-CSの基本セットアップではコマンドステーションには画面はおろかボタンやスロットルすら存在しません。そのためPCやスマホアプリ、専用コントローラからの操作が基本となります。EX-CSに無線LANを接続しているorESP32でEX-CSを構成している場合にはLAN経由での接続が可能です。スマホの場合はコチラが基本の接続方法となります。接続方法によらず、操作インターフェースは全般に Throttle(スロットル) と表現されます。

EX-CSは無線接続の場合、DCC-EX独自のプロトコルのほかに、wiThrottleという広く使われているプロトコルにも対応しています。そのためアプリ側がDCC-EXを明確にサポートしていなくても、wiThrottleプロトコルに対応していればEX-CSを操作することが可能です。

公式サイトのスロットルについての解説 https://dcc-ex.com/throttles/index.html#gsc.tab=0

Chromeアプリ

https://dcc-ex.com/WebThrottle-EX

DCC-EXプロジェクトが公式に用意している操作アプリです。Chrome上で動作するため、インストール不要でPC上で動作します。EX-CSとはUSBケーブルで接続します。詳しい使い方はコチラ

スマホアプリ

スマホは基本的にネイティブアプリで動かすことになるためOSごとにアプリが異なります。自分はAndroidユーザのため、EngineDriverというアプリを使っています。EngineDriverの使い方はコチラ

またEX-CSそのものの設定変更などに特化したAnrdoidアプリ Ex-Toolboxもあります。接続部分や画面構成などはEngineDriverと共通なのですんなり入ることができると思います。
https://play.google.com/store/apps/details?id=dcc_ex.ex_toolbox&hl=ja

JMRI

PCで鉄道模型の自動運転や運行管理をするためのソフトがJMRIです。JMRIはWiFi経由でもUSB接続でもDCC-EXプロトコルにネイティブ対応しているため、EX-CSをそのまま利用することが可能です。

用語集

DCCおよびDCC-EXの独自表現等をまとめておきます。

  • Command station コマンドステーション
    操作司令をDCC信号として出力する機械のこと。アナログ車両でいうところのパワーパック。
  • Consist コンシスト
    直訳では「構成する」など。具体的には重連統括運転する機関車の組み合わせのこと。
  • Loco ロコ
    機関車のこと。DCCは基本的に海外でできたものなのもあり、集中動力が基本思想にあり、動力車=機関車=DCCデコーダを搭載している車両、という暗黙の認識がある。
  • Roster ロスター
    サーバーに登録されているDCC車両のリストのこと。無理やり日本語にするなら「車籍」あたりが近い概念?
  • Route ルート
    サーバーに登録された経路のこと。ルート選択すると、事前に設定してあった通りにポイントが切り替わり、進路が構成される。
  • Throttle スロットル
    もともとの意味は速度等を調整する機構のこと。点じてDCC-EXでは操作アプリのことを指します。
  • Turnout ターンアウト
    ポイントのこと。ターンナウトぐらいがホントの発音か。特段DCC特有というものでもない。