デジタル鉄道模型フォーラムDCC・メルクリン等のデジタル鉄道模型の話題でコミュニケーションできる場です。登録・利用は無料です。
デスクトップステーション(DesktopStation)のページはこちら
・無料の日本型超高品質DCCサウンドデータをWebで配布中!
・鉄道模型をスマホで簡単制御!国産で革新的なコマンドステーション DSair2はこちらから。

2017年04月28日

東北でよかった

(私のルーツが)東北でよかった。

tohoku_good0428.jpg

10年近く前に秘書の入社報告で山形に挨拶に行った時のついでに行った写真です。山形・尾花沢の銀山温泉は風情がとてもあって良いですよ。

GWや夏休みは、ぜひとも東北へ。
posted by yaasan at 07:42 | Comment(1) | 日記

Keep Aliveコンデンサ用の回路基板

Keep Aliveコンデンサに使用する、ダイオードと抵抗の突入電流防止回路基板ができました。

KeepAlivePCB2.jpg

KeepAlivePCB1.jpg

ダイオードには、スマイルデコーダで使っているロームのダイオードRB160M-30TR、抵抗は家にたまたまあった1608サイズの100Ωを付けてますが、1W 100Ωあたりの放熱性の高い抵抗を強く推奨します。コンデンサは、なごでんさんのMP3デコーダV4に付属していた25V/1000uFの25PK1000MEFC10X16です。

ちゃんと回路が動作するか確認してみました。まず、コンデンサの充放電性能です。
ACアダプタ直付けで、途中に電流測定用の0.1Ωの抵抗を挟んでいますので若干電圧は落ちてます。

コンデンサそのまま:
20160331_424635.PNG

Keep Aliveコンデンサ:
20160331_424732.PNG

充放電性能はあまり差はないですね。問題ない、ということです。
気になる突入電流ですが、コンデンサそのままだと400mVくらい、0.1Ω抵抗の電圧降下ですので、0.4/0.1=4.0[A]となります。Keep Aliveコンデンサの回路を挟むと、グッと小さくなって16mVですので0.016/0.1=0.16[A]となりました。ピークが非常に小さくなって、コマンドステーションへの負荷としてはあまり気にならないレベルですね!

1608 1/10W抵抗を付けてしまっているので、熱破壊を想定して計算してみると0.16*0.16*100=2.56Wです。時間は0.1秒(100ms)間なので、これがそのまま熱になるわけではないですが、1/10Wだと貧弱なのは変わらないですね。

コンデンサそのまま:
20160331_423815.PNG

Keep Aliveコンデンサ:
20160331_424311.PNG

Keep Aliveコンデンサ基板は、ダイオードとサンプル抵抗(1/10Wなので注意!)を2pcsでセットで100円です。限定数5個、DCC電子工作連合の商品を1点以上購入した人限定特価商品です。

なお本基板はDCC電子工作連合のデコーダ商品向けに開発したものです。他社デコーダを使用の方は、内部回路が不明で動作保証が一切できないのでお譲りできないことをご承知おきください。
posted by yaasan at 06:57 | Comment(0) | 鉄道模型

2017年04月26日

模型市・自動運転デモの作成

今日は副業を休んで、4月29日(土)の鉄道模型市(浅草)で披露する自動運転のデモソフトを作りました。単純にクモハ40が往復するだけですが、吊り掛けを鳴らしながら走るのでサウンドのデモとして最適かなと思ってます。

■ブロック図

ShuttleDemo1.png

■実験風景

ShuttleDemo2.jpg

■使用機材

・DCC/MMシールド & Arduino UNO互換機セット
Nucky製s88 Train Detector
・Nagoden製 MP3サウンドデコーダV5 (CV47=4の吊り掛け音モード)
・KATO クモハ40
・KATO UNITRACK
・KATO 絶縁ジョイナ
・KATO ジョイナフィーダー線

■スケッチ

TMI2017_SAMPLE.zip
※別途、DSGatewayLibが必要

/*********************************************************************
* Desktop Station Gateway Sketch for Arduino UNO/Leonard
*
* Copyright (C) 2014 Yaasan
*
*/


#include <avr/wdt.h>
#include <SPI.h>
#include "DSGatewayLib.h"
#include "TrackReporterS88_DS.h"

