無料ブログはココログ

コントローラ

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

2018年5月 8日 (火)

ミント缶Ⅳ試作

ミント缶キットR1c完売御礼

  ミント缶DCCコントローラR1cが完売しました。皆様ご協力ありがとうございました。次回の出荷からミント缶Ⅳに変わります。

ミント缶Ⅳを試作中

  なんでⅣ(?)Ⅱ、Ⅲは何処へ行ったと思われるでしょう。その理由は、
1. アドレスを4桁に拡張した事を主張するためⅣにしました
2. ミント缶基板、実は初代、青色基板のR1、大幅コストダウンしたR1c、そして今回は4代目にあたります

Mintcan4

  カオスな写真です。ミント缶と呼ぶにはALTOIDS缶に入る事が必須ですが、入手し難い、加工が大変などでプラスチックケースに収納する方も多い様です。基板の長さを1mm縮めて秋月電子の117-中に納まるサイズにしました。頒布形態をどうすべきか未だ方向性が定まりません。

有機EL(OLED)

  世界最安を諦めOLEDを採用しました。他にも単価がかさむ部品があり、頒布価格は大幅にアップする可能性が高いです。

  表示をOLEDにしたらタクトスイッチが窮屈になりましたが、慣れとは恐ろしいもので一部を表示の左に移動すると動線が伸びて操作性に馴染めず、従来の位置のままです。但しF0をSELに変更したのについF0を押してしまうので、SELの位置を入れ替えました。

  OLEDは7セグLEDと比較して情報量が大幅に増えました。特に速度設定表示は助言を頂いてバー表示にしたらOLEDらしさが際立ちました。二段や三段表示にすればより細かなステップを表示できますが、難しそうなので見送っています。

Oled

複数アドレスのサポート

  残るテーマはアドレス切り替え時の速度設定です。アドレス個別にステップとファンクション情報を保持するにはメモリが足りません。ファンクションはビットに割り当てて少しダイエット出来ましたので、2アドレスだけでも共有できればと思っていますが未だアルゴリズムが出来ていません。

  基板CADをDS PCBに変更して最初のプロトタイプ基板はケアレスミスで失敗しました。作り直してうまく行ったらモニターを募集しますので、ご協力の程よろしくお願い申し上げます。

2018年2月19日 (月)

Mint solution

ケース組み込み

  ベルギーのメルクリンユーザーさんからミント缶のケース組み込み写真が届きました。当ブログ掲載の了解を得たので転載します。何かの空きケースでしょうか、ぴったりサイズです。左端に機能説明ラベルが貼られています。 右端の"snelheid"はスピード、Aanがオン、Uitはオフの意味でしょうか。

Img_0721

フィーダ線の勘合

  キット組み立て直後はロコが全く動作しなかったそうですが、電源をメルクリンに合わせた18Vに変更し、フィーダ線をターミナルブロックの仕様に合わせて被覆を剥き直したら、全て思い通りに動作したそうです。参考のためフィーダ線がターミナルブロックに噛み合う様子の写真も掲載します。被覆を剥く長さが9mm以上必要な事が分かります。

Tb401

2018年2月16日 (金)

ミント缶の有機EL選択

SPI OLED

  ミント缶を有機EL化するテストを行っていますが、4桁アドレスを縦倍文字で表示すると、およそ10msec間DCCパケットが停止します。これでは電源リセットが起こるデコーダも有り得るので、これを回避する為SPI版を試しました。

OLEDライブラリ

  OLEDのライブラリとしてメジャーなU8glibとAdafruitですが、メモリ消費量が大きくてミント缶スケッチを組み込む空きが無くなります。因みにAdafruitのテスト結果、"hello world"のみでもプログラム使用率33%、RAMが64%でした。なのでDSmainのOLED化で使われている軽量なOzOLEDライブラリをSPI版に改造します。購入したOLEDは5ピン全てを使うモードにジャンパされていました。3線SPIに変更するのは面倒なのでこのままで行きます。

3wire

ライブラリ変更箇所

  Adafruitライブラリを参考にしながらSPIに対応しました。DC、CS信号を使うので制御線の上げ下げを実行します。DC_PINでコマンドとデータの切り換え、CS_PINでSPI.transferとSPI.endTransactionの役割を果たす様です。

