DCCハンディーコントローラーをつくる(3)
ESP Developerにサーバープログラムを書き込んで何とかここまでできました。
結局サーバー経由で、httpのGETメソッドを使って制御したのでは、時間の遅れが生じるので、iPhoneのweb画面からファンクション番号を指定して、オンオフはESP Developerのデジタル入力端子に接続したタクトスイッチで制御することにしました。
タクトスイッチはモーメンタリースイッチとして使い、web画面上からは少し時間が遅れますが、オルタネートとしてのスイッチ機能をつかえるようにしました。
サウンドデコーダーのファンクションに割り当てられているサウンド機能は、F4以降はメーカー・デコーダーごとに異なるので、こういう形で可視化できると物覚えの悪くなった中年オヤジには楽ですね。
スマホから操作する高機能のDCCコントローラーは、DesktopStationさんがラズパイを使って開発されるようなので、私は呑み会などでちょっと走らすような簡易版をめざします。
Comments
遅れが生じるのは、GETコマンドを叩いた時に、ESP側のHTTPサーバーの応答が遅いせいですね。
ボトルネックは分かりませんが、HTMLを書き出す処理とかあると、かなり重くなると思います。コマンドを叩くときは、書き出さないとか、工夫をしてESP側の処理を軽くすると良いと思います。
Posted by: Yaasan | January 12, 2018 05:16 PM
Yaasanさま
アドバイスありがとうございます。
おっしゃるとおりだと思います。
もう少しプログラムいじって工夫してみます。
あとの大きな課題は、DSシールドからの応答にどう対応するかです。
速度調整は画面上のスライダー操作ではなく、やはりリアルなつまみを回しておこないたいので、完全ワイヤレスを目指しているわけではありません。スマホ画面のタップだけではなく、リアルスイッチも併用しようと思います。
Posted by: ゆうえん・こうじ | January 12, 2018 05:59 PM
ESPのプログラムで、HTMLの書き出しよりシリアルポートからの出力を優先するように書き直して少しは早くなりましたが、やはり一呼吸遅れます。ライトのオンオフなどはよいのですが、汽笛などではタイミングがずれるので、よくないです。ESPをサーバーにするというやり方では限界があるようです。
Posted by: ゆうえん・こうじ | January 13, 2018 12:48 AM