無料ブログはココログ

コントローラ

DCCコマンドステーション関連

2024年3月21日 (木)

SSD1306Ascii lib-2

アドレスCV書き込み

訳あってデコーダのCV書き込み操作が頻発しています。そのためR1.6スケッチの操作性の悪さが改めて身に染みる事態となり、SSD1306Ascii lib使用のついでに改造する事にしました。 ミント缶IV基板は頻繁に弄り過ぎてスケッチが継ぎ接ぎだらけ、非合理的で醜い事態です。

愚痴のついで

体調を崩してからは車輛のDCC改造は不可能で国内メーカーの後ろ向き加減に閉口する毎日です。やむを得ず単体のデコーダだけでモータ回転、LEDの点灯、MP3のサウンドなどを楽しんでます。
せめてライト基板のある車両くらいはDCCコネクタを実装出来ないものでしょうか。 KATOのマイトラムはヘッドライトを点灯出来るそうで期待しましたが、DCC化に関する記事はどこにも見当たりません。

本題に戻ります

R1.6で扱えるロコアドレスは1から25の25通り限定でそれ以外のアドレスは登録メニューで書き変える仕様です。
登録したアドレスはその場でデコーダのCVに書き込みますが、スケッチの出来が悪くて嫌なので、CV書き込みモードに引き渡す様に改造してみました。

Laddr ロコアドレス 11を110に変更後[ENT](ボタン5)を押してミント缶に登録。 次に[CVW](ボタン4)を押すとCV書き込みモードに画面が変わります。 ※写真ではボタン名が読めなかったので修正してます
Cv29_20240321181701 登録したアドレス110をデコーダーに書き込む為先ずCV29のPrimaryかExtendedかスケッチでBit5を自動的に決めてます。
CV書き込みメニューの流用でデコーダのCV29値を[CVR]で確認する事が出来ます。デコーダはLENZ Standerdで左の写真では128ステップのほかアナログ対応(bit2)とRailCom(bit3)がオンになってました。アドレスは110なのでExtendedビットは0です。
Cv1 ここで[CVW](ボタン4)を押すとデコーダーのCV29に書き込み、アドレス書き込み画面に変わります。 PrimaryアドレスなのでCV1の書き込みに変わりました。 [CVW](ボタン4)を押すとCV書き込みが完了して、変更したアドレスでデコーダを操作する事が可能になります。

 

2024年2月16日 (金)

ミント缶コントローラのフォント

ミント缶の終了

私の体調不良でミント缶を終了してしまいました。大変申し訳ございません。
体調は悪化の一方ですが担当医から喝を入れられて、毎日ボーっと過ごすより出来る事だけでもやってみようと思い、久しぶりにミント缶コントローラを掘り出しました。 
OzOLEDライブラリが何処にあったかネット検索していたら偶然、SSD1306Asciiライブラリの存在を知ったのでミント缶で試してみました。

Ascii

名前の通りAscii文字のみで図形は扱えませんが、一部の文字を改変して△▽だけ表示しています。
ライブラリには56通りのファイルがアーカイブされていて、選択肢が大きいです。上の画像では、"lcd5x7.h"、"lcdnums12x16.h"、"lcdnums14x24.h"を使って表示しています。

フォントの選択

未確認ですがAdafruit GFX library 互換との事です。
SSD1306Ascii.hでインクルードされる "allFonts.h"ファイルに使いたいフォントファイルを記述します。
ちょっと変化の有るフォントも使いたかったのですが、さすがに5x7では変化の付けようが無いようで、ファイルを変えても区別がつきません。
因みにこんなフォントもありますが、文字幅が10ドットあって表現内容が限られてしまいます。そもそもイタリックでは都合が良くありませんね。


Callibri11
Callibri11_italic

自動運転スケッチ

ライブラリを変更した為かスケッチが使うフラッシュメモリに空きが出来ましたので、ミント缶本体に自動運転スケッチを組み込むことが出来ました。運転パターンを変える度にスケッチを書き直すのは負担なので3個のセンサーを使って、最初に踏んだチャンネルで3通りの運転パターンを実現しました。
そろそろ体調が限界なので、この件については後日アップする予定です。

 

2022年5月 2日 (月)

wio terminalその4

一通りDCCスケッチで遊んだので、移植例が紹介されていたパックマンでゲームに戻ります。画像の商標を考慮してスケッチは未公開との事ですので、Wio Terminalスケッチのトレーニングになるかと思い移植にトライしました。


Pacman


記事に従って、SPI接続のILI9328をWio Terminal内蔵TFTに変更と、ボタン操作を 5Way Switchに変更する事であっさり動きました。「drawFastHLine() だけで抽画されている事に驚嘆」されていて確かに変更は簡単でしたが、抽画データーのアルゴリズムまで追うのは諦めました。トレーニングは放棄してしばらくは懐かしいパックマンで遊ぶことにします。

2022年4月22日 (金)

wio terminalその3

Wio Terminalでアクセスポイントを試す事は考えていませんでしたが、Arduinoライブラリ内に偶然 WIFI_AP の定義を目にして、seeedstudioを検索したら DNSServerの例が見つかったので、そのまんまTerminal-DCCスケッチに組み込みました。手持ちのプアな端末はDSairでは画面が乱れて操作が出来ないので、単純なテキストベースです。