void OzOLED::sendCommand(byte command){
   digitalWrite(CS_PIN, HIGH);
   digitalWrite(DC_PIN, LOW);
   digitalWrite(CS_PIN, LOW);
   SPI.transfer(command);
   digitalWrite(CS_PIN, HIGH);

void OzOLED::sendData(byte data){
   digitalWrite(CS_PIN, HIGH);
   digitalWrite(DC_PIN, HIGH);
   digitalWrite(CS_PIN, LOW);
   SPI.transfer(data);
   digitalWrite(CS_PIN, HIGH);

  メモリ使用量はROM15%、RAM3%とAdafruitに比べて大幅なダイエットに成功しました。

実行結果

  およそ1.5msecで縦2倍4文字を表示出来ました。SCKは4MHzです。

Lcd_spi_streem

  時々画面が暴走するので、CS_PIN切り換えのタイミング調整が必要なようです。
いずれにせよ、メモリを節約してSPI OLEDで表示が出来る事が確かめられて一安心です。

Mintcan_spi

2018年2月 5日 (月)

ミント缶を電池で動かす

昇圧型DC/DCコンバータ

  aitendoで仕入れた大電流出力可変DC/DCコンバータ[M3608]です。ネットでは「在庫切れ」の表示ですが、店頭のワゴンセールで\199でした。
  単三4本をVinにしてポットを回したけど電圧が変わらず故障かと思いましたが、ポットのスライダーとCCWが繋がっていません。これがワゴンセールにした理由でしょうか。でも激安なのでお買い得でした。基板裏でジャンパしたら無事可変出来ましたので、ミント缶DCCコントローラの最低動作電圧10Vに調整しました。

Mt3608_lerge

負荷テスト

  Bトレ一輌とMP3デコーダを繋いでテストしました。

Img_1669

  電源電圧の変動や極端なリップルの増加はありません。出力インピーダンスが高めなのかMP3を鳴らすとサウンドと同期したリップルが現れますが、振幅は180mVから200mV程度で出力電圧に対し約2%です。
  電流を測定していませんので電池の持続時間は分かりません。定格の入力電圧は2V以上ですが単三2本ではミント缶単体を動かすだけでも出力が不安定になるので、4本使いにしました。

Sound_ripple2

2018年1月22日 (月)

ミント缶を有機EL化

改造用基板の準備

  OLEDはAliexpressに発注しましたが、配送は当分先になりそうなので、秋月のピン互換品を使います。7SEG LEDのスルーホール左寄せでOLEDを取り付けます。

手順
1.  7SEG LEDをOLEDに交換する為に、Tr1、Tr2、R2~R8を取り外す
2.  Tr2のエミッターコレクタ間をジャンパーする
3.  R2とD2のGNDをジャンパーする
4.  R3とR2のIC1側(28ピン)、R4とR3のIC1側(27ピン)をジャンパーする

Image1

OLEDを取り付ける

  7SEG LEDの位置に秋月の分割ロングピンソケットを4ピンにカットしてハンダ付けしました。これにOLEDを差し込めば完了です。ピンソケット + ピンプラグで11mmですので、秋月のポリカーボネートケース117-中は上蓋が当たります。ALTOIS缶はぎりぎりクリアです。もう少し背の低いスペーサが有ればいいのですが。

Image2

テストスケッチ

  DSMeister_r6.inoのSetup()だけの表示で動作確認しました。無事スタートアップ画面が表示されましたので、これからじっくりミント缶スケッチへの移植を考えます。

ミント缶画面

  こんな感じにしてみました。

Mintcan4

2018年1月17日 (水)

SALでミント缶を発送

SAL便送付

  ベルギー宛ての荷物をSAL便で受け付けてくれたので書留付きで送りました。窓口の方もキーボードを叩いてましたので、公開されているページを見ていたのかも知れません。

前日に貰っておいたCN22に書き込んで持ち込んだら書き直す羽目になりました。

Cn22_large

  昔は当たり前だった3枚綴りのカーボンコピーです。窓口では落ち着いて書き込めず、宛名をスペルミスして書き直ししましたので、次回の為に何枚か貰って帰りました。ドットプリンターが有れば印刷できますが、とうに捨ててます。
  『価格をなんで円で書かないの』と何度も突っ込まれましたが、何が気に入らなかったのでしょう?

  初めての海外送付でしたが手間は国内とそんなに変わらないので、オープンソースのDCC海外進出を考える良い機会なのかも知れません。

2018年1月 8日 (月)

DCCコントローラを電池で動かす実験

HブリッジIC

  DCC電子工作連合機器活用レポートコンテストで「ミント缶の低電圧対応化」のレポートを頂きましたので、私なりの実験をしてみました。DCCパケット出力に使用する市販のHブリッジICは、次の条件を満たしていないといけません。

  1. 7Vから22Vの電圧範囲
  2. 貫通電流防止
  3. 過電流保護

  2.の条件は勿論の事、鉄道模型はトラックショートが当たりまえで、条件3.も必須です。またDCCのデコーダに搭載された大容量のコンデンサで突入電流が流れますので、そこそこ大きなピーク電流が必要です。
  旧タイプのHブリッジICはバイポーラトランジスタ出力タイプが多く、出力電圧の降下と発熱が大きい傾向があります。近年はMOSFET出力で動作電圧の低い製品も出回っていますが、まだ単価が高く、TSSOPやQFNパッケージが大半で実装コストがかかります。ミント缶の製品に反映する事は困難な状況ですので、電池駆動専用と割り切って、秋月電子取り扱いのTB6612を試しました。電池対応は自己責任による改造でお願いします。

  TB6612の動作条件は標準5V、最大13.5V、最大電流1A、ピーク3A、単価は\130です。SSOP24パッケージなのでTSSOP28 - DIP変換基板(\50)を使いました。スポットハンダは困難なので引きハンダ(動画)で行いましたが、面倒ですので\350で販売されているDCモータードライブキットをお勧めします。

Img_1641

電池駆動テスト

  充電式の単4Ni-MH6本使いでVBは6.6Vでした。TB6612はHブリッジ2回路入りですが、デッドタイムのタイミングにズレがあるとICを破壊する恐れもありますので、並列接続は試していません。Arduino UNO互換器に変換基板を乗せ、スケッチはDSShield用を使いましたが、A1が未接続なので電源電圧チェック(/* Sensor check */)をコメントアウトしてUNOに書き込み、無事DCCパケットが出力されました。

Packetout

デコーダテスト

  7V未満で動くモーターデコーダは手元にありませんでした。唯一動作したのはNuckyさんの日本型信号機です。10MFの電解コンデンサを搭載してますが、突入電流はクリア出来た様です。並列接続が可能ならピーク電流を6Aに出来るので、実用領域に達すると言えるでしょう。

Img_1643

2018年1月 6日 (土)

初仕事

DSmainR5を有機ELに

  電車に乗る直前だった昨日のお昼の警報と、夜中の揺れには驚かされました。やれる事はさっさとやっておいた方がよさそうなので、初仕事として縁起の良さそうなOLED化を行いました。DesktopStationさんの「電機屋の毎日」ブログに有機EL化のスケッチがアップされています。
  LCDからの交換作業は簡単です。4ピンソケットハーネスを作ってCN5に差し替えるだけです。VCCとGNDが入れ替わっています。

Img_1635

  老眼が進んだ身にはちときついですが、同時に表示される情報が増えて使い勝手が向上します。

Img_1637

  LCDと違って上から覗いても良く見えます。カッコいいですが、DSmainR5試作時の黒いケースの方が見栄えが締まってましたね。白い箱と呼ばないのはその為?
でも最終試作は白だったので、やっぱり量産品は白でしょうか。

Img_1636

2017年12月15日 (金)

ミント缶は4桁アドレスの夢を見るか

ミント缶DCCコントローラを4桁表示に改造

http://twaydcc.cocolog-nifty.com/top/2017/10/7led-e667.html
でテストした7セグLEDドライバーを使ってミント缶を改造してみました。
TM1637のSOICパッケージはaitendoで\60、秋月でSOP20ピン変換基板が\50、2桁7セグLEDは\60でした。
改造スケッチを一発で動かす自信は無かったので、オンボード書き込みが出来る旧R1基板を使いました。

  [写真1]
Mintcan_r1

改造手順

  1. 7セグLEDに繋がるTr1、Tr2、R2~R8を全て取り外します(写真1)
  2. R2~R8に繋がるパターン10箇所をカットします(写真1の赤い線)
  3. R2~R8の位置に7セグLEDの足を広げて配置します(写真2)
  表示が見やすい様に7セグを浮かして取り付けていたのが幸いして、7セグの足を曲げて付けても高さが揃いました
ミント缶を設計された方(ご存じyaasanさんです)は4桁改造を見越しておられたのでしょうか。既存の7セグの隣にぴったり並びました。

  [写真2]
7segled

  4. TM1637をSOP変換基板に乗せて全ての制御ピンを接続すれば完成です(写真3)

[改造部の回路図]

Tm1637mod

  [写真3]
Prosess_long

操作方法

  ミント缶のボタンで4桁アドレスを扱うのは不可能と考えていましたが、DCC電子工作連合の忘年会で良いアイデアを頂戴しました。扱えるアドレスは2桁の99通りのまま、このアドレスを4桁に変えてしまえと言うものです。
  4桁へのアドレス書き変え手順はCVプログラムモードとほゞ同じなので、F1ボタンを押しながら電源オンする事でアドレス書き変えモードとしました。△▽ボタンで元のアドレス0~99を選択してF2ボタンを押すと4桁アドレス設定に切り替わります。(写真3)
何故F2かと言うとF0とF1は設定した4桁アドレスの確認目的でファンクション操作に使う為です。写真3の4桁アドレス設定でDPが点灯している桁の数値を△▽ボタンで0~9に変更します。F0ボタンで設定桁を移動します。4桁全てを設定してF1ボタンを押すと4桁アドレスが登録され、書き変え元アドレス選択に戻ります。このモードでは速度設定ボリュームと先ほどのF0、F1ボタンで設定した4桁アドレスの動作を確認する事が出来ます。 写真4はBトレ江ノ電の車体番号1201を設定して走行テストした様子です。(動画じゃなくてすみませんが無事動きました)

Testrun

改造スケッチmintcan_long.zip

デコーダへ4桁アドレスを書き込む

  ミント缶で書き込むにはCVプログラムモードでCV17、CV18を希望のアドレスに設定し、CV29にビット5を1に(+32)した数値を書き込みます。4桁アドレスの設定方法は下記URL  WebNuckyさんの「CV17, CV18:4桁アドレス(0128~9983)の設定方法」をご覧ください。
  http://web.nucky.jp/dcc/decoder3/cv-ver3.html
  Desktop StationさんのDSblueboxなら"Write LocAddr"で3か所のCVを1回で書き込むので、頻繁に4桁アドレスを書き変える方には DSblueboxをお勧めします。

2017年10月13日 (金)

7セグLEDドライバーのテスト

7SEG LEDドライバーIC

  電気屋の毎日のyaasanさんが 7SEG I2Cモジュールをミント缶DCCコントローラに使う事を提案されてます。http://powerele.sblo.jp/article/180453571.html
aitendoでTM1637Dチップを仕入れたので実験してみました。20ピンDIPで100円でした。Arduinoライブラリ"DigitalTube.zip"はキースキャンが出来ませんが、Arduino Forumにchmroさんのコードがアップされていましたので拝借しました。 https://forum.arduino.cc/index.php?topic=360318.0
TubeTab[]はDigitalTubeのデータに戻しました。またDigitalTubeをライブラリに登録したので、エラーが出ない様にクラス名をTM1637keyに書き変えました。 テストしたスケッチはDigitalTubeに付属するNumberFlow.inoで、0からFまでdisplay()で桁を移動しながら連続表示します。
ユーザズマニュアルで指定されている、CLKとDIOピンの10Kohmと100pは手抜きして取り付けていませんが、取り敢えず表示出来ました。

3桁7セグと1個のキーで実験

Img_1557

  display()関数は、桁を指定しないで表示データ配列のみを渡すと、複数の桁を一気に表示する様です。
キースキャンはSG1からSG8の8ビットをK1とK2で切り替えて、16個のキーを取得します。
uint8_t keypressed = tm1637key.keyscan();
スキャンデータは何も押さなければ255、K1-SEG1間に接続したスイッチを押すと247でビット3がオンです。おや、ユーザズマニュアルと一致しませんね。2バイトデータを1バイトにエンコードしているからでしょう。

より以前の記事一覧