Nゲージレイアウト用制御盤に駅のアナウンス類の音を再生するスイッチをPICマイコンで作って取り付けるのと、WAVプレーヤーの組み込み。
Nゲージレイアウト用制御盤 (その10) Web版コントロールパネル
線路のどこにフィーダーをつないで、どこにギャップを切らなきゃならないのかが未だに決まらない。
ゆえに、いつまでも線路が引けない。
頑張って作ろうと思っているのだが、次から次にやりたいことが増えて・・
Nゲージレイアウト用制御盤、残る機能は・・」に記したように形になってきている。
制御盤は「続いての大物は全体を制御する「Raspberry Pi3」上で動作するプログラム。
プログラムはRaspberry Pi3上に常駐させ、GUIなしでPICマイコンを相手にするつもりだった。
プログラムを作り進めていくとやはりプログラムのデバッグが必要となる。
ならば、web上にステータスなどを表示したり、プログラムのドライバ機能をwebで作れば、と考えたら結局Web版の制御盤に行きついてしまった。
最終的なデバッグは終わっていないが、ほぼ、形になったのがこちらの
当然ながらここに公開しているものは実際にポイントの切り替え、信号の点灯なんかできないデモバージョンです・・
ただ、画面上の信号は現示色を示せるようにしてます。
こんなことやってるからなかなかレイアウトはできない。
進路の構成に際してどのポイントを転換し、どの信号をどのように現示するかの制御は、webクライアント上で動作するjavascriptによるプログラムが行う。
一方、制御盤の操作によって進路を構成する際にはサーバ上に常駐させたphpによるプログラムのみでも動作することが可能とした。
マイコン、サーバ側AP、webクライアント側APの同期、通信等は、
- RaspberryPi常駐プログラムとマイコン間はI2Cで通信。これは、c言語+wiringPiで構築
- RaspberryPi常駐プログラムとwebサーバ用phpプログラム間で通信する部分はメッセージキューを使用
- RaspberryPi常駐プログラムとwebクライアント間でデータのリロードを指示する部分はソケット通信を使用
- webサーバとwebクライアント間はajaxでJSON形式のデータを介して必要データのみ送受信
という感じ。
元々、本物の鉄道の制御盤のようにテコを動かしてポイントを切り換えたりしたいなぁ、と思って作ってきたのだが。
いざ、いろいろと出来上がってくると・・結構場所をとる、いったん形になると信号や入換標識を追加したりとか、スイッチを追加したりとかはかなり困難である、という想定どおりのデメリットが。
一方、今回作ったWeb版制御盤を使えばスマホからでもポイントを転換する操作ができるようになった上、信号の追加等々も非常に簡単。
照明用のLEDの制御もかなり細かく制御できる。
ウ~ム、いまさら、制御盤はなかったことに・・なんてしたくはないしなぁ。
さて、今回のプログラムが完成することで、マイコンを使ったポイントの切り替え制御ができるようになる。
続いては、複数のコントローラで本線上り線、本線下り線、支線等々を運転できるようにギャップを入れる場所を検討。必要に応じて細切れにギャップを入れ、リレーを使って必要な場所に給電できるようにするつもり。
もちろん、リレーが故障したら車両は一切走行できなくなる、なんてことがないようにしなくちゃ。