鉄道模型工作実験室

Nゲージ鉄道模型に関する工作や実験を行っています。

スマホで操作する鉄道模型コントローラ

ラズパイを使用してモニタ式の鉄道模型操作盤を作ろと挑戦してきたが、あまりの難しさに挫折していた。でも、先回の余談2の中で考えていた方式が頭から離れなかった。
そして、今の自分の知力と気力で届く作品をついに仕上げる事ができた。完成までの足跡は

で報告していましたが、ここではその結果を紹介します。
今回取り組んだ方法は、ブラウザ画面をお得意のHTML形式で記述し、操作機能についてはJavascriptを活用します。一方、ラズパイ側は、WEBサーバー機能とPython記述を使ってGPIOを制御しようとするものです。

Python記述で作ったscript.pyファイルと、Javascriptで作ったjavascript.jsには手こずりましたが、何とか機能するアプリを作ることが出来ました。
その操作画面とハード回路を下に示します。

    

卓上レイアウトでの状態を示します。

    

また、操作状態の動画も紹介しましょう。
  


諦めないのが、わが取柄と思っています。

          ヤッターマン 乾杯!

モニタ式操作盤を作ろう PyQt5を使う

もう一度初期化してインストールをやり直しました。最新バージョンの「イメージ」形式を使ってインストールを実施する。imager_1.6.2.exe です。RaspberryPi OS (32-bit) Released 2021-05-07 が展開されました。
SDカードをラズパイにセットして電源をONすると、起動しましたので国別設定などを実施すると、かなりの時間がかかりましたが、無事完了しました。日本語の入力は出来ませんが、日本語の表示はされていました。なお、日本語入力は当面は避けることにします。


■ PyQt5のインストールとトライ
今回はGUIソフトとして、ネットの「Symamonenの技術ノート」を参考にしてPyQt5をインストールする事にしました。インストールは無事に完了したので、説明に従って恐る恐る使い始めました。
PyQt5を使ったGUI開発は、pythonのIDEである eric を起動して使用するとのことです。
試しに、あちらこちらをいろいろ触ってみましたが、よく分からないのが本音です。
そこで、作ろうとしている操作ボタンのイメージを設定して、作って見ることにしました。

      

でもやっぱり難しいものです。どこをどうやれば良いのか、出来上がったプログラムの内容を見ても、理解出来ないのです。


 **********************  休憩(半分は、あきらめムードです) *************************
【余談 1】パソコンを使って運転操作を実施するアプリとして Traincontroller があるそうです。その使用状態をYouTubeで見たのですが、簡単に、かつ、楽しく実施していました。このアプリはDCCシステムと連携して作動させていますので、ポイントなどへの配線が不要と思われます。運転会などで、線路を設置する作業と並行して、レイアウト図を設定すれば、即、運転操作が可能になると思われるので、世界の標準(?)になるのもうなずけます。
一念発起してささやかな年金を貯め、DCCシステム一式を導入したらーーー?との誘惑が頭をよぎります。ーー電子工作はやめるの?


【余談 2】今から17年前、ホームページ作成を勉強していた。その時、Java script を使ってボタンを押した時の動作など、細工していたことがありました。onmouse‥‥などの単語が懐かしく、ボタンの色を変えたりしたことを思い出しました。トグルボタンの図を差し替えて、ポイントの定位や反位を示すことも可能と思われます。このイメージが残っているので今回挑戦したのですが、様子が異なっているので戸惑っているのです。いっそのことHTML形式で記述出来ないだろうか‥‥とも考え始めています。


  *******************************************************************************
実は、ハード回路も既に準備しているのです。下左の写真。モータドライバを使って2個のLEDを点灯させ、さらにスライダを動かしてその明るさも変えようとしています。うまくいけばそのまま電車の進行方向と速度を操作する事が出来るようになるのです。

   

しかし、トライして作成したプログラム(上右の写真)を見ると、class と言う命令がでてきています。さらに 見慣れない self や@マークなども随所に出ているのです。オブジェクト指向型の記述だ‥‥‥‥。
この記述方法は、初めてなのでチンプンカンプンです。いちから勉強が必要ですが、もう80才になろうとしている輩には、知力と気力がありません‥‥‥‥。

      

残念ながら再び、ダウンです。
  **********************************************************
また、気力が回復したら、挑戦してみたいですね。

モニタ式操作盤を作ろう ラズパイの再始動

4年前に使用していたラズパイ・セットを作動させようとセットしたが、何故だか立ち上がって来ないのである。モニタがむなしく No Signal と表示して切れてしまうのである。配線をチェックするも間違いない。何度かトライしたが早々に諦めて、OSを再インストールする事にした。
また、使用するGUIは、ネットの情報をもとにTkinter を使うことにする。このTkinter はPython のGUIフレームワークのひとつで、Python をインストールして置けば使用できるとのことであった。このため、OSなども最新バージョンをインストールしよう。


■ OSの再インストール
ラズパイのメモリはmicroSDカードである。取り出してSDカードホルダに装着する。

    

そして、パソコンを使ってこのSDカードに再インストールを実行した。Python は3.7.3である。

 

さあ、あの山の頂を目指して頑張ろう!


■ 日本語?が入力できない
OSを再インストールしたSDカードをラズパイ本体にセットし、電源をつなぐと、今度は無事に立ち上がって来た。OSの再インストールは成功であった。
  ******************************************************************
Thomy を起動し、参考サイトに従って、サンプルプログラムを入力しようとしたが、×の文字が入力できないのである。

   

コメント欄ならともかくも、命令文本体の中に日本語記号が必要なの?・・・・と思いながら×の記号を探すが、キーボード上には見当たらなかった。これは*で代用できるのではと思って入力して先に進んでみると、やはりエラーとなってしまった。
そこで、サンプル頁より、コピーペーストでこの部分を記述すると、エラーなしで先に進むことが出来た。


■ 日本語入力をセットする
本当に日本語入力が必要なのかなと疑問に思いながらも、日本語入力が可能なように、さるサイトを参考にして、次の命令を実行した。
  sudo apt update
  sudo apt install ibus-mozc
そして、上記とおなじプログラムを記述すると、×の文字も無事入力できました。そこでさらにボタンを幾つか作成し、ボタンの表記も日本語で設定して実行をかけました。
  ***************************************************************
すると、今度は font がありませんとのエラーが出てきました。しかし、命令文の中のフォント指定を外すと実行可能でした。
命令文の記述ではOKなのに、プログラム実行上ではNG?
  ****************************************************************
これは、フォントの指定方法が間違えていると思って、あちこち覗いていると、どこかの設定をミスっていたのか、変な画面に突入してフリーズしてしまいました。どこをどういじったのかも思い出せずにウロウロです。そしてShutdownも出来ませんでした。電源を抜いて再度立ち上げようとしましたが、これまたNGでした。

      

  *********************************************************
■ 反省
頭を冷やして考えてみました。参考にしていたPython用Tkinter の説明サイトは、RaspberryPi を対象としているのでなく、一般のPCを対象にしている事に気が付きました。フォント指定方法がラズパイでは未対応なのかもしれませんし、指定したフォントのインストールなども実施する必要があったのでしょう。
でも、再起動出来なくなっていたので、ふりだしに戻りました。