Endless trail

寄り道好きのひとりごと
<< August 2020 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 >>
 
PR
RECENT COMMENT
  • Wifi throttleの仲間がいた⁉
    MECY (02/14)
  • Wifi throttleの仲間がいた⁉
    okiraku346 (02/14)
  • KATO C56 (HOタイプ)を頑張ってオープンサウンド化にしてみる。
    MECY (08/30)
  • KATO C56 (HOタイプ)を頑張ってオープンサウンド化にしてみる。
    KAKKA (08/30)
  • KATO C56 (HOタイプ)を頑張ってオープンサウンド化にしてみる。
    MECY (08/27)
  • KATO C56 (HOタイプ)を頑張ってオープンサウンド化にしてみる。
    KAKKA (08/26)
  • Next18のSmileDecoderを試す
    MECY (08/13)
  • Next18のSmileDecoderを試す
    なごでん (08/13)
  • Hoゲージの大ジオラマでC59を思いきり走らせてみた
    KAKKA (08/11)
  • Hoゲージの大ジオラマでC59を思いきり走らせてみた
    MECY (08/11)
MOBILE
qrcode
PROFILE
無料ブログ作成サービス JUGEM
 
スポンサーサイト

一定期間更新がないため広告を表示しています

- | | - | - |
Smile wifi Throttle でDCアナログ操作をやってみた

JUGEMテーマ:鉄道模型

 DsAirの裏機能(別に隠してないかも)にDCアナログモードがあります。いわゆるDCCコントローラの対極的な立ち位置であるアナログモードのPWMコントローラの様に動かせるモードです。このDCアナログモードもDsAirの至れり尽くせり機能で「dsair_wifi_specification」に規定されていますので、「Smile wifi Throttle」のソフトに仕込んでやれば、DCアナログのwifi Throttleにも早変わりします。

 ソフトの実装自体はDCCアドレスやファンクションを組み合わせる必要がなくなるので、面倒な複数アドレス仕分け等の処理がなくなってかなりシンプルにできました。また第3のスロットルとしてVR可変抵抗器があります。これがまた2つ装備されていますが、ここに機能を割り振っていなかったので、DCアナログモードの操作スロットルとしてみました。

 

 ◆買ったばかりでDCC改装前のキハ40で試走してみました。

 

 サウンドが無いので物足りですが、DCアナログモードでもスムーズに走らせることが出来ました。

 

 DCC玄人志向の方々からみると邪道かもしれませんが、DCアナログモードあれば便利な機能です。

Wifi throttleの仲間がいた⁉

JUGEMテーマ:鉄道模型

 ESP32ベースでソフトを組んでいる「Smile Wifi throttle」ですが、これ他にないだろ〜!と思いきや・・実は世界に目を向けてみるとすでに作っている方がいらっしゃいました。

https://model-railroad-hobbyist.com/node/35652

http://www.scalemodelanimation.com/Articles/WiFi_Throttle_RE-Apr2019.pdf

 

 DCCのプラットフォームはJMRIなので、「Smile Wifi throttle」が親機としている「DsAir2」とは異なりますが、ベースとなるデバイスはESP32なので「Wifi throttle」というカテゴリではお仲間です。

 

もうすでに完成なさっているみたいです。

 

脱帽です・・・

Wifi Throttle をマルチタスク化してはみたが・・

JUGEMテーマ:鉄道

 マルチロータリスロットルを装備している「Smile Wifi Throttle」ですが、機能を都度増やし続けているため少しずつですが、動作のもっさり感が気になってきました。何かサクサク感にもってゆく為の抜本的な手立てがないか日々考えていました。実はESP32、2つのCPUが載っているらしいです。ですがなぜかユーザが作成するソースコードは1個のCPUでしか動いていないらしく、徐々に増加するソースコードをもう一つのCPUに処理を分散させてやれば理論上はサクサク動いてくれるハズです。ということでレスポンス向上の奥の手として残していたESP32のマルチタスク化に挑戦してみました。

 

 ESP32のマルチタスクをネットで調べるといくつか参考になる記事を見ることができます。今回参考にさせていただいたのは次のサイトです。 ”ESP32 ( ESP-WROOM-32 ) » Arduino – ESP32 のマルチタスク ( Dual Core ) を試す’’

 参考に閲覧した内容から、今回やることのイメージは次になります。

 

  Smile Wifi Throttle」のスケッチの機能(主に関数単位)を整理して2スロットル分毎に分割する。

 ∧割した1スロットル分の一方を使っていなかったCPU0側へ処理する様にコードを書き換える。

 

