パソコンで鉄道模型を制御するための基礎検討
はじめに
現在Susukuma鉄道模型チャンネルから聞いた要望はすべて対応済です。
今年に入り新たな開発案件は来ていません。(2023/6)
退屈なので自分で何か新しい目標を設定して技術チャレンジをしてみたくなりました。
そこで「鉄道模型をパソコンで制御する」事を目標に、まずは要素技術の検討を開始しました。
今年に入り新たな開発案件は来ていません。(2023/6)
退屈なので自分で何か新しい目標を設定して技術チャレンジをしてみたくなりました。
そこで「鉄道模型をパソコンで制御する」事を目標に、まずは要素技術の検討を開始しました。
どこまでできるかわかりませんが検討結果や関連情報を順次掲載してゆく予定です。
無線接続用ハードウェア (ESP32C3)
パソコンとの接続が無線ならかっこいいですよね。
ノートパソコンなら好きな場所へ移動して操作するのが簡単になりますし。
いろいろ検討した結果、以下を購入して試すことにしました。
パソコンにはUSB-Bluetoothのドングルを挿しました。
Bluetooth Low Energyの通信規格を使うのでBLEとかLE対応と書いてあるものを選びました。
レイアウト側の無線機能追加用にはXIAO ESP32C3という小型IoT開発ボードを選択しました。
ボードと言っても切手サイズで、BluetoothやWifiの送受信ができ、160MHz 32bitのRISC CPU、400KbyteのSRAM、4MByteのフラッシュメモリ、プログラム書き込みができるUSB-typeCのコネクタ、さらにシート状のアンテナまでついています。
それを1000円程度で買えるのですから良い時代になったものです。
ノートパソコンなら好きな場所へ移動して操作するのが簡単になりますし。
いろいろ検討した結果、以下を購入して試すことにしました。
パソコンにはUSB-Bluetoothのドングルを挿しました。
Bluetooth Low Energyの通信規格を使うのでBLEとかLE対応と書いてあるものを選びました。
レイアウト側の無線機能追加用にはXIAO ESP32C3という小型IoT開発ボードを選択しました。
ボードと言っても切手サイズで、BluetoothやWifiの送受信ができ、160MHz 32bitのRISC CPU、400KbyteのSRAM、4MByteのフラッシュメモリ、プログラム書き込みができるUSB-typeCのコネクタ、さらにシート状のアンテナまでついています。
それを1000円程度で買えるのですから良い時代になったものです。
USB bluetooth 5.0 dongle (BSBT5D205BK)
XIAO ESP32C3
なお今のところ使う予定はありませんが、ESP32C3の裏面には充電電池を接続する端子があり充電回路も入っているそうです。
Bluetooth Low Energyで無線接続し間欠動作させるとかなり低消費電力になるとの事です。
Nゲージレイアウトは以前試作したSNTCと同様に、シリアル通信でループ接続した複数のPICマイコンを通して列車や信号機、ポイントを操作する前提ですので、ESP32C3とPICマイコン間もシリアル通信(100K baud)で接続します。
ESP32C3はUSBコネクタまたは電源端子から5Vを受けて動作しますが、3.3Vの内蔵レギュレータ出力で動作するのでI/O電圧は3.3Vになります。
PICマイコンのI/O電圧=5Vと接続するための電圧変換と、Nゲージ用電源(7~15V)から5Vを生成するためにESP32C3を乗せるベースボードを片面感光基板で作りました。
以下に回路図、部品配置図、裏面マスクパターン、ドリルマップをpdfにまとめたものを添付します。
電源とUARTのTx/RX用コネクタは2ピンのXHコネクタを使いました。
ESP32C3には2.54mmピッチのピンヘッダをはんだ付けし、基板側にはソケットをはんだ付けしました。
抵抗やコンデンサはSMD(表面実装)タイプを使いました。
1608サイズ(1.6mm☓0.8mm)の抵抗は通常リール単位(数千個入ってる!)で販売されているのですが千石電商では10個、50個単位で買えるので助かっています。
ESP32C3のI/Oにはいくつか注意すべき点があるとのWeb情報があり、それらを考慮しました。
それから電源投入後にESP32C3へ書き込んだプログラムを確実に起動するにはESP32C3についているリセットスイッチを押す必要があるようです。
そのスイッチは小さくて押しにくく面倒なため、スイッチにつながっている端子を電源投入後2秒間Lowにする回路を追加しました。
その端子(EN)はESP32C3の裏面にあるのでそこに1ピンのソケットをつけたリード線をはんだ付けし、ベースボードの1ピンのピンヘッダと接続しました。
Nゲージでよく使われる12V前後の電源から5Vを作るために、当初はリニアレギュレータを使っていました。
ですが、Bluetoothを使っている状況で実測したら電流はピークで300mA、平均で100mAでした。
リニアレギュレータの消費電力は(12V-5V)☓100mA = 700mWになるのでかなり熱くなります。
放熱器をつけるのも面倒なので発熱が少ないDC-DCコンバータタイプのBP5293-50に変更しました。
コネクタの挿し間違いを防ぐためにテプラで印刷したラベルを貼っています。
付属のアンテナをつなぐコネクタは水平に押すと入りにくいですが斜めに押し付けると入れやすいです。
プログラム書き込み時にUSBケーブルでパソコンと接続しているときはUSBから電源が供給されます。
その場合、ベースボードの電源コネクタ(7V~15V)には電源を接続しません。