HOME >> 鉄道模型実験室 > 登山鉄道レイアウトとモニタ式操作盤 やっと完成だ

鉄道模型実験室 No.227  登山鉄道レイアウトとモニタ式操作盤 やっと完成だ    

 登山鉄道レイアウトの操作盤について、WiFiを使った通信によってモニタ方式での操作ができないか検討をした。 登山鉄道レイアウトでの走行テストの結果、ロジックミスのトラブルなどを乗り越えて、やっと完成することが出来た。

 

■ 登山鉄道レイアウトでの走行テスト

 先回報告したロジックミスにたいする対策を盛り込んで、登山鉄道レイアウトで走行テストを実施した。

 今回は、Bトレの名鉄電車をセットしてモニタ操作をチェックした。

 この時の操作状況を動画で紹介しよう。

 なれない操作なのでモタモタしているが、基本的に対策状況は良好である。 レイアウトの表示盤も操作内容に応じて問題なく表示されていた。 でも、ポイント作動は、確実な作動とは言い難く、まだまだ改良の余地がありそうです。 ソレノイド駆動の様に、カチカチと動かす必要がありますね。

 

■ まとめ

 今回実施した内容について、まとめておきます。 まず、システムの全体像として、下の様なイラストを作成してみました。

  .

 新登山鉄道レイアウトの制御用マイコンは、多数のポートを有する Arduino MEGA を使用しています。 そして、WiFi を使ってモニタ操作を実施するため、WEBサーバ機能も兼ね備えていたESP32モジュールを使いました。 WEBサーバ機能を活用すると、モニタ操作画面をホームページの作成と同じ技術(HTML記述)が使えるからです。 このHTML記述を使えば、パソコンならなんでも使えるし、タブレットやスマホもモニタ操作機器として、専用のアプリ無しで使用出来ます。

 遠隔操作のための WiFi 無線通信は、WiFiルータを介してローカルLANのエリアを構築しました。 また、ESP32モジュールとMEGAの間は、入出力ポート間を直接接続しています。 そして既存の制御システムは、スイッチ類、表示盤、センサ、アクチュエータなど制御機器類は、改造せずにそのまま使用しました。

  .

 

●ハード系の追加

 ESP32モジュールを新たに使用するため、左に示すようにユニバーサル基板を使ってユニットを作成した。 使用したESP32モジュールは、ESP32-DevKitC という ESP32 WROOM 開発ボードである。 回路図を右上に示す。

 DC5volt 電源は、システム内の定電圧ユニットから供給している。 また、スケッチの書込む時など、USB 使用時の電源の干渉を防止するためスイッチを設けている。 MEGAポートとの接続は、ポートの浮きを防止するため、プルダウン回路としている。

 

● ESP32のスケッチの新設

 このシステムを構成させるプログラムについては、(1)モニタ画面の新設、(2)ESP32のスケッチの新設、(3)ArduinoMEGA のスケッチの修正の3項目が必要である。 最初に、WEBサーバ機能も兼ね備えていたESP32モジュールのスケッチ記述から検討したが、ESP32の限界を感じた。

  1. ESP32モジュールは、WEBサーバ機能を有していると言えども画像ファイルは取り扱えない。 テキスト形式での送受信しか出来なかった。 画像ファイルを含むHTML記述による操作画面を作るには、別の手段が必要である。
  2. このため、ESP32の役割は無線で送られ来るサーバへのアクセス要求を受取、その中に含まれている情報を活用する。 即ち、送信されてきた、“ /?名前=値 ” の情報から指令内容を読み出し、制御用のAruduino マイコンへとつなげる役割とする。
  3. また、送信側には受け取った情報をもとに対応するメッセージを返信する。 このメッセージは、返信用コマンド内に直接書込んでいます。 そして文字化け防止のためアルファベットで記述した。
  4. 速度制御情報は、モニタから送られてくるUP/DOWN の指示をもとに、ここで速度変数に変換し、その数値をD/A 変換してアナログ値とし、Aruduino へとつなげる。
  5. ArduinoMEGAに情報を送信するGPIOポートを、ポイント1、ポイント2、進行方向右、進行方向左のデジタル出力、と速度変数のアナログ出力として設定した。
  6. WEBサーバとしてのIPアドレスは、ローカルIPアドレスを使用し、固定アドレスとして設定する。
  7. 最終仕様のファイルの内容をHTML形式で紹介する。 ⇒ ESP32_test45.html

● モニタ画面のHTML記述

 いろいろな機器から操作できるようにするため、モニタ画面はWEBブラウザが活用できるHTML方式で記述する。 

  1. モニタ画面はHTML方式で記述し、画像の取り換えなどの動的細工はJavaScript を使って作動させる。
  2. 操作ボタンなどのクリック動作に応じて、指定のWEBサーバに指令情報を送信する。 その方法は、GET方式により、サーバのアドレスの後に、“ /?名前=値 ” を追記して送信する。
  3. WEBサーバから返信されて来たメッセージ情報は、指定のフォーム内に表示させると、作動状態を確認することが出来る。
  4. モニタ画面を記述したHTMLファイルは、パソコンのフォルダ内に画像ファイルを含めて一式保管し、ブラウザを使って表示させる。 この場合はWindows 等のOSが走っていることが必要となる。 タブレットやスマホのブラウザでは、HTMLファイルのテキスト部分は表示できるものの、リンクを貼った画像ファイルは表示出来ない。 例外があるかも知れないが・・・・・・。
  5. このため、これらの機器を使用する場合には、アクセスできる場所にHTMLファイルと画像ファイルの一式を保管し、WEBサービスが提供できるサーバの設置が必要となる。 今回は常時起動しているレンタルサーバを使用した。
  6. 最終仕様のファイルの内容を紹介する。 ⇒ esp32test-44.html

● ArduinoMEGA のスケッチの修正

 ESP32モジュールの追加に従い、ArduinoMEGA のスケッチの内容を修正した。

  1. ESP32モジュールからの情報を受け取るGPIOポートを新しく設定した。 ポイント1、ポイント2、進行方向右、進行方向左、のデジタル入力と速度変数のアナログ入力として使用する。
  2. 手動運転の場合において、パネル操作とモニタ操作をスイッチを使って選択する設定とした。 この選択スイッチは未使用であったポイント3のスイッチを活用した。
  3. パネル操作とモニタ操作による操作指令は、変数を共通使用して、今までのプログラム内容をそのまま使用できるようにした。
  4. duty値の計算は、それぞれの場合に合わせて計算式を設定している。
  5. 最終仕様のファイルの内容をHTML形式で紹介する。 ⇒ Sin-Toza-Unit-10.html

● 反省と課題

 今回のプロジェクトにて、また新たな知見を得ることが出来た。 後期高齢者の楽しみとボケ防止には充分な効果があったと信じている。

    ************************************************************

 また、今回も課題が残ってしまったが、それはポイントのスローアクションが不安定であることだ。 どうしようかな?

ページトップへ戻る  .


 2022/11/10