HOME >> 鉄道模型工作室 >  モニタ式の操作盤を作ろう 給電操作画面を作る

鉄道模型工作室  モニタ式の操作盤を作ろう 給電操作画面を作る

 今まで実施してきた卓上レイアウトの制御について、ラズパイのWebIOPi アプリを使って遠隔操作し、パソコンやタブレットの画面から操作することにした。 今回は給電操作を実施する画面を作って操作状況を確認する。

 

■ まず、結果を報告

 いろいろつまずいて来たので、今回は最初に結果から報告します。 下左の写真はタブレット端末からアクセスしている状態です。 そして、下右の写真は制御対象の電子回路です。

 端末から操作すると二つのLEDの点灯が制御可能となっています。 モータドライバの供給電源を12voltに変更し、二つのLEDを接続している出力端子をレールの給電端子とすれば、鉄道模型のリモート式コントローラとして機能するはずと考えています。

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

 電子回路を紹介したので、ここで、使用したモータドライバはTB6612 の特徴を説明しておきます。 PWM信号を入力するポートと、出力方向を指定する二つの入力ポートがあります。 その組合せで出力ポートの状態を制御できます。 このICの説明書の一部を転載します。

 ボタン1をONにするとOUT1がONになりモータは時計方向に回転します。 ボタン2をONにするとOUT2がONになりモータは反時計方向に回転します。 もし、ボタン1とボタン2を同時に押すと・・・・・・・・・・・・・モータはショートブレーキ状態、即ち両端ともGNDに接続されます。 即ち、LEDは消灯してしまうのです。  どちらのボタンを押していない時は、OFFの状態、即ち、給電側やGND側に接続されていない状態となり、これもLEDは消灯してしまうのです。

 何を説明したいかと言いますと、STOPボタンが要らないと言うことです。 当初は、右方向と左方向のボタンに加えて、STOPボタンを加える予定でした。 そして、それぞれのボタン間の連携を、どこでどうやって記述するのかが心配でした。 あるボタンがONになった時、他のボタンをOFFにする必要があったのです。 でも、上記の作動状態によれば、各ボタンを独立させて作動させれば、不具合が無い事がわかりました。 ただし、両方のボタンをONさせると電車は止まってしまうと言う不思議な状態に陥ることになるのですが・・・・・・・・・・。 ただし、フライホール付きモータの場合はどうなるのだろうか? 実際に確認が必要ですね。

 この事は、ボタン毎に独立して作動させればよい事になり、極めて簡単に命令文が記述出来ることになります。 連携が不要なのです。 また、 PWM出力は、GPIO 18 から、ボタン1とボタン2の出力は、GPIO 23 と GPIO 23 から出力させます。

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

■ ファイル構成

 今回作成したファイルは、フォルダ21をそっくりコピーして新しくフォルダ22を作り、それぞれ関係するファイルの関係する部分を修正しました。 従って、ファイル構成は先回の報告内容と同じであり、ファイル名も全く同じにしています。

 

  .

■ 操作画面を作る

 最初に、操作画面をHTMLファイル作成ソフトである Dreamweaver を使って右に示すようなページ構成に修正しました。

 全体をテーブルタグを使った構成とし、各セル内に要素を配置した。 要素は、進行方向を指定する二つのボタンと、速度を調整するスライダとしている。 テーブル以外の外側の背景は薄い色をつけ、テーブル内は白色の背景色としている。

 タイトル部分は、深緑色として文字の白色を目立つようにした。 ボタンの文字も大きめのサイズとし、さらに、ON時のボタン色も黄色に変更した。 これらの細工はHTMLファイルであるから、自分にとってはお手の物である。 ただし、後期高齢者のおじさんがデザインしたので、野暮ったいのはご容赦頂こう。 また、タイトル名をテスト22と変更するのを忘れていますね。

 id="gpio23"とした左方向ボタンがクリックされると、toggleLED(23)を実行せよとの命令が出されます。 右方向のボタンも同様です。 また、スライダに関しては表示場所を設定しているのみです。

 作成したHTMLファイルのテキストファイル ⇒ index txt

 

■ スタイルシートの作成

 操作画面の表示スタイルを記述しています。 ボタンの形状と HIGHとLOW時のボタンの色を設定しています。 このスタイルシートは、例1のファイルに、例3の内容を追記し、ボタンの文字サイズを14から16に、また、.HIGH の色指定を #26a1ff から #ffff00 に変更しています。

 作成したスタイルシートファイルのテキストファイル ⇒ styles.txt

 