Priori2


WiFI接続そのものも予定外でしたが、小さなWio TerminalではACアダプタとフィーダー線が邪魔で手持ちでの操作性が悪るそうなので、アクセスポイントに出来るなら便利かと思います。

2022年4月14日 (木)

wio terminalその2

スペースシューターに遊び疲れたので、DCCに戻す事にしました。

Space_shooter

wio terminalの analogWrite()は1.8kHzでアナログ運転は不向きだなと思っていましたが、arduino.ccフォーラムに"PWM Frequency"の発言リンクがあったので試しました。
TC4のA0、A1が都合良かったのですが、Grove端子にも出ているので拡張用に明け渡して、TC1を使うA2,A8にします。タイマーのpwmアサインはwio terminalホルダのvariant.cppに従いました。
基板設計のメインパソコンが壊れたので基板は作らず、ラズパイ互換の40pinロジック出力で確認します。クロックソースをDPLLの120 / 2 = 60MHz、プリスケーラは_DIV16、pwmの分解能を127にしたら、周期は34usec (29.4KHz) になりました。

Wio_pwm

arduino.ccフォーラムでは、データーシートに目を通すべき箇所、pinMode()は不要、デューティの変更はCCBUFでグリッジを避けるなど、有益な情報をたくさん得ることができました。

 

2022年4月 3日 (日)

ALTOISサイズ缶

互換缶


Aliexpressで購入しているALTOISサイズ缶ですが、ショップのレビューにもある通り、毎回へこみが目立ちます。12個入りの内1、2個なので10個入りと割り切っていますが、今回のは流石に缶だけじゃなく心もへこみました。


Mintcase


配送期間も不定で、ミント缶DCC頒布の大きな障害です。DCC活動もヘコむ一方です。

2022年1月29日 (土)

Wio Terminal

Wio 端末


Seeeedstudioの端末が、Desktop StationのYaasanさんから届きました。「遊び道具」との事なので遊んでみました。

Home_20220129130101 Loco_20220129130101


単に、ミント缶の画面をWio Terminalに表現しただけです。モータードライバーを繋いだら、手動操作の世界最小DCCコントローラが出来そうですが、ニーズは分かりません。
5 Way Switch は、端っこを押しても真ん中のPressが押されてしまい、横から押さなければならず、スピードコントロールはむずかしいかもしれません。

2022年1月22日 (土)

C-SizeDCC 改訂版6

アドレス設定方法を修正

久しぶりに手動運転したら、操作方法を忘れて、アドレス設定モードのままファンクションのつもりでテンキーを押してアドレスが変わってしまいました。取説では「[ADR]ボタンで確定」としているのに、そうなっていないので修正しました。

テンキーでアドレス3を10に
Tenkey10

ファンクション操作
Function0

アドレス操作に戻すと3のまま、先ほどのファンクション操作も3が対象です。
Addr3_20220122192501

テンキーでアドレスを10にして[ADR]ボタンで確定
Tenkey10 Addr10

修正スケッチ
CsizeDCC_f.zip rev06

 

2021年10月18日 (月)

ミント缶の進行方向転換

予期せぬ進行方向転換

ミント缶IVのスイッチ付速度調整ダイヤルは、停車時にスイッチがオフになり易く、予期せぬ進行方向の転換が起きます。以前のボリュームでは起きない現象ですが、スイッチの構造に大きな差は無い筈なので、特性を調べました。
左の波形がダイヤル式、右がボリュームです。時間軸は50msec/DIVです。ATMEGAの入力をプルアップしているので、進行中はローレベル、停車してスイッチがオフになるとハイレベルに変わります。

Rv12mmR09gs

右の波形のとおり、ボリュームでも「カチッ」という前にオフになります。バネが固い性か僅かなオフならツマミから手を放すとオンに戻りますが、強めに回して停車させると進行方向が換わってしまいます。ダイヤルではそっと回してもオフになる時間が長く、バネが柔らかい感触です。また、ダイヤルは径が25mm、ボリュームのツマミは15mmなので、バネの固さだけでなくツマミ径によるモーメントの違いが影響していると思われます。
メカ的な対策は難しいので、スケッチでスイッチのオフから検知フラグを立てるまでに遅延するコードを入れて、僅かなオフをキャンセルしてみました。遅延が長すぎると転換しない事もあるので0.5秒くらいが限界でした。

2021年8月 8日 (日)

C-SizeDCC モード選択

C-SizeDCCのジャンパー設定

C-Size基板用のケースに入れたら、モード選択のジャンパー設定が出来ないので、ボタンを押しながら電源オンでモードを選択するコードをスケッチに追加しました。
同時に、トラックボタンオフでPWMがオフにならない、ファンクション番号が初期値に戻る、などの不具合を修正しました。

CsizeDcc_b.zip

Addr

TM1637はボタン長押しを検出できませんが、電源オン時に一度だけの読み込みなので、問題無くボタンの検出が出来ました。前列左から「アナログ」「Dcc/MM」「CV読み書き」「アドレス読み書き」の順です。

Mode

より以前の記事一覧