HOME >> 鉄道模型工作室 > モニタ式の操作盤を作ろう キャリヤ周波数アップを確認する
ラズパイのWebIOPi アプリを使って卓上レイアウトを遠隔操作するプロジェクトを進めてきた。 今回は、PWM制御用のキャリヤ周波数アップに取り組みました。 その結果をレイアウトで確認します。
■ レイアウトでの確認
やっとの事でキャリア周波数の高周波化が実施できたので、卓上レイアウトでその機能を検証することにした。 システムの状態を下に示す。
.
各電源を入れた、タブレットから起動すると列車は走り出すが、何だか様子がおかしいのである。
速度調整が効かない!
あわててオシロの電源を入れた波形を見ると・・・・・・・・・・・・・・。 右上の写真のように凄い波形である。 時間スケールを拡大した状態を右に示す。 なんと周波数は 781kHz を示していた。 もとの黙阿弥なのだ!
.
****************
ダメモトで自動起動していた WebioPi をターミナルから停止させ、再起動させた。 左の写真。 勿論、給電系の電源をオフさせて実施しました。
.
WebioPi が確実に起動していることを確認し、給電系をONさせると、オシロに現れた給電電圧の波形は、9kHZ の綺麗なPWM 波形が現れた。
さらに、速度調整も上昇、下降ともに問題なく操作できました。
出来るのだ!
コアレスモータ搭載のEL(下左、下中)と、KATO通常動力のキハ58(下右)の場合の給電電圧波形を下に示す。 問題なく操作出来ている。
でも、何故なのだろうか。 WebioPi の自動起動は今まで問題なく実施できたのに、今回はなぜダメなのだろうか?
疑いの目で、もう一度最初から操作したが、結果は同じであった。 WiringPi との連動が原因と推定するが、自分の知識では対応策がない。 WebioPi の自動起動を中止しターミナルから起動させる方法では意味がなにのである。 モニタやキーボード、マウスを必要とするからである。
そこで、思いついた方法は、ボタンを使ったシャットダウン方法と同じ手を使う方法である。 今ある機能の中の命令本文を書き換えてみてトライして見た。
*******************************************************************************************
ボタンによるシャットダウン機能は、サンプルファイルにあった 10-01-sw-poweroff.py をそのまま使用しています。 その中にある、
args = ['sudo', 'poweroff']
と言う命令が本命と睨んでいるのでいます。 sudo と言う言葉がヒントですね。 そこで、ここを、
args = ['sudo', 'service','webiopi','start']
と変えて、テストしてみました。 結果は大成功でした!。 そこで、この命令に替えたファイルを10-01-webiopion.py として新しく作り、プッシュボタンも追加して対応する事にしました。
プッシュボタンを追加した状態を下に示す。
これによって、モニタ、キーボード、マウスなどを接続していなくても、タブレットやスマホから操作できるようになりました。 PWM制御のキャリア周波数は、目標の20kHz に達せず、その半分の 9kHz ですが、電車はスムースに走行出来る事が確認出来ました。 後期高齢者にとては、可聴域を外れているようであり、走行音も静かでした。
*****************************************************************************
これで、このプロジェクトは本当に完了とし、模型車両の走行を楽しむことにします。
■ あとがき
今回の検討結果をまとめている時、昔ダウンロードした資料も含めて整理していました。 そして、参考にさせて頂いた「最新 RaspberryPi で学ぶ電子工作」のWebサイトにアクセスしてみました。 すると、その後、 RaspberryPi 4 に対応した新しい本などを出版しれている事を知りました。 自分が持っているのはRaspberryPi 3 なのでこの本を入手しても意味ないのですが、新しいアプリへの対応が示唆されているのではないかと期待できますが・・・・・・。 参考になるかな?
さらに、古い本へのメンテナンスも実施されていましたので、早速ダウンロードして内容をチェックしました。 すると、上記のように最後に遭遇したトラブルの説明があり、その対応方法も記載されていました。 ウ・・・・・・・・・・気が付くのが遅かったのだ。
金丸先生の対応は、じつにスマートで、あるファイルにたった一行、
sleep 10
と追記するだけで対応できますと記されていました。 10秒待つのだ! との命令なのです。 GUI 画面でなく CLI 画面に設定する方法もあるようですが、やはり WiringPi を呼び出すタイミングが関係しているのは事実なのでしょう。 従って、自分の方法は間違ってはいなかったのですが、なんと泥臭い方法でしょうか!
*******************************************************************
また、 金丸先生は出版済みの著作物に対しても、親切にメンテナンスされておられることに驚きました。
いろいろ参考にさせて頂き、改めてお礼申し上げます。
2021/9/6 作成