おうち発車標 ― 名古屋市営地下鉄 東山線の新型発車標を、おうちの Windows 2000 で動かす
駅のホームで「次の電車は何時に、どこゆき」を出している 発車標。 あれを家で動かしたくて、名古屋市営地下鉄 東山線の発車標を再現するソフト 「おうち発車標」 を作りました。
表示役は Windows 2000。古い PC を 1 台、電源を入れたら発車標だけが立ち上がる「発車標専用機」にして遊べます。 この記事では、どんな見た目で、どう動いて、中身はどうなっているのかを全部まとめます。最後に公開版のダウンロードもあります。
個人が趣味で作った非公式のソフトです。名古屋市交通局とは関係ありません。 公開版には音声(接近メロディ・到着放送)は入っていません。使いたい音声は自分で用意して入れる方式です(→ 音声について)。
できること
- 2 種類の発車標:オレンジと緑の 旧型LED と、東山線の新しいフルカラーの 新型LED
- 3 つの動かし方:時刻を手で入れる「手動」、時刻表どおりに進む「時刻表」、「2分おき」のように間隔だけ決める「○分おき」
- 実際の駅っぽい流れ:在線位置 → 接近表示 → 接近メロディ → 到着 → 到着放送 → 停車 → 発車、を時計に合わせて自動で
- 在線位置:
当駅 <<< 前駅 <<< 前々駅に電車の絵が出て、近づいてくる様子が見える(新型LED) - 多言語:行先が 日本語 → 英語 → 中国語 → 韓国語 と切り替わる(新型LED)
- 何台でも:番線ごとに 1 台ずつ、最大 10 台まで。1 台のサーバーに何台でもクライアントをつなげる
- 専用機モード:電源を入れると、ゲーセンの筐体みたいな黒い起動画面 → 発車標だけが起動
- API:
curlで「1 台目を 2 分おきに」などの操作ができる
しくみ:サーバーとクライアント
おうち発車標は 2 つに分かれています。
| 役目 | 動くところ | |
|---|---|---|
| サーバー | 時刻表から「いま何を表示するか」を計算する。Web の操作画面もここ | Node.js(Windows・Mac・Linux) |
| クライアント | サーバーから表示内容を受け取って、発車標の画面を描く。音声も鳴らす | Windows 2000 以降(hasshahyo.exe) |
Windows 2000 は今の Web(HTTPS や新しい JavaScript)がほぼ使えません。 なので「考える仕事」は全部サーバーに任せて、Windows 2000 側は 1 秒ごとに表示内容を取りに行って描くだけ にしています。
サーバーからクライアントへ渡すのは、こんな UTF-8 のテキストです(タブ区切り)。
hasshahyo-new 1
platform=1
lineJp=東山線
viaJp=名古屋 栄 藤が丘
langs=j,e,s,o
row=train 12:10 0 0 藤が丘|Fujigaoka|ふじがおか|藤之丘|藤之丘|후지가오카
msg=pos 1 H09 H08 H07 当駅||||| 前駅||||| 前々駅|||||
end
row が 1 段目(12:10 藤が丘ゆき)、msg が 2 段目(在線位置。電車は前々駅と前駅の間)。
多言語の文字は 日本語|英語|ひらがな|中国語(簡)|中国語(繁)|韓国語 の形でまとめて送って、切り替えはクライアントがやります。
クライアントはこれを読んで描くだけなので、表示の決まりごとを変えたいときはサーバーだけ直せば済みます。 通信は LAN 内の HTTP(Windows 2000 が今の HTTPS に対応していないため)なので、サーバーはインターネットに公開しない前提です。
操作画面

ブラウザで開く操作画面です。左に台(番線)の一覧と、ほかの画面へのメニュー。右に選んだ台の大きなプレビューと設定が出ます。 台の一覧には、それぞれの「次の電車」も小さく出るので、開かなくても今どうなっているかがわかります。
設定は 4 つのタブに分けました。
| タブ | できること |
|---|---|
| 運転 | 動かし方(手動 / 時刻表 / ○分おき)と、その中身 |
| 見た目 | 旧型LED / 新型LED の切り替え、段の数、番線・方面、新型LED の看板や在線位置の駅番号 |
| お知らせ | 流すお知らせ(1 行 1 件)と、流す間隔 |
| 放送 | 放送を流すか、使う音声フォルダ、設定のない行先で流す音声 |
変更は「保存して反映」を押すまでクライアントには出ません。保存していない変更があると、下のバーと台の一覧に印が付きます(Ctrl + S でも保存できます)。
動かし方は 3 つ。
- 手動:時刻・行先・発車前(時刻の点滅)を入れて保存
- 時刻表:平日 / 土曜 / 土休日の時刻表を入れておくと、サーバーの時計で次の電車を順に出す。
21:47 藤が丘のほか、06:00-08:58/4 藤が丘(4 分おき)、24:12 藤が丘 最終のような書き方もできます - ○分おき:間隔・運転時間・行先(
藤が丘,藤が丘,星ヶ丘のように順番に回す)だけ決めて走らせる