-----------------「Smile Wifi Throttle」マルチタスクのスケッチ構成イメージ--------------

  

void タスク名(void *pvParameters){
  while(1){
      ← 分割したスロットル2の処理部分を記述
  }
}

void setup(){
  xTaskCreatePinnedToCore(        ←マルチタスク化の構文通りに追加する
           タスク名,
           "タスク名",
           スタックメモリサイズ,
           NULL,
           タスク優先順位,
           タスクハンドルポインタ,
           Core ID
  );
}

void loop(){

    ← 分割し残したスロットル1処理の部分を記述

}

 

 先人様の記事からESP32のマルチタスク化はESP32のソフトの仕様上問題なく出来そうなのですが、1つ気になる点があります。

それはデフォルトで使用していないCPU0側は、ESP32のシステムタスクが動いるらしいという事です。つまりCPU0はESP32のシステムタスク処理専用であって、ユーザ作成のタスクを処理する余裕はあまりないかもしれないという点です。なのでここは一発賭けに近いですがやってみるしかない感じです。

 

 次に適当にスケッチを上記の形に2つの処理ループ構成にして、”スケッチビルト”⇒”ボード書き込み”まではなんとかできました。

ここまではそこそこ順調でしたが、いざ「Smile Wifi Throttle」を動かしてみると・・・

 

 ◆マルチタスク化したスケッチ:DsAirとの認証 が待ち状態までは正常そうです。

 

 ◆マルチタスク化したスケッチ:DsAirとの認証 スタートでWifi Throttleモードへ移行中です。

 

 ◆マルチタスク化したスケッチ:DsAirとの認証後、 ああ!文字表示がおかしい この後表示は消えて再起動しました。

 

 

 マルチタスク化後の結果ですが、写真の様にDsAirに接続する途中で再起動が起こりまくります。この状態では使える代物ではありません。恐らくWifiが動きまくるのでCPU0にタスクを振ってもCPU0側のパワー不足でWifi Throttleモードが起動できず、力尽きて再起動していると思います。Wifiの動作を止めればマルチタスク化したスケッチでも動くかもしれませんが、それでは「Wifi Throttle」になりませんよね。マルチタスク化作戦ははあえなく撃沈し残念な結果となりました。

 

 教訓:「ESP32は普通にシングルタスクでコーデングするに限る」です。

オニコン格闘記 その3

JUGEMテーマ:鉄道模型 

 「オニコン格闘記のその3」です。オニコン格闘記と題していますが、ソフトをいじっている期間が途中保留になった期間も含め長期に渡るので、やってきた事を忘れないように備忘録的な視点で書いています。

 前回まではオニの2つの角である「ろーたりーえんこーだ」を退治できる目途がつきました。今回はオニのパンツの縞模様の様にやたらに多いボタンについてです。オニコンに装備されているボタン数ですが、まず1番の見た目で特徴となる10連装の10キーと、「ろーたりーえんこーだ」付近のサイドに4つと「ろーたりーえんこーだ」にもスイッチ兼用で装備されています。併せて利用可能なボタン類は16個になります。よくもこれだけの数を付けれたなと思いました。ふと渡された回路図をみてみると。。。なんと全てが抵抗分割のアナログスキャン方式で設計されていました。これはオニです。普通タクトスイッチはデジタルプッツシュ式が一般的というかアナログスキャン方式はあまり使われないと思います。確かにアナログスキャン方式はモジュールPINへ繋ぐ数が少なくて済むメリットはありますが、あまり使われないのそれなりの理由があるわけで、例えば抵抗分割の設計が難しいとかアナログ値の読み取りでソフトを組むのが面倒などデメリットもあります。でももうブツは出来上がってしまっているので取り合えず数のまとまった10キー部分から手を付けることにしました。

 まずはアナログキースキャンの理解を深めるため下記のサイトを参考に抵抗分圧の理想的な値を机上で検討してみました。

 参考サイト抵抗分圧器を使った、多くのスイッチのセンシング「https://synapse.kyoto/tips/ResDiv/page001.html

 

 机上で出来上がっているブツの回路構成をみて考えてみましたが抵抗で分圧している値を計算してみると、抵抗値の配分が微妙に均等でないことが気になりました。どうやって決めたんだろ?この点をハード設計した方に問い合わせたところ、どこかのArduinoの機器でつかわれている回路図を転用してきたとの回答でした。あ〜!5V電源のマイコンの回路を転用してしまっている。ESP32は3.3V電源のCPUです。当然搭載されているA/Dコンバータの特性も違ってきます。上手く動かせるのかな…

 机上で考えていてもラチがあかなさそうなので、もう現物合わせでやってみるしかないと思い。10キーボタンを押したときに繋がれたピンのADCから値を返す動作確認用の下記スケッチを作って実際に動きを確かめてみることにしました。

 

------------------------- -------------------------------

 

/********************************
 *BUTTON keyscan
 *******************************/
int readButtons1(){

 

int PushBtnNo;

      int inSW1 = analogRead(25);    //keyscan read SW1 -> GPIO-25
      int inSW2 = analogRead(26);    //keyscan read SW2 -> GPIO-26

      int inSW3 = analogRead(27);    //keyscan read SW3 -> GPIO-27

      int inSW4 = analogRead(14);    //keyscan read SW4 -> GPIO-14
      int inSW4 = analogRead(15);    //keyscan read SW4 -> GPIO-15

      int inSW5 = analogRead(13);    //keyscan read SW5 -> GPIO-13

 

        //Side Btn SW

        if (inSW1 <  800){ 
         Serial.print("BUTTON_SW34 ");
         Serial.println(inSW1); 
         PushBtnNo = 34; //BUTTON_SW34;// 実測値= 0.780V    0
         return PushBtnNo; 
        } 
        if (inSW1 <  1300){ 
         Serial.print("BUTTON_SW3 ");
         Serial.println(inSW1); 
         PushBtnNo = 3; //BUTTON_SW3;// 実測値= 1.180V    0
         return PushBtnNo; 
        } 
        if (inSW1 <  1700){
         Serial.print("BUTTON_SW4 ");
         Serial.println(inSW1);
         PushBtnNo = 4; //BUTTON_SW4;     // 実測値= 1.500V  448
         return PushBtnNo;
        }

 
        if (inSW2 <  800){ 
         Serial.print("BUTTON_SW56 ");
         Serial.println(inSW2); 
         PushBtnNo = 56; //BUTTON_SW56;     // 実測値= 0.780V    0
         return PushBtnNo;
        }
        if (inSW2 <  1300){ 
         Serial.print("BUTTON_SW5 ");
         Serial.println(inSW2); 
         PushBtnNo = 5; //BUTTON_SW5;     // 実測値= 1.180V    0
         return PushBtnNo;
        } 
        if (inSW2 <  1700){
         Serial.print("BUTTON_SW6 ");
         Serial.println(inSW2);
         PushBtnNo = 6; //BUTTON_SW6;     // 実測値= 1.500V  448
         return PushBtnNo;
        }        

        //Main Btn SW
        if (inSW4 <  110){ 
         Serial.print("BUTTON_SW7 ");
         Serial.println(inSW4); 
         PushBtnNo = 7; //BUTTON_SW7;     // 実測値= 0.11V    0
         return PushBtnNo;
        } 
        if (inSW4 <  680){
         Serial.print("BUTTON_SW8 ");
         Serial.println(inSW4);
         PushBtnNo = 8; //BUTTON_SW8;     // 実測値= 0.680V  448
         return PushBtnNo;
        } 
        if (inSW4 < 1550){
         Serial.print("BUTTON_SW9 ");
         Serial.println(inSW4);
         PushBtnNo = 9; //BUTTON_SW9;     // 実測値= 1.435V  912
         return PushBtnNo;
        }
        if (inSW4 < 2500){
         Serial.print("BUTTON_SW10 ");
         Serial.println(inSW4);
         PushBtnNo = 10; //BUTTON_SW10;     // 実測値= 2.210V 1200
         return PushBtnNo;
        } 
        if (inSW4 < 3450){
         Serial.print("BUTTON_SW11 ");
         Serial.println(inSW4);
         PushBtnNo = 11; //BUTTON_SW11;     // 実測値= 2.830V 1456
         return PushBtnNo;
        }

        //Main Btn SW12-SW16        
        if (inSW5 <  110){ 
         Serial.print("BUTTON_SW12 ");
         Serial.println(inSW5); 
         PushBtnNo = 12; //BUTTON_SW12;     // 実測値= 0.11V    0
         return PushBtnNo;
        } 
        if (inSW5 <  680){
         Serial.print("BUTTON_SW13 ");
         Serial.println(inSW5);
         PushBtnNo = 13; //BUTTON_SW13;     // 実測値= 0.680V  448
         return PushBtnNo;
        } 
        if (inSW5 < 1550){
         Serial.print("BUTTON_SW14 ");
         Serial.println(inSW5);
         PushBtnNo = 14; //BUTTON_SW14;     // 実測値= 1.435V  912
         return PushBtnNo;
        }
        if (inSW5 < 2500){
         Serial.print("BUTTON_SW15 ");
         Serial.println(inSW5);
         PushBtnNo = 15; //BUTTON_SW15;     // 実測値= 2.210V 1200
         return PushBtnNo;
        } 
        if (inSW5 < 3450){
         Serial.print("BUTTON_SW16 ");
         Serial.println(inSW5);
         PushBtnNo = 16; //BUTTON_SW16;     // 実測値= 2.830V 1456
         return PushBtnNo;
        }

        //Rotary Btn SW
        if (inSW3 < 850){
         Serial.print("BUTTON_SW1&2 ");
         Serial.println(inSW3);
         PushBtnNo = 120; //BUTTON_SW1&2;   // 実測値= 0750V  912
         return PushBtnNo;
        }
        if (inSW3 <  1300){ 
         Serial.print("BUTTON_SW1 ");
         Serial.println(inSW3); 
         PushBtnNo = 1; //BUTTON_SW1;     // 実測値= 0.1520V    0
         return PushBtnNo;
        } 
        if (inSW3 <  1700){
         Serial.print("BUTTON_SW2 ");
         Serial.println(inSW3);
         PushBtnNo = 2; //BUTTON_SW2;     // 実測値= 1.480V  448
         return PushBtnNo;
        }

        //Btn No Push
        Serial.println("BUTTON_ERRORR");
        Serial.println(inSW1);
        Serial.println(inSW5);
        PushBtnNo = 0; //ERRORR;
        return PushBtnNo;       
}

 

 現物の確認方法は、ボタンを押した時につながっている先のピンのADCの値を読んで戻す値をシリアルデバックのログに表示させて1つ1つ確認してゆきました。

 この時点ではとりあえず10キーを押した時はそれなりの値が読めそうなことがわかりました。だだしこの後、オニが立ちはだかって奈落の底に落ちていくことになります。。

Smile Wifi Throttle で出来ること その2

JUGEMテーマ:鉄道模型

 前回、Smile Wifi Throttleに装備している2つのスロットルから2列車を動かしてみましたが、主/副スロットル切り替えの操作が結構忙しく使いずらい感じがしたので、少し改良してみました。今までは主/副スロットルの切り替えを左サイドの上下2つのボタン同時長押でスロットルの主⇔副を切り替ていましたが、今回はこの長押しを止めてOnePushで切り替えができるようにしてみました。これでボタン操作が少しやり易くなり、主/副スロットルの切り替えがスムーズなると思います。これだけではつまらないので併せて禁断の機能も盛り込んでみました。禁断の機能とは何かといいますと、主/副スロットル操作の準並列処理の機能になります。並列処理の前に準が付いているのでチャントした並列処理ではありません。これはDsAirの通信IF規格の都合で500ms毎に1操作コマンドしか送信できないため順列処理で送信することが基本であるところを、主/副スロットルからのコマンド送信を自動的に交互に送信するように工夫して疑似的に並列処理チッツクにしてみたものです。ただこの機能で動かすとプログラム上、主/副個別で使い分けたいDCCアドレスやファンクションコマンドを正確に管理していくのが難しくなるため結果、コマンド送信が不安定になりやすく最悪コントロールが不能に陥るノーコントローラになってしまうリスクがあるので禁断の機能としています。この機能は実験的な要素が強いキワモノ系です。

 

 ◆主/副スロットル手動切り替えモード(簡単One Push化)

 ◆主/副スロットル 準並列処理モード

  (終盤力尽きて倒れました)

 

 主/副スロットル手動切り替えモード(簡単One Push化)は2つの車両を交互に動かす範囲で使うのであれば切り替え操作がスムーズになり結構使い易くなったと思います。

 禁断機能の準並列処理モードについては懸念していたとおり、各々の操作レスポンスが悪くなってしまいました。DsAirの通信IF規格外の禁じ手を使い2スロットルの切り替え操作を省く代償なので止むを得ないところです。

 今後チューニング(MECYのやる気次第ですが)でどれだけ向上するのかわかりませんが取り合えず2スロットル準並列処理はかろうじて動いたという結果になりました。

 

 

オニコン格闘記 その2

JUGEMテーマ:鉄道

 「オニコン格闘記のその2」です。前回まではESP32がオニぽいというところまで分かってきました。今回はオニのESP32に2つの角であるロータリーエンコーダをどのように退治したかについて語りたいと思います。

 ロータリーエンコーダについては以前にYaasanさまのUSBスロットルスケッチを改良したことがあるのでこれを転用すれば楽勝と踏んでいたのですが、色々と調べていくうちに、開発環境が同じようなarduinoIDEといってもATMEL系のマイコンとESP32とではどうもソフトの細かいレベルでみてゆくと別物らしく、USBスロットルのスケッチを転用できないことがわかってきました。つまり全てが1から作りこむ必要があるということになります。これはオニだ!絶望しました。。。

 1度はESP32のオニのこん棒に叩かれて死にましたが、めげずに"ESP32” と”ロータリーエンコーダ”のワードでネットを彷徨っていると、なにやらESP32にはパルスカウンタというものが実装されておりESP32独自の方法になりますが、なんか使えそうな感じであることがわかりました。

 

以下参考にさせていただいた記事になります

ESP-WROOM-32のパルスカウンタの使い方(arduino)

https://qiita.com/wanko_in_lunch/items/a508d8da78961c855d7f

 

一見すると難しそうな処理をいくつもやってそうなコードですが、複数のユニットで使い分けもできそうなので、最適と思いオニコンの2つの角であるロータリーエンコーダに合うようにコードを改造して、クルクルと回してみるとそれなりの動作をする事が確認できました。

 

 まずはオニの角までは退治できました。

 鬼ヶ島での格闘はまだまだ続きます。

 

Smile Wifi Throttle で出来ること

JUGEMテーマ:鉄道模型

 コツコツと機能と作りこんできた「Smile Wifi Throttle」の機能の概要についてです。

 成り行きで機能を追加してきていますので、これが最終形ではありませんが、現時点で動かせる機能は下記になります。

 

 システムの概要:

  運転用スロットル機能と、各設定/管理用のWeb画面の2つの機能を使い分けて拡張性を考慮した構成。

  Wifi Throttle単体でDsAirに接続しコントローラとして機能する。

 

 機能の概要:

  1.装備している2スロットルを各々個別で車両を制御できる。

  2.Web設定画面から1スロットルあたり5車両(2スロットル合わせて10車両)のDCCアドレスの登録ができる。

  3.Web設定画面からスロットルの1ノッツチ当たりの速度変化量の増減(1−40)を変更することができる。

  4.装備している10Keyの機能割り付けを可変にしてファンクションキーを”F0〜F39””まで操作可能。

  5.装備している10Keyの機能割り付けを可変にしてポイント(DCC Accessory)を”1 - 2044”(実質無制限)まで

   操作可能。割り付けの切替設定はWeb設定画面で行う。

  6.Web設定画面からDsAir接続のための認証設定/変更を行う。

 

 賛否はありますが、2スロットル装備しているので2列車を相手に運転することができます。ですが現状使用を想定していたボタンが諸事情で使えないため、生きているボタンを使いまわす必要に追われ、長押ししたり、2つのボタンの同時押しなど無理やりな割り振なのと、機能も可能な限り搭載したので操作が複雑になりかなり使いずらいものになっています。

 

 機能満載にしてしまった弊害なのか、ボタン位置のアレンジにセンスがなためか、ボタン操作がかなりアクロバテックなので今ある機能をフルに動かそうとすると相当な熟練を要するコントローラとなっています。

 

 ◇オープンサウンド化したDD13とC58のサウンドの競演を綺麗にきめたいところだったのですがコントローラの操作の複雑さに

  翻弄されています...

 

 

 自分で作っておきながら思うのもなんなのですが、慣れないと操作が難しいです。ボタン配置やスイッチ類、機能の見直しを行ってシンプルなものに原点回帰する方が吉なのかもしれません。。

オニコン格闘記 その1

JUGEMテーマ:鉄道

  オニコンこと「WifiThrottle」格闘記です。

前回はオニが突然降りてきたところまでのお話でした。ここからは格闘編です。

 MECY的にオニコンと名付けた理由ですが、取っ掛かりの印象が次の状況だったためです。まず明確なハードの仕様がなかったことがあります。降りてきた時はもう出来上がっている現物とサポート基板の回路図とベースボードに関連する頼りないネット上の情報だけというもので、完全にお任な状態。。出だしからオニだなと思いました。そのため降りてきた直後は完全にお手上げ状態でした。しばらく放心状態でしたが、そのままでは何も進まないので気を取り直してまずは自分なりに調査を始めました。

 

 何はともあれベースボードの実体を知らないと話が始まらないのでしばしネットをさまよい製造元?販売元?と思われるサイトを発見しました。

http://www.lilygo.cn/down_view.aspx?TypeId=11&Id=83&Fid=t14:11:14

 

 但しここから分かったのは大雑把なボードの仕様とPINの並びとMade in中華らしいということだけ。オイオイこれだけかよ。。少し目まいを感じつつ、慣れない英文を眺めているとESP32 のキーワードがありました。ESP32?さてこれはなんでしょう?ということで次はESP32を調べてみました。ESP32をキーワード検索すると沢山出てきました。

まずはWikipedia でESP32をみてみると

ーーーーーーーーーーーーーーーーーーーーー

ESP32シリーズは Wi-FiBluetoothを内蔵する低コスト、低消費電力なSoCのマイクロコントローラである。 TensilicaのXtensa LX6マイクロプロセッサを採用しデュアルコアとシングルコア版のバリエーションがある。 ESP32は上海に拠点を置くEspressif Systemsが開発をしTSMCの40nm工程で製造・・

ーーーーーーーーーーーーーーーーーーーーー

 

 メインボードに載かっていると思われるマイコンについてある程度具体的な情報を得ることができました。

 

 ◇高性能な?マイコンを搭載したメインボード

 スペックをざ〜とみると32ビットのディアルマイコンで240 MHz動作可で wifi Bluetooth対応で・・なんか凄い高性能。

 

 ソフトの開発環境もArduino IDEのオプションらしい「Arduino IDE with the ESP32 Arduino Core」が利用できるみたいです。この時点では少しやる気が出ていました。この先、中華マイコンのオニの洗礼と苦行の連続に打ちのめされることになるのですが・・

 

Smile wifi Throttle の試運転 その1

 JUGEMテーマ:鉄道

 オニコン格闘記シリーズとは別に「Smaile Smile wifi Throttle」試作機の使い勝手や活用例など使用者目線で書いて、時には自分で直していきます。

 1回目は初めて自分で試走させてみた「wifi Throttle」の操作性で特に気になった部分を改良したので、どの程度操作が良好になったかその確認をしてみます。

 話は遡りますが、先日参加したDCC電子工作連合の運転会で初めて「wifi Throttle」を自分で操作して車両を動かしました。ソフトを開発している時は試走させるまでの時間がなかったので、見だけ君でDCC信号の出方だけ確認したまま運転会に持ち込んでいました。試走車両はHoトラムウェイDD13オープンサウンドのディーゼルサウンドを書き込んだESUのデコーダを搭載し、「wifi Throttle」から操作してどの様に動くのか確かめていました。

 しかしながら、一通りの操作は出来るつもりでソフトを組んで持ち込んだつもりながら、超高性能なESUのデコーダがこれまた正確な動きをするもので、MECYの適当なソフトの作りこみに正直な反応をしてしまい、スロットルからの速度停止の操作が効いていない動きをしている事に気がつきました。微妙に微速したまま止まらないという現象です。この部分はスロットルを回しすぎて指定の速度範囲を超えてもリミッタを効かせてオーバレンジさせない様にしてたのですが、時間が足りなくそこの作りこみが適当すぎました。ああ全然止まらない!ブレーキ感がない!これは致命的だなと思いました。早速オニコンソフトを改良しました。

 

 今回改良を入れた部分です。

 1.確実にSpeed ゼロ指令をDsAirに送る様にしました。

 2.非常停止機能とボタン割付を追加しました。

 

 スロットル操作からの走行→停止、非常停止ボタン押しですぐに停止か確認してみました。

 今回はポイントの操作も確認したかったのでKATOユニトラックの電動ポイントにへのへのもへじ様のTRAINO-A100 Relay Decoder(リレーデコーダ)を繋いでwifi Throttleからリレーデコーダを操作できる「DCC Accessory」モードも動かしています。

 ◇DsAir+フィーダ分配器+リレーデコーダ+KATOポイントの接続状況

 

 ◇ESUのデコーダを搭載したトラムウェイのDD13で試走させてみました。ついてにポイント操作テストもやってみました。

 

 ソフト改良の結果、車両が確実に停止する様になりました。非常停止ボタンもいい感じでブレーキ感が出ていて実車が入替機だったDD13で運転する時にはぴったりな動きをする機能が追加できたなと思いました。ポイント操作もwifi ThrottleからDsAirを介してワイヤレスでも操作可能な事が確認できました。

 オープンサウンドを書き込んでいるESU Decoderはサウンド ONの場合、動力サウンドの抑揚で動力の加減速が変化しスロットルの動きに対してダイレクトの動力と速度が同調しなくなるので、ここぞとばかりに停止させたい時などは非常停止ボタンはかなり有効な機能であることも再認識しました。

 ”非常停止ボタン” ⇒”ブレーキボタン”の方が実情に合った呼び方なのかもしれないとも思いました。

 

 

 

 

オニコンのこと その1

JUGEMテーマ:鉄道

 年も押し迫ったこのタイミングで突然冬眠から目覚めました。

 今年は激暑で夏バテになって特に何もせず過ごしていましたが、11月末に突然小箱が送られてきましたその中にオニが入っておりました。

 

 小箱の中身は・・・巷で「WifiThrottle」と呼ばれているものです。

 

 ◇表面から 10個のボタンとファーストスロットルそのサイドに4つのボタンが鎮座しています

 ◇裏側にもセカンドスロットルと長持ちしそうな大き目な電池が…

 

 正式名称は「Smile Wifi Throttle」になる予定です。ですがMECYの中では「オニのコントローラ」略してオニコンと名付けました。なぜオニコン?かといいますと。まずロータリーのツマミが2つあります。これは世の中で多分他にない=オニです。次にボタンが沢山あります。サイドに4個+正面に10個おまけで2個(ロータリーのツマミ押し込みのボタン)もあります。これもボタンが多い=オニです。極めつけはスマイラーさんの一言「これが動くソフト作って」=オニです。

 

 ここからこのオニコンとの格闘がはじまりました。

(C) 2020 ブログ JUGEM Some Rights Reserved.