無料ブログはココログ

コントローラ

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

2018年9月11日 (火)

老眼の味方?

1.3インチサイズOLED

  『老眼の味方』のフレーズが気になってAliExpressで買ってみました。送料無料で368円でした。

Size

思ったより大きさが違います。#define INCH13 をコメントアウトした0.96インチ対応スケッチでは左に2ドットずれてます。

13inch_oled

INCH13ビルドスイッチ

  INCH13を有効にしてビルドしたら正常に表示しました。

Inch13mintcan

電解コンデンサは少しだけ右に傾けましたが、OLEDはピンフレームに差しただけで固定する手段がありませんので、換装はサポート対象外です。自己責任でお願いします。

ミント缶Ⅳのケース その3

樹脂ケースの型紙更新

  樹脂ケースはサポートしないと言っときながらの更新です。基板の固定穴位置が示されていないと指摘されたので追加しました。

ミント缶Ⅳのケース追記

2018年8月26日 (日)

ミント缶ⅣのOLED

0.96インチOLED

  ゲヌマ・フジガヤ2さんから『すだれ状に化ける』とレポートを頂戴しました。在庫のOLEDを確認したところ左端に縦線が入るケースに多数遭遇。

Inch13

個体によって差が出るのが謎ですが、OLEDライブラリを見直したら、
#define INCH13
なる定義が...完全に見逃していました!  これをコメントアウトしたらすだれが消えました。勿論いままで問題無く表示出来ていたOLEDにも影響はありません。

//#define INCH13

---
void OzOLED::setCursorXY(byte X, byte Y){
#ifdef INCH13
    // 1.3inch
    sendCommand(0x00 + ((FONT_WIDTH*X + 2) & 0x0F)) ;
    sendCommand(0x10 + (((FONT_WIDTH*X + 2)>>4)&0x0F));
#else
    // 0.96inch
    sendCommand(0x00 + (FONT_WIDTH*X & 0x0F)); 		//set column lower address
    sendCommand(0x10 + ((FONT_WIDTH*X>>4)&0x0F)); 	//set column higher address
#endif
    sendCommand(0xB0 + Y); 				//set page address
}
---

有志のスケッチに修正版r0.2cをアップしました。

2018年8月25日 (土)

ミント缶Ⅳの頒布開始

ミント缶Ⅳ頒布

  FC2ショッピングカートのtwaydcc頒布でミント缶ⅣDCCコントローラキットの頒布を開始しました。旧7セグ版と比較してハンダ付け箇所が減少して作り易くなりましたが、メカ部品の増加による原価上昇の為1,000円アップの4,100円としました。その分機能を大幅に拡張しましたのでご容赦下さい。
  収納ケースは様々な方法を考えましたが結論を出せず、暫くは従来と同じくご自身でALTOIDS缶を加工して頂く事をお願いします。ALTOIDS缶加工型紙は8月11日の記事「ミント缶Ⅳのケース その2」をご覧ください。またミント缶Ⅳの操作方法等詳細はDesktopStation - Wikiページをご覧ください。

ミント缶Ⅳにオプションモードを追加 その3

アクセサリデコーダ

  ミント缶Ⅳに追加したOPS CV書き込みですが、アクセサリアドレスはどうしたものか思案していました。結論から言うと、運転モードでアクセサリ操作まはたルート操作の時に[SEL]ボタン長押ししたら、Locoアドレス選択表示をAccアドレス選択に変える事で対応しました。

Acc_to_ops

DSServo decoder

  アクセサリデコーダのOPS書き込みテストはDSServoDecoderで行いました。サーボ停止位置と移動速度をポットで調整出来る2チャンネルのサーボ専用デコーダですが、Ch2はCVの設定でサーボの動きを調整します。スーパースリムデコーダと同様にOPS書き込みに反映する為のコードをスケッチに追加しました。動力用デコーダと違い、動作確認のためアクセサリ操作に戻すのでちょっと操作が煩雑です。

Dsservo

2018年8月11日 (土)

ミント缶Ⅳのケース その2

本命ALTOIS缶の例

  金属加工ですが板厚が薄いので穴明けやヤスリ掛けにさほど時間を要しません。むしろ油断して削りすぎに注意です。所要の寸法で丸穴を開けフィーダコネクタだけヤスリで角穴に加工します。一番面倒なのが上蓋の切り欠きなので、蓋が締まらなくてよければ省略します。 pdfファイル

Mintcan_template

Mintcan_template_2