手動のときは、プレビューのすぐ下に ふだん / お知らせ / 接近 / 最終電車 のボタンが出ます。押した瞬間に発車標が切り替わる(接近なら接近メロディも鳴る)ので、リモコンみたいに遊べます。

ほかに、全部の台を並べて見る「すべての発車標」、行先ごとの名前と放送を決める「行先と放送」、秒数や色・文言・テスト時刻の「全体の設定」、つながっているクライアントの一覧、API の例があります。 「全体の設定」の テスト時刻 を入れると、好きな時刻から時計を進められます。最終電車の動きを見たいときに 0 時まで待たなくていいように。
表示のデザイン
旧型LED

オレンジと緑の、昔ながらの LED 発車標です。操作画面の「表示」で 旧型LED を選ぶとこれになります。実際の駅の写真を見ながら、細かいところを合わせました。
- 段は「2 本表示」なら 2 段だけ。お知らせ・接近表示・最終電車の案内は、3 段目を足すのではなく、その段の列車表示と入れ替わる
- 接近表示「まもなく電車がまいります」は緑で、左寄せ
- 最終電車は行先が赤。「藤が丘ゆき最終電車です」の「ゆき」だけ小さい字
- 行先は 日本語 7 秒 / 英語 3 秒 で交互。発車前は時刻だけが点滅
- 幅に収まる文は止まって表示、はみ出す文だけ流れる
LED は 1 ドットずつ描いています(標準は横 256 ドット・16 ドットのフォント)。消えているドットもうっすら見えるので、遠目に見ると本物っぽくなります。
新型LED

東山線の新しいフルカラー LED の発車標です(「表示」で 新型LED)。上に印刷の看板(番線・東山線のマーク・「名古屋 栄 藤が丘 方面」・英語)、その下に 横 384 × 縦 48 ドット のフルカラー LED があります。
1 段目は次の電車。時刻・行先(日本語)・行先(切り替わる)の 3 つが並びます。

2 段目は、時間によって中身が変わります。
- ふだんは 2 本目の電車(ときどき緑のお知らせが流れる)
- 電車が近づくと 在線位置(下で詳しく)
- 1 分前から 「電車がきます | Train approaching」 と 「黄色い点字ブロックの内側でお待ちください」 が交互に
- 電車が着いて停車中(1 段目の時刻が点滅)は、次の電車 に戻る

停車中に「点字ブロックの内側で…」を出しっぱなしにすると、電車がもう着いているのに変なので、案内は接近中だけにしています。
在線位置
いちばんこだわったところです。2 段目に当駅 <<< 前駅 <<< 前々駅が並んで、電車がどこまで来ているかが見えます。

| 時刻表の時刻の | 電車の位置 | 表示 |
|---|---|---|
| 6 分前 | 前々駅に到着 | 前々駅の駅番号の枠が電車の絵に |
| 5 分前 | 前々駅を出発 | 前々駅と前駅の間の <<< が電車の絵に |
| 3 分前 | 前駅に到着 | 前駅の駅番号の枠が電車の絵に |
| 2 分前 | 前駅を出発 | 前駅と当駅の間の <<< が電車の絵に |
| 1 分前 | ― | 「電車がきます」 |
1 駅区間を「駅に 1 分止まって 2 分走る」で 2 分にしているので、前々駅からここまでちょうど 6 分。
- 電車のいるところは、駅番号(または
<<<)と電車の絵が交互に点滅 します(0.6 秒ずつ) - 在線位置がずっと出ていると 2 本目の電車が見えないので、電車が動いたときだけ 12 秒(10 回点滅)出して、ふだんの表示に戻ります
- 当駅には電車の絵を出しません。当駅の枠にはいつも現在地のマーク(Ω の形)が付いています
<<<は当駅に向かって明るいところが流れるアニメーション

電車の絵は、実物の写真を見ながら 1 ドットずつ打ちました(35 × 13 ドット)。

- 先頭は左上が斜めに落ちた形。前面の窓はなし
- 白い車体に、水色の柱と黒い窓、クリーム色の帯、白い裾、灰色の床下と車輪
- 周りを 黒いふち で囲んで、黄色い枠の中でも形がわかるように
最初は左右対称の「それっぽい電車」にしていたんですが、写真と見比べると全然違ったので描き直しました。
最終電車