■ JavaScriptファイルの作成

 ブラウザ側で処理する命令を記述しています。 まず、記述を明確にするため、コメント行を削除しました。 本当は残しておく方がベターなのですが・・・・・・・・。 そして、例1の記述内容に例3の記述を追加しています。 勿論、スライダは一本だけなので、余分な記述は削除しています。

 toggleLED(23)を実行せよとの命令を受け取ると、ボタンの色の変更と、 webiopi の callMacro を呼び出してtoggleLEDを実行させます。 また、スライダ関係をセットアップし、スライダの位置が変化した場合は、その値を計算して webiopi の pulseRatio(18, ratio) を変更させます。 これはPWM出力を指示しています。

 作成したJavaScriptファイルのテキストファイル ⇒ javascript.txt

 

■ Pythomファイルの作成

 ラズパイ側で実行する命令を記述しています。 命令は webiopi アプリの基で実行されます。 GPIO関係の出力設定処理などの初期設定と終了処理などを記述しています。 さらに、ブラウザから送られてきたcallMacroの実行命令にもとずき、指定ポートの状態を反転させます。 これによってポートのON/OFFが実行されます。

 作成されたPythonファイルのテキストファイル ⇒ script.txt

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

(注記) 紹介したファイルは、テキスト形式のファイルにしています。 もともとの形式のままですと、それぞれ単独では完全に作動しませんので、ここでは意味がありません。 そこで、ファイルの内容を紹介するため、あえてテキスト形式で提供しました。 でも、それぞれのファイルの記述はテキスト形式で書かれていますので、拡張子の部分を本来のファイル形式に書き直せば、元の機能を発揮します。 しかし、webiopiなどのアプリがセットされ、同じフォルダに設けた jsフォルダが存在する環境でしか機能しません。
  なお、 このjsフォルダ内のファイルは、「Raspberry Piで学ぶ電子工作 超小型コンピュータで電子回路を制御する」の演習用のサンプルファイルのダウンロードリンクよりダウンロードし、そのまま利用しているものです。 また、webiopi の環境設定なども必要ですので、上記の書籍を参考にして設定してください。
  また、コメント行をあえて削除した理由として、4っつのファイルはその書き方が異なっている事です。 同時に編集しているとその書き方で混乱してしまい、ミスる恐れがあったので削除しています。 凡ミス防止なのです。

 

■ 残された多くの課題

 やっとここまで来たのですが、まだまだ課題が残っています。 

  1. webiopiの自動起動: 
    ラズパイ画面で操作する場合は必要ないのですが、他のパソコンやスマホから操作する場合には、ラズパイでの操作が面倒となります。 このため、ラズパイの電源ONだけで、WEBサーバーが機能を開始できるように自動起動が必要です。 その設定方法は教則本に示されているので実行する予定です。
  2. ラズパイ本体のシャットダウン方法:
    上記と同様にシャットダウンもボタン操作で実行させると、ラズパイにモニタやマウス、キーボードを接続せずに使用できることになります。 この方法も教則本に示されているので実行する予定です。
  3. IPアドレスの固定化:
    Wi-Fi ルータを介してアクセスしているのですが、その時のIPアドレスは自動設定のままだと、アドレスが変わってしまう恐れがあります。 このため、その対応を実施しておく必要があります。
  4. ポイントの操作の追加:
    給電制御だけでなく、ポイント操作も実施できれば便利です。 こちらはボタン操作によるON/OFF操作で実行出来るのが、簡単に追加できると考えいます。
  5. PWM周波数の高周波数化
    後から気が付いたのですが、PWMのキャリヤ周波数は、たったの 50Hz とのこと。 モータの速度制御がスムースに出来るのか不安です。 平滑回路をを使って直流にしてしまうのか、あるいは裏技をネットで探してせめてキロヘルツ単位までは上げたいものです。
  6. 卓上レイアウトでの走行テスト:
    これらの課題を含めて、実際のレイアウトに接続してその作動を確認する必要があります。 停止ボタンが無い事など、新たな問題点が出てくるかもしれません。

 次回は、レイアウトでの走行テストを予定しています。

 

ページトップへ戻る .


 2021/8/10 作成