DCC-EXまとめ

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

公式サイト

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

EX-CommandStation

DCC-EXのコマンドステーションがEX-CommandStationです。長いので以後はEX-CSと書きます。EX-CSは前述のとおりArduinoで構成するコマンドステーションですが、基本的には通信で操作するタイプとなります。コマンドステーション本体にはスロットルレバーやファンクション操作のボタンなどは一切設定されておらず、外部からの通信でDCCコマンドを発行して車両を操作します。

通信はUSBによるシリアル通信もしくはWiFi経由のEthernet通信に対応しています。通信プロトコルはDCC-EXの前身となっているDCC++を引き継いだものとなり、多くのソフトがEX-CSに対応しています。特に海外では絶大な人気である自動運転、列車管理ソフトである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信号を増幅して実際に車両などを駆動できるようにするモータドライバ基板が必要となります。モータドライバなら何でも良いというわけではなく、次の信号があることが前提となります。オプションと付記した信号はなくても問題ありません。

  • Sleep(ON/OFF):モータドライバ出力のON/OFFを切り替えするためのピン。OFFのときは出力はハイインピーダンス(未接続)となること。
  • PWM:有効のときモータが回る出力がでるピン。
  • Direction:モータの回転方向を切り替えるピン。
  • 電流:モータ電流の絶対値を計測できるピン。オプション。
  • Enable:モータドライバ出力のON/ブレーキを切り替えるためのピン。ブレーキ時はローインピーダンスとなること。オプション。
  • Fault:モータドライバ動作不良出力ピン。オプション。

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

ソフトを用意する

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

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

以下随時追記予定