ミント缶Ⅳキットの部品構成

  ALTOIS缶収納を前提に部品を選定します。117中樹脂ケース収納と部品の共通化は不可能です。樹脂ケース収納はサポートせず、推奨ケースはALTOIS缶のみとして部品を準備し、近々に頒布を開始する予定です。キットの頒布価格は4,100円で旧版より1,000円アップです。

追記

  速度ボリュームの回転防止爪穴(写真赤〇)は開けず、1mm厚のスペーサを挟みました。ミント缶手前の縁に近いボタンを少しでも押しやすくする為です。型紙はこの位置に合わせています。

Spacer

2018年8月 8日 (水)

ミント缶Ⅳのケース

ミント缶Ⅳ基板をケースに収納する

  ミント缶コントローラに限らず、やっぱり基板むき出しのままでは操作性も精神衛生上もよろしくない様で、ケース収納を検討しました。推奨ケースは勿論ALTOIS缶ですが、入手性と加工に多少難ありなので樹脂ケースの収納を提案します。
  ケース加工を外注すると原価が3倍に膨れ上がります。ミント缶は安いだけが取り柄のコントローラにはしたくありませんが、あまり高額にすると入門用としての役割が怪しくなります。メーカー製のアナログパワーパックと同じ価格帯を維持して、DCCは高いという概念を払拭したいと考えています。

OLEDのピンヘッダー

  AliExpressで入手しているSPI版OLEDですが、予め7Pのピンヘッダがハンダ付けされています。標準のピンソケットに取り付けると基板面からの高さは13.5mmです。ケースの上にタクトスイッチが顔を出す様に基板の位置を決めるとOLEDが当たって蓋が締まりません。

10mmh

  秋月電子にはロープロファイルソケットなるものが販売されています。高さ5mmと3.5mmがありますが、5mmH(写真上)はコンタクトの向きが違っていて14ピンをカットすると7ピン一個しかとれません。これでは大量の廃棄物が出てしまうので分割可能タイプの3.5mmH(写真下)を使います。

Lowprofile

ここで大きな問題はOLEDのピンプラグを2.5mmの長さにカットしないといけない事です。更にカット面にバリがあるとソケットに入り難くなり、またコンタクトを傷つける心配もあります。組み立てキットには致命的で頒布を先送りしています。

6mmh

樹脂ケースに収納する例

  秋月電子で入手出来る西務良製の117中を加工する型紙です。

型紙をダウンロード

Template

  型紙を切り取ったら線を山折りしてケースに入れ、+の位置にポンチを打ちます。プリント基板の寸法精度と部品実装の関係で±0.5mm程度の誤差が出ます。先ず速度調整ボリュームの穴を開けてケースに収め、下穴との位置ずれを確認すると安心です。
  ボリューム穴で重要なのはシャフト下の小さな回転防止爪です。基板固定なので回転防止は不要なのですが、ここの穴を開けないとナットで固定した時に基板後部が浮き上がり、フィーダコネクタが型紙の位置と合わなくなります。
  実際に組み込んでみると電源スイッチは浮かしてハンダ付けしないと頭が出ません。

Mint_117t

追記

  型紙に基板の固定穴を追加しました。
追加した型紙をダウンロード

2018年7月27日 (金)

ミント缶Ⅳにオプションモードを追加 その2

統括アドレス

  デコーダのCV19に7ビットのデータを書き込むと、その値をアドレスとして統括運転モードになります。この機能をミント缶Ⅳのオプションモードに追加しました。直接CVに書き込むのでは無く"Consist Control"パケットを送って、実際の動作はデコーダに任せる仕組みです。

Consist_mode

Lenz Silverでテスト

  アドレス3とアドレス4の機関車にそれぞれ統括アドレス5を書き込むと、以後は2台の機関車をアドレス5で同時運転出来ます。NMRA STANDERDにはCV19のMSB(bit7)で統括する進行方向を決定するとの記述がありますが、Lenz Silverはこれを無視していずれも双方向で動きました。ファンクションはNMRA規格上デコーダ自身のアドレスに応答する規定ですが試していません。ファンクションも統括したいときはCV21,CV22を設定しますが、Lenz SilverにはこのCVが存在しません。Lenz Goldには実装されている様です。

統括アドレスの取り扱いに注意!!

  統括アドレスが設定されているとデコーダアドレスでは動かなくなります。統括アドレスを0にすると統括モードを解除しますので、統括運転を終了したら即解除する事を強くお勧めします。これを忘れると、後でCV1のアドレスが合っているのに動かず悩む羽目に会います。入門用途のミント缶Ⅳとしては、かなり危険な機能と言えるかも知れませんが、DCCの奥深さを知ってもらうには面白い機能かなと思い敢えて追加しました。

