HOME >> 鉄道模型工作室 > モニタ式の操作盤を作ろう 改善の手掛かりを探す
ラズパイのWebIOPi アプリを使って卓上レイアウトを遠隔操作するプロジェクトを進めてきた。 そして、実際の卓上レイアウトにてその機能を確認し、このプロジェクトを取りあえず完成としました。 しかし、PWM制御用のキャリヤ周波数が 50Hz という低周波なので、やはり電車はぎごちない動きでした。 そこで、この周波数アップの改善に取組むことにしました。
■ 現在の課題
現在の問題点については、ブログにてまとめています。 「スライダのデザインを変える」(2021/8/24)を参照下さい。 ここで、このプロジェクトを終了とする予定でしたが、やはり諦めきれませんでした。 問題点を再掲載します。
モータをスムースに動かし、かつ可聴域外にするためには、キャリヤ周波数を20kHz程度までアップさせる必要があるのです。 しかし、webiopi ではソフト上でPWM信号を作成しているため、周波数を高くすることが不可能である。 さらに、50Hz固定なのです。 また、ハード的方法として WiringPi もあるようですが、これも古いソフトなのです。
そこで、眠っていた両目の片方を開けて、改善の手掛かりをネットで探ってみました。 出来るならと、新しいWebサーバーソフトと高周波PWM制御が可能なGPIO制御ソフトを探すことにしたが、門外漢の悲しさか、新しいソフトが充分に理解出来ませんでした。 新しい(?)アプリである pigpio に特に注目して探したが、Web ソフトとの連携方法が分からなかったのでした。 素人の自分が応用できそうな実施例を探したのですが、ヒントになるようなサイトは見つかりません・・・・・・・・・・・。
.
■ WiringPi を使おう
やっと諦めが付いたのが8月末です。 なにも、新しいものを追うのでは無く、今まで参考にして来た教則本としている「最新 RaspberrPi で学ぶ電子工作」に戻って、課題1の解決に絞ってトライすることを決めたました。 この本は、2016年7月20日に刊行されたもので、自分が入手しているのは 2017年2月1日第2刷発行の物です。
そして、以前、関係サイトより追加情報PDFの資料をダウンロードして印刷済みの資料があったので、「9.7章 サーボモーターの制御」を参考にすることにしました。 ここでは、Webサーバーとして機能するwebiopi と、ハード方式のPWM制御が可能な WiringPi の両方を連携使用している例が説明されていたので、この記事を参考にしてプログラムを改善していく事にしました。
ただ、あるサイトの説明では、キャリア周波数としての設定について、下記のような説明がありました。 Clock の指定は、Arduino での周波数変更時の経験より、同じような方法と解釈できますが、周波数の設定が最大で約19kHz までとなってしまうのが少し不安です。
PWMは、以下の式で成り立つ。
PWM周波数 = 19.2MHz / Clock / Range
Duty比 = Duty / Range
wiringpiでは、Range = 1024 で固定しているので、Clock と Duty の2つのパラメータでPWMを制御する。
Range = 1024
PWM周波数 = 18,750 / Clock
Duty比 = Duty / 1024
この Clock の指定については、Arduino の場合の「Arduino Uno のPWMキャリア周波数を20kHzにする」(2020/4/4)にて報告していますプリスケーラの倍率を変更する事とおなじと解釈しています。 CPUの石の種類が異なるものの、同じような動作をしていると考えているからです。 ただ、ヂューティ比が絡んでくる点が違っており、CPUのアルゴリズムの違いと思われます。
■ 新しいファイルを作る
新しいフォルダを作り、関係するファイルの記述を修正する事にした。 参考にしたのは、「9.7章 サーボモーターの制御」のサンプルファイル一式に含まれていた 07 ディレクトリのファイル群である。
このシステムでは、複数のファイルが関係しているので、ファイル間の連携関係を自分なりに整理してみた。
また、キーボードやマウスなどの作業がしやすい様に、セットを机上に移動させて作業することにした。
ラズパイの作動状態を確認するため、モータドライバの出力は、1.8kΩの抵抗を介してLEDを点灯させる模擬回路とし、ポイント駆動は実際のポイントを駆動させることによって実施することにした。 また、モータドライバの出力波形はオシロを使って観察する。
こうして、新たな意欲でPWM制御のキャリア周波数アップに取組ました。
勿論、必要となって来たWiringPiのインストールとそのセット作業を始めましたが、これもモタモタでした。 単にインストールするだけではだめで、WiringPi-Pyton 関係のインストールが必要である事がわかり、教則本に従って実行する必要がありました。 ラズパイのOSには、何時までも手こずります!
次回は、その検討を報告することにしよう。
2021/9/4 作成