[ブログ一覧]
● ブログトップページ
[ホームページリンク]
● ホームレコーディング 楽曲集/宅録/DTM
● 自作ギターエフェクター/ツール/パーツ
● A3サイズのNゲージ箱庭鉄道模型
[イチオシ記事]
🚃 A3サイズ鉄道模型:タッチパネルTFT液晶による自動運転システムが完成!
● ブログトップページ
[ホームページリンク]
● ホームレコーディング 楽曲集/宅録/DTM
● 自作ギターエフェクター/ツール/パーツ
● A3サイズのNゲージ箱庭鉄道模型
[イチオシ記事]
🚃 A3サイズ鉄道模型:タッチパネルTFT液晶による自動運転システムが完成!
A3サイズ鉄道模型:タッチパネルTFT液晶による自動運転システムのまとめ
2025/08/24

最初はLCDキャラクタディスプレイ版から
私は45年前、中高生の頃に暮らした松山の伊予鉄道をモチーフに、A3サイズの鉄道模型レイアウトを制作しました。現在もこのジオラマをベースに遊んでいますが、「自動運転」に挑戦したいと思い、Arduinoを使った制御システムを構築しました。
当初はUI(ユーザーインターフェース)にシンプルなLCDキャラクタディスプレイを採用。表示機能は限られていましたが、列車の自動制御を可能にしました。この時のシステムはYouTubeにも公開しています。
インテリジェントなUIへ ― TFTタッチ液晶の導入
さらに分かりやすいUIを目指し、秋月電子通商で販売されている約1,000円のTFTカラー液晶モジュールに注目しました。このディスプレイはタッチパネル付きで、SPI接続に対応しています。
「これを使えば、レイアウトの路線図を描き、走行状態や自動運転の様子をグラフィカルに表示できるのでは?」と考え、TFT液晶を使った新しいコントローラー制作に挑戦しました。
ハードウェア構造
システムは以下の2つの基板で構成しています。
- コントローラー基板:TFT液晶とマイコン(Raspberry Pi Pico 2W)を搭載
- サブ基板:レイアウト裏に設置し、ポイントや信号機などの多数のデバイスを接続
両基板は8ピンコネクタで接続。サブ基板上にはシフトレジスタICを配置し、多数のI/Oをシリアル経由で制御できるようにしています。
基板制作 ― KiCADとJLCPCBを活用
- コントローラー基板(TFT液晶+マイコン)
- サブ基板(シフトレジスタIC)
の2種類をKiCADで設計し、中国のJLCPCBで製造しました。
両基板ともチップ部品を使った2層SMD実装です。
回路図やKiCADの設計データはGitHubで公開しています。
レイアウト構造
レイアウト上には以下の要素を配置しています。
- ポイント切替(POINT) - TOMIX N-PL140-30
- 三灯式信号機(SIG) - 情景コレクション 交通 信号ライト
- 踏切警報ランプ(CROSS) - 制作ブログページ
- 赤外線センサー(SENS) - 制作ブログページ
列車通過センサーには、当初マグネット式を採用していましたが、車両に付けた磁石が電動ポイント内の磁石に干渉してしまうため、反射式赤外線センサーに交換しました。
各デバイスはレイアウト裏のサブ基板へコネクタ接続し、制御信号を集中管理しています。
ソフトウェア設計
プログラムはArduino IDEで作成しました。今回のTFT液晶はSPI経由で制御するため、フルスクリーン描画に約80msかかります。そのため、全処理をloop()に直書きすると、液晶更新中にセンサー入力を取り逃すリスクが発生します。
そこで設計を以下のように工夫しました:
- TFT液晶の描画処理のみloop()に配置
- センサーや信号機制御は割り込みで処理
これにより、液晶更新中でも高優先度の処理を割り込みで即時実行できるようになり、システム全体の応答性を確保しています。
Arduinoソースコードは下記HitHubで見られます。
割り込み処理タイミングの検証
割り込みが設計意図通りに実行できているかを確認するため、オシロスコープで波形を測定しました。各転送処理関数の冒頭でGPIOをHIGH、終了直前でLOWにすることで、処理実行時間を計測できるようにしています。
観測した信号の割り当ては以下の通りです。
- [1]黄:TFT液晶へのSPI転送中は HIGH
- [4]青:TFT液晶への転送SCK
- [2]緑:HC595(出力シフトレジスタ)へのシリアル転送中は HIGH
- [3]赤:HC166(入力シフトレジスタ)へのシリアル転送中は HIGH
この波形から、TFT液晶へのSPI転送が走っている最中でも、1ms周期の割り込み処理として、HC595(出力)およびHC166(入力)のシリアル転送が正しく実行されていることを確認できました。
シリアル転送時間の測定
続いて、上の計測時と同じ接続で、時間軸のみを拡大して測定しました。
各シリアル転送の処理時間は以下のとおりです。
- [2]緑:HC595(出力)シリアル転送時間:約 70 μsec
- [3]赤:HC166(入力)シリアル転送時間:約 25 μsec
いずれも1ms周期割り込みの枠内に収まっており、十分な余裕があることがわかりました。
また、TFT液晶への転送SCK([4]青)に、HC595とHC166の転送が割り込んでいる様子も確認できました。
割り込み、シリアル転送の検証結果と考察
以上の測定により、TFT液晶の更新中であっても、センサー入力やレイアウト制御が途切れることなく、意図した周期とタイミングで安定して動作していることが実証できました。
制作ブログ
制作の過程は以下のブログに備忘録としてまとめています:
ブログ全体は以下のカテゴリから参照できます。
動作デモ(YouTube動画)
システムの概要や実際の自動運転の様子は、YouTube動画(解説付き・約7分)で紹介しています。
2025/08/24 20:21
| ブログ一覧
© 2025 Toshi Software