スマイルデコーダの対応は?

  NmraDccライブラリを使用しているスマイルデコーダにはこの機能が有りません。ライブラリを眺めても該当する関数は見当たりませんでした。統括する機能をCVであれこれ設定出来るのでスマイルデコーダ向きかなと思っていたので残念です。但しNmraDccライブラリでは該当するパケットを Reserved扱いにしているので、改造はさほど難しくは無さそうです。

2018年7月26日 (木)

ミント缶Ⅳにオプションモードを追加

CV書き込み

  ミント缶ⅣでもCV書き込みモードを残していますが、積極的なアナウンスは行わない事にします。理由はDesktopStationさんの記事の通りです。ミント缶Ⅳは大幅に価格がアップします。そこにCV読み出し機能を追加したら、価格面で入門者用の役割を果たせなくなります。そこで代わりと言っては何ですがOPS CV書き込み(動作モードCV)を追加しました。
  [SEL]ボタン長押しでオプションモードに入ります。対象のLocoアドレスを決めたらOPT:のオプションを選択します。[▽]ボタンを押すと、ついでに追加したコンシスト制御モードに変わります。下の画面はOPSモードです。

Ops_mode

OPS CV書き込み

  走行中にCV値の書き変えが出来ますので、分かり易いCV3(加速)とCV4(減速)をLenz Silverで実験しました。結局どちらも一旦停車しないと分かりませんが、CV値を読み出して確かめなくても書き込んだ結果を体感する事が出来ます。
  スマイルデコーダはOPS書き込みを考慮していないのでAck動作で一瞬モータスピードが上がります。これはまずいなと思ってNmraDccライブラリを眺めていたらnotifyServiceMode()と言うコールバック関数を見つけました。これをスマイルデコーダのスケッチに追加します。

boolean gSvcMode = false;

extern void notifyServiceMode(bool svc)
{
  gSvcMode = svc;
  #ifdef _DSFOX
   Serial.print("notifyServiceMode "); 
   Serial.println(gSvcMode); 
  #endif
}

void notifyCVAck(void)
{
  if(gSvcMode)
  {
    MOTOR_Ack();
  }
}

  これでOPS書き込みの時はAck応答せずに済みます。CV値はnotifyCVChange()関数内で変数を更新して直ちに動作に反映させます。

extern void notifyCVChange( uint16_t CV, uint8_t Value)
{
  if(!gSvcMode)
  {
    switch(CV) {
      case CV_ACCRATIO:
        gCV3_AccRatio = Value;
        break;
      case CV_DECCRATIO:
        gCV4_DecRatio = Value;
        break;
    }
}

  一番効果を実感出来そうなBEMFパラメータで走行中の変化を確かめたいですが、テスト環境が整っていません。DesktopStationさんからお借りしているロクハンのセットとスーパースリムで試しましたが、この程度の傾斜ではEMFオフで何の問題も無く走行して、効果を体感するには至りませんでした。

Rokuhan

 

2018年7月21日 (土)

ミント缶Ⅳの画面デザイン その2

画面の遷移

  液晶画面が小さくて見難いと悪評なミント缶Ⅳですが、サイズは変えられないので機能別に表示を分けて1画面に表示する文字数を極力少なくしました。SEL+△ボタン、SEL+▽ボタンで画面を切り替えます。

Oled_tramsfer

  ファンクションモードでは2つのボタンでそれぞれ0から28までを選択、アクセサリモードとルートモードはファンクションボタンをDiv(分岐)とStr(直進)にアサインします。アクセサリアドレスは4桁各数値を△▽ボタンで選択して最大2044まで使用可能です。ルートは1から25まで、各ルートに10通りのアドレスを登録する事が出来ます。

4桁アドレス登録

  Fxボタンを押しながら電源オンで4桁アドレス登録モードにします。Src番号(元アドレス1 - 50)を選んでDist数値(アドレス1 ー 9999)を登録する事が出来ます。登録したアドレスはFnボタン(CVW)でデコーダへの書き込みも出来ます。ミント缶にはCV読み出し機能がありませんので手動でCV29に既知の値を設定してください。2桁←→4桁のアドレス変更を行わなければCV29の書き込みをパスする事も出来ます。

LongaddressLongaddresswrite

新しいスケッチ

  DesktopStationサイトの[Wiki] - [有志のスケッチ]にr0.1をアップしました。ミント缶Ⅳ頒布試験にご協力頂いている方々、お手数ですがスケッチを更新してお試しください。