#define CHANGETIME 100
#define MAX_SPEED 512


/* Speed adjust */
#define SPEED_ADJUST 8

TrackReporterS88_DS reporter(1);
DSGatewayLib Gateway;

word gLocAddr = ADDR_DCC + 3;

void setup()
{
Serial.begin(115200);
while (!Serial);

Gateway.begin();

delay(2000);

//S88 Refresh
reporter.refresh(1);

//Power On
Gateway.SetPower(1);
delay(CHANGETIME);

//Go forward
Gateway.SetLocoDirection( gLocAddr, 1);
delay(CHANGETIME);

//Speed 0(Stop)
Gateway.SetLocoSpeed(gLocAddr, 0);
delay(CHANGETIME);

//Function 0
Gateway.SetLocoFunction(gLocAddr, 0, 1);
delay(CHANGETIME);

//Function 1
Gateway.SetLocoFunction(gLocAddr, 1, 1);
delay(CHANGETIME);

Serial.println("Setup Refresh");

}

void loop()
{
int aSpeed = 0;

Serial.println("FWD");

//Function 2
Gateway.SetLocoFunction(gLocAddr, 2, 1);
delay(CHANGETIME);
Gateway.SetLocoFunction(gLocAddr, 2, 0);
delay(CHANGETIME);

for( int i = 0; i < 40; i++)
{
aSpeed = aSpeed + SPEED_ADJUST;
Gateway.SetLocoSpeed( gLocAddr, aSpeed);
delay(CHANGETIME);
}

reporter.refresh(1);

while( reporter.getByte(0) == 0)
{
delay(CHANGETIME);
reporter.refresh(1);

Serial.print("S88 data =");
Serial.print(reporter.getByte(0));
Serial.println();
}

Serial.print("S88 data =");
Serial.print(reporter.getByte(0));
Serial.println();

Serial.println("S88 detected");

for( int i = 0; i < 40; i++)
{
aSpeed = aSpeed - SPEED_ADJUST;

if( aSpeed < 0)
{
aSpeed = 0;
}

Gateway.SetLocoSpeed( gLocAddr, aSpeed);
delay(CHANGETIME);
}

// Go reverse
Gateway.SetLocoDirection( gLocAddr, 2);
delay(CHANGETIME);
//Function 2
Gateway.SetLocoFunction(gLocAddr, 7, 1);
delay(2000);
Gateway.SetLocoFunction(gLocAddr, 7, 0);
delay(CHANGETIME);

//Function 2
Gateway.SetLocoFunction(gLocAddr, 2, 1);
delay(2000);
Gateway.SetLocoFunction(gLocAddr, 2, 0);
delay(CHANGETIME);

Serial.println("REV");

for( int i = 0; i < 40; i++)
{
aSpeed = aSpeed + SPEED_ADJUST;
Gateway.SetLocoSpeed( gLocAddr, aSpeed);
delay(CHANGETIME);
}

delay(5000);

for( int i = 0; i < 40; i++)
{
aSpeed = aSpeed - SPEED_ADJUST;

if( aSpeed < 0)
{
aSpeed = 0;
}

Gateway.SetLocoSpeed( gLocAddr, aSpeed);
delay(CHANGETIME);
}

//Go forward
Gateway.SetLocoDirection( gLocAddr, 1);
delay(CHANGETIME);

//Function 2
Gateway.SetLocoFunction(gLocAddr, 6, 1);
delay(2000);
Gateway.SetLocoFunction(gLocAddr, 6, 0);
delay(CHANGETIME);

}
posted by yaasan at 22:41 | Comment(0) | 鉄道模型

2017年04月25日

UNITRACK用のフィーダコネクタの販売(模型市)

UNITRACK用のフィーダコネクタのオスメス2個ずつセットを100円でこっそり販売します。

裏メニューなので、さりげなく置いてあります。なお、5セットしか持って行かないので、無くなったら終わりです。硬貨については、おつりは一切出ませんので、おつりが必要な方はあらかじめ両替してください。

posted by yaasan at 20:05 | Comment(0) | 鉄道模型

DSmainR5.1 はんだ付け例

DSmainR5.1の出荷が始まってますので、以下にご参考までにはんだ付け例を示します。

DSmainR51_soldered.jpg
posted by yaasan at 19:52 | Comment(1) | 鉄道模型