最終電車は 2 段目に黄色い枠で「この電車は○○ゆきの最終電車です」。これも言語が切り替わります。
発車までの流れ
時刻表・○分おきのときは、時計に合わせて実際の駅の流れを再現します(秒数は「全体の設定」で変えられます)。
| タイミング | 起きること |
|---|---|
| 6 分前〜2 分前 | 在線位置(新型LED) |
| 60 秒前 | 接近表示 |
| 45 秒前 | 接近メロディ・接近放送 |
| 時刻ちょうど | 到着。到着放送(「この電車は○○ゆきです…」)。時刻が点滅 |
| 25 秒後 | 発車して、表示から消える |
到着放送は、接近放送が長くて時刻を過ぎても鳴っているときは、終わってから流すようにしています。
Windows 2000 クライアント

クライアント hasshahyo.exe は C で書いた 40KB ほどの小さな exe です。
- C ランタイムを使わず、Win32 API だけ で書いています。今の Visual Studio の C ランタイムは Windows 2000 で動かないので、
memsetなども自前 - ビルド後に exe のヘッダーの「対応 OS」を 5.0(Windows 2000)に書き換えて、Windows 2000 で起動できるようにしています
- 使っている API は全部 Windows 2000 にあるものだけ(ビルドのたびに確認)
- 画面はメモリ上の画像に描いてから一気に出すので、ちらつきません。LED は 1 ドットずつ、看板の文字はなめらかな文字で
- 音声はサーバーから取ってきて保存し、Windows 標準の MCI で鳴らします(mp3・wav)
- 新しい Windows でもそのまま動きます(Windows 11 で確認)
中国語・韓国語は、Windows 2000 にそのフォントが入っていないと表示できません。 フォントが無いときはその言語を自動で飛ばして、日本語と英語だけで切り替えます。 入れるときは「コントロールパネル → 地域のオプション → 全般 → システムの言語設定」で、簡体字中国語・繁体字中国語・韓国語にチェックします(Windows 2000 の CD が必要)。
専用機モード(ゲーセン風)

setup-kiosk.bat を実行すると、その PC を発車標専用機にできます。
- 電源を入れると自動でログオンして、デスクトップの代わりに発車標だけ が起動(シェルの置き換え)
- 起動中は、ゲーセンの筐体みたいな 黒い画面にシステムチェック(SYSTEM / MEMORY / NETWORK / SERVER)と「起動中です。しばらくお待ちください」。サーバーにつながったら発車標へ
- 発車標が落ちても自動で立ち上げ直す。エラーのダイアログも出さない
- ログオン中の「設定を読み込んでいます」も消して、背景は真っ黒。選べば Windows のロゴ画面も消せます
- 保守メニューは
Ctrl + Alt + Shift + F12(設定ファイル・コマンドプロンプト・再起動・電源オフなど) - 元に戻すときは
remove-kiosk.bat
音声について
公開版には音声は入っていません。駅の放送や発車メロディには著作権があるので、配ることはしていません。
使いたい音声(mp3 か wav)を自分で用意して、サーバーの server\sounds フォルダに入れてください。
- 操作画面の「行先の一覧」で、行先ごとに 接近 / 到着 / 最終・接近 / 最終・到着 の 4 種類を選べます
- 方面ごとにフォルダを分けられます(
sounds\Higashiyama・sounds\Nagoyaなど)。同じ名前のファイルでも、台ごとに自分のフォルダのものが流れます - 「行先名-cu.mp3」という名前で置くと、設定しなくてもその行先の接近放送になります(例:
藤が丘-cu.mp3) - 設定していない行先(試運転や自分で作った行先)は、台ごとの「設定のない行先」の音声を流します
- クライアントはサーバーから音声を取ってくるので、Windows 2000 側に音声を入れる必要はありません
ダウンロード
おうち発車標 v1.0(公開版・約 90KB)必要なもの
- サーバー役の PC:Node.js 18 以降(追加のパッケージは不要)
- 発車標にする PC:Windows 2000(SP4 推奨)以降。サーバーと同じ PC でも OK
使い方
- サーバー役の PC で
server\start-server.batを実行して、ブラウザでhttp://localhost:8020/を開く - 発車標にする PC に
clientフォルダをコピーして、hasshahyo.iniのサーバー=をサーバー PC の IP アドレスにする hasshahyo.exeを起動
くわしくは zip の中の README.txt を見てください。同梱の時刻表はサンプルで、実在の駅の時刻表ではありません。