先日公開したカブ系エンジン用自動進角CDIの作り方ページですが、自分でもここに書いた様なPCのキーボードでの設定だと面倒で解りづらいと思ったので、Windows上のGUIで設定できるツールを作ってみました。
概要
このCDIは回転数毎の点火時期を進角値(世に言うBTDC)として設定する仕組みを備えています。
元々は下の写真の様にハードウェア的なコントローラーで設定する様に作っていたものを、先のページではコントローラーを作らずとも使える様にコマンドラインから操作する方法を説明していました。
しかしコントローラーの代りを手入力で入れるのは面倒ですし、表示も見づらいのです。
という事で今回Windows上で動作する設定ソフトを作ってみました。
CDIに載せているArduinoNANOとPCの間をUSBケーブルで接続した状態で本ソフトを使えばコントローラーと同様の操作で設定ができる様になります。
(本当はグラフ表示にして各回転数毎の進角値をスライダーで設定できる様にするとカッコイイのですが、そこまでやるとCDI本体側のファームも書き換える必要があるので今回はハードウェアコントローラーと同じ操作ができるソフト=エミュレータとしています。)
使い方(準備編)
まずこのzipファイルをダウンロードして解凍して下さい。→CDI-Configurator.zip
中身はCDI-Configurator.exeというファイル一つだけです。これをダブルクリックして起動してみてください。
- 最近はダウンロードしたファイルの場合Windowsが文句を言ってくる事がある様です。
私がエラー内容の全てを把握していないので、この場合はエラー内容でググってみてください。 - このソフトは.NET Framework 4.7.2を使用しています。もしこれが無い旨のエラーが出た場合はMicrosoftから.NET Framework 4.7.2ランタイムをダウンロードしてインストールしてみてください。→執筆時点のマイクロソフトのダウンロードページ
- 本ソフトはWindows10 Homeのビルド番号19045.4651で動作を確認しています。
ソフトを起動できる事を確認したらCDIに載せているArduinoNANOとPCの間をUSBケーブルで接続します。
この時COMポートが何番であるか、デバイスマネージャー等で確認しておきます。
使い方(操作編)
ソフトを起動すると下の様なウィンドウが現れます。
最上部のプルダウンから、先ほど調べたCOM番号を選択します。
もしアプリ起動後にUSBケーブルを接続したらプルダウンリストに載っていないかもしれません。
その場合は「RefrashCOM」ボタンを押すと最新状態に更新されます。
COMポートを選んだら「接続する」ボタンを押します。すると下の様な初期状態となる筈ですが・・・
もし下の様な画面になった場合は左下の「Cancel」ボタン又はArduinoNANOのリセットボタンを1回押せば上記の表示になると思います。
ここで緑枠の表示について説明しておきます。
- 本CDIはA/Bの2グループの設定値を持っており随時切り替える事ができます。
ここで①は上段がAグループ、②は下段がBグループである事を示しています。
なお上段に表示しているグループが現在実際に動作している進角値です。 - ③は後で説明するとして④に進みます。④はAグループの進角値が1000,3000,5000,7000rpmの時の角度でしそれぞれ17度,22度,31度,32度である事を示しています。
⑤はBグループの進角値がすべて27度(50ccカブの純正CDIと同じ)である事を示します。 - そして③はその時のエンジンの回転数を示します。PCを接続したまま走行することはないと思うのでこのエミュレータでは出番がないかもしれませんが、ハードウェア版コントローラではタコメーターとして機能するので設定の参考にできます。
- 再び①に戻りますがこの例ではAの下にアンダーバーがありBの下にはありません。これは動作グループを切替えるのに使用し、Enterボタンを押すとアンダーバーが付いているグループを動作グループとして有効にします(下で詳しく説明します)。
では例としてAグループの5000rpmでの進角値が現在31度なのを30度に変更してみます。
まずEnterボタンを押すと下の様に変更モードに入ります。
変更モードでは下段にあったBグループの状態表示が消え、代りにAグループの変更用表示が出ます。ここで*マークはカーソルだと思ってください。現在1000rpmが選択されています。
ここでUpボタンを1回押すとカーソルが3000rpmの所に移動します。
5000rpmを変更したいので更にもう1回Upボタンを押すとカーソルが5000rpmまで来ます。
ここでEnterボタンを押すと5000rpmが選択され、カーソルマークが#に変ります。
この状態ではUp/Downボタンは値の上下の意味を持ちます。
Downボタンを1回押すと31度だったのが1度減って30度に変ります。
なお下げるときは左隣の値よりも低くできず、上げる時は右隣りよりも高くできません(それを超えて変更したい場合は隣を先に変更して下さい)。
ここでEnter又はCancelボタンを押すと30度が有効になったままカーソルが*に戻ります。
この時点で実動作も30度になっていますが、これは編集モード内だけなので、もう1回Cancelを押して標準状態に戻ると31度に戻ってしまいます。そうではなく値を確定するにはUp又はDownを何度か押してWRを選択し・・・
Enterを押す事で設定が確定し、不揮発性メモリーにも記憶されます。
使い方(グループ切替)
現状Aグループが有効になっているのをBグループに切り替えてみます。まずUp又はDownのどちらかを押すとアンダーバーがBに移動します。
Bにアンダーバーが付いた状態でEnterを押すとBグループに切り替わります。
この状態で動作はBグループの設定値で点火していますが、まだ電源を切ると戻ってしまう状態です。では不揮発性メモリーに書き込んで見ましょう。
それにはEnterボタンを押して変更モードに入り・・・
Downボタンを1回押す事でカーソルをWRに移動し・・・
Enterボタンを押します。
画面上はさっきと変わりませんが不揮発性メモリーに記憶済みです。
一通りの値を入れ終わったら「切断する」ボタンを押すとCDI<–>PC間の接続が切れます。
終了するには右上の[X]ボタンを押してください。
あとはUSBケーブルを抜いても大丈夫です。
ソフトへのリンク
CDI-Configurator.zip(本文中に記載したのと同じリンクです)
※VisualStudio2019 C#で作っています。ソースは載せていませんが見たい方はご連絡ください。