So-net無料ブログ作成
検索選択
ds-DCCデコーダ ブログトップ
前の10件 | -

ゴードンにグリスを塗る [ds-DCCデコーダ]

 前の動画はロッドのあたりからキュルキュル音がうるさくて、蒸気音を台無しにしていましたので、グリスを塗ってみました。
 買った状態ではロッドの辺りは全くグリスが塗られていませんでした。まあ、塗られていると車体をレールに乗せるときにベトベト手についてしまって大変なことになると思いますが。
re_DSC01965.jpg

 で、ベトベトと両側の車輪にタミヤ セラグリスHGを塗りました。このグリスはトミックスのポイントをスムーズに動かそうと四苦八苦していたころに買ったもので、「HG」ってついているから多分高級品です。
 re_DSC01966.jpg

 もちろん、この後に綿棒で余分なグリスは拭き取って、慣らし運転をしています。
 そして、みごとキュルキュル音がなくなりました。あとは、スペンサーも注文してしまいました。来るのは10月初めぐらいですかねえ。なんかゴードンとスペンサー合わせたらKatoのC56(HO)が買えたんじゃないのか?とちょっとだけ思いました。

 キュルキュル音がしなくなった動画です。ロッドによる抵抗も減ったので以前よりも低速から動き始めるようになりました。まあ、蒸気音とピストンが連動して音がするには程遠いのですが。こっそり、ビデオの下に雑巾をひいたりして、ベニヤからの共振音を取るのを減らすなど音に対する努力もちょっとしてみました。

コメント(2) 

バックマン ゴードン(HO)にサウンドを入れる。 [ds-DCCデコーダ]

 さて、表題の件、やっと入って、走りもどうにかなりましたので紹介いたします。
 使用しているのはなごでんの日記さまのMp3V5のスイッチングレギューレータバージョンです。(まだ試作だと思われます)。LDOバージョンと大きさは変わらないようでしたので、ゴードンに入るかもと思って、まずは記念撮影です。LDOに比べてコイルがある分、ちょっと厚みはありそうですが、12V→5V変換でほとんど熱は持ちません。これでテンダーに入れてもあまり熱がこもらないかなあと思います。
re_DSC01952.jpg

 で、まずは本体の配線をテンダーに引き回すために、リード線を継ぎます。
re_DSC01956.jpg

 一応束ねておきました。
re_DSC01957.jpg

 で、機関室とテンダーに穴をあけて配線を通します。
re_DSC01959.jpg

 なお、上記の写真では、2か所致命的な間違いをしていますので、あとで直しました。
(1)機関室からテンダーまでの配線4本を熱収縮チューブで収縮はさせていないが束ねたら、ケーブルが固すぎて、テンダーが転覆しました・・・。
 ですので、4本バラ線にしました。
(2)テンダーへの配線穴を下の方にし過ぎて、ウェイトにケーブルが引っかかって組み立てられなくなりました。はじめ、ウェイトなんかいらないと外していましたが、(1)のこともありテンダーが転覆するため、穴を上の方に開けなおして、ちゃんとウェイトも入れました。

 で、テンダーへのおさまり具合です。
re_DSC01964.jpg

 スピーカーはブラックキューブスピーカーを直列接続しています。一つよりも音は大きいです。でも、音を大きくし過ぎると音割れします。
 ここで、最初、止まらんコンデンサ!は100uFを使ってみましたが、集電不良時に(ゴードンは、駆動輪からしか集電していませんので、結構集電不良します)、音が切れ、集電が戻ると、音がどんどん大きくなるという現象がありました。なごでん様に確認して、おそらくマイコン(ATMega328)はリセットされるが、アンプのPAMのほうは電源ライン強化で近くにコンデンサをいれているためリセットされないのではないかとのことでした。実際、470uFに変更しましたら、集電不良がなくなりましたので、音がどんどん大きくなる!という現象もなくなりました。

 で、テンダーの下側に穴を開けました。あまり考えていません。
re_DSC01963.jpg

 そして、ウェィトを付けて、ポリイミドテープで絶縁して、テンダーを組み立てれば完成です。
re_DSC01962.jpg

 動画です。初めに押す汽笛のボタンを間違えたので、電車の警笛が鳴っています・・・。


 あとは音が少々小さいかなあとも思います。
 お風呂屋さんのゆるゆるな鉄道部屋様の古い天賞堂製のEF58にキャブインテリアを取り付け記事よると、ウェイトにしっかりつけると音が大きくなるようなので、試してみようかと思います。
 あとは、キュルキュル音が大きいからロッドにグリスを塗ろうかとも思いますが、ベトベトになったらいやだなあとも思っています。
 Mp3V5の入れ方も大体わかったし、半島の北の首領様と西の超大国の大統領が張り合っているせいでドルが安めなので、amazon.comからスペンサーを買おうかどうか、悩んでいます。
 Joshinに頼んだHOのDE10とヨ8000は同梱で注文したら、車掌車の発売延期のせいでいまだにいつ来るかわからないし・・・。



コメント(0) 

Mp3V5スケッチのアップデート中(EL,DL) [ds-DCCデコーダ]

 関係者でMp3V5のアップデート中です。

 EL102f
・32kHz
・Timer1抜きでパフォーマンスアップ
・BEMF部分修正(MECY様)
・ブレーキ音部分タイミング修正
・ブレーキ音On/Offのビット修正
・(裏モード)吊りかけ音用リバーブモード追加 CV48の3ビット目を1にする。ただし、VVVF音が単音になるので、注意。
CV48
1ビット目:レール継ぎ目音(1で鳴る)
2ビット目:ブレーキ音(1で鳴る)
3ビット目:吊りかけ音リバーブモード(1で鳴る)




 DL108r6n_a
・32kHz
・Timer1抜きでパフォーマンスアップ
・BEMF部分修正(MECY様)
・警笛、ブレーキ音部分タイミング修正
・計測、ブレーキ時のビット修正
CV48
1ビット目:レール継ぎ目音(1で鳴る)
2ビット目:警笛、ブレーキ音(1で鳴る)
・VVVF側ボリュームの修正(CV50 SoundVolume:0-8)

コメント(1) 

Mp3V5スケッチのアップデート(EL,SL) [ds-DCCデコーダ]

 タイトルのように言うと、聞こえが良いですが、
・パフォーマンス改善のためTimer1を使用しないように変更
・一部モーター部分の挙動修正
・自動ブレーキ音が鳴りにくいため、Mp3のブレーキ音該当部分のWait修正
です。
 デバッグ中にSLを鳴らしてみたので、その動画も上げておきます。
トーマスのトビーみたい?


電車の正面に養生テープを貼ってあるのは、連結器のビビリ対策です。

EL102eはこちら
SL102aはこちら

コメント(3) 

クモハ12(HO)のDCCサウンド化改造 その2 [ds-DCCデコーダ]

 今日は、鉄道模型コンテストに行って、そのあとMakerFairに行って、そのあと、銀座のテンショウドウに行って(中古のHOがあるということで)、で、秋月電子、千石電商、コイズミ無線やマルツに行って、なんかいいスピーカーないかなあと探してみましたが、鉄道模型に入りそうな27mm以下のスピーカーはどこも似たようなものばかりでした。
 どこかで情報を見かけましたが、行きがけに湘南新宿ラインで大崎の前あたりで確かにクモハ12が外に出ていました。「東京総合車両センター 一般公開」が8月下旬にあるんでしょうか?(ネットで情報を見つけられなかった)。せっかく車両を買ったので、見に行こうかと思いました。
 で、本題ですが、最終的に以下の写真のようにスピーカーを付けました。床板にスーパーブラックで固定して、エンクロージャはボディーそのものという、?なものです。
re_DSC01872.jpg

 そうしたら、大きな音で鳴らすと連結器が共振します。ブリブリうるさいので、対策は追々考えていくことにします。
 音がどのくらい大きくなったかですが、まずは以前のクモハ40です。ホビーセンターカトーに持っていったら、HOオーナーズレイアウトのテンショウドウSLのせいで全然聞こえませんでしたが、このぐらいの音です。


 スピード20ぐらいの一番吊りかけ音の感じのところは51dB程度です。
 で、今回のクモハ12です。


 スピード20ぐらいで60dB行きます。よくわかりませんが3dBで2倍らしいので、10倍ぐらいの音?ですかね。ただ、SLよりもうるさい吊りかけ電車ってそれは嘘だろとも思うのですが。

 せっかくですので、ほぼ音量パラメータマックス状態でのコンプレッサー音と途中から吊りかけ音です。割れてしまいました・・・。


 ということで、少々音を落として、もう一回今度は吊りかけ音と警笛です。


 スピーカーでボディーと連結器がビビッてしまっていて、これはこれで対策を考えないといけないかなあと思います。(いや、音小さくするだけでいいような気もしますが)

 スピードが0のまま吊りかけ音を変えていますが、CV5(最高速電圧)をCV2(初速電圧)より小さくすると、動かさずに実験できます。

 これはクモハ12の改造コンテストに出したらウケるんじゃないか?と思ったのですが、なんか「塗りかえ、窓埋め、ボディ加工など魅力ある作品を募集いたします」とあるので、違うかもとちょっと思いました。

コメント(0) 

SmileDecoderR6Nを動かす。 [ds-DCCデコーダ]

 今週は夏休みですので、明日、明後日は家族旅行に出かけています。今日は、どっかに遊びに行こうかどうか悩みましたが、あまりに暑いのでやめて、お家でおとなしく実験です。

 で、なごでんの日記様からSmileDecoderR6N(12vD級アンプを用い走行音のみを出力するようにしましたが、想定以上にパワーがありすぎて現状の設計では耐えられないので再度見直しを行います。)の訳ありサンプルをいただきましたので、実験してみました。
 R6Nはこんな感じです。
re_DSC01697.jpg

 気を付けるところは、今までのSmileDecoderはどれもATMEGA328側がスマイルコネクタの〇□側なのですが、今回のは逆です。

 で、一緒に16Ωの大きなスピーカー(40㎜*30㎜)もいただきましたので、これで鳴らすことにします。大きさ的にはHOのゴードンの炭水車には載せられそうです。
 re_DSC01695.jpg

 ちょっと、鳴らしたら、やっぱりエンクロージャがないと全然音が小さいので、工作用紙で適当なエンクロージャを作ります。まあ、40㎜*30㎜*20㎜の容器作っただけですが。
re_DSC01696.jpg
 
 で、完成です。
re_DSC01698.jpg

 アンプ(PAM8006A)からの発熱は触っててそのうちアチッとなるので、50~60℃ぐらいと思われます。改造されたデコーダが一個しかなく、貴重なものなので、あまり長い間通電はさせていません。
 音は超大きいです。たぶんテンショウドウに勝てると思います。家でやるには単に迷惑な感じです。外のセミの声やヘリコプターの音、電車の通過音よりも大きいです。CV50(音の大きさ)は適当に調節しています。
せっかくですから、動画を載せておきます。
EL102D 吊りかけ音・・・振動でスピーカーが動いていきます。


EL102D VVVF音


SL102 SL音・・・ちょっと違うような気もするので、サンプリングデータをもう少し加工しようかと思いました。


DL106 ディーゼル音




 

Mp3V5の32KHz時の負荷低減について [ds-DCCデコーダ]

 青春18きっぷを買ってみました。大学生の時以来ですね。でも、そういえば行くところすら決めていません。
 碓氷峠鉄道文化むらとか日帰りでいいかなあとか思います。東海道線が高崎まで直通で、朝6時に家を出ると10時に横川に着くようですし。
 さて、標題の話題ですが、
・Mp3V5で走行音を出すと若者にはモスキート音(16KHz)が聞こえる。
→理由は16KHzのパルスで音の波形を作っているため。そのパルスもアンプで強調されてしまうため。
・パルス周期を32KHzにすれば16KHzの音が小さくなるかもと思って、32KHzに変更した。
→マイコンの負荷が高くなって、DCCのパケットを取りこぼしやすくなったためか、走行時に暴走しやすくなった。との報告。(ごめんなさい。実車に乗せて確認してないです・・・。)
 で、どうすればマイコンの負荷低減ができて、DCCのパケットをもらうプロセスをたくさん回せるか(→暴走しなくなる)という話になっているかと思います。

 で、とりあえずVVVF部分の負荷を低減できるか実験してみました。すべて、VVVF_Sound.cppの話です。

 まずは、へのへのもへじ様やあやのすけ様からお聞きして、私もVVVF音部分の割り込み時どのくらい時間を占有しているかを確認してみるため、割り込み関数「void vvvf_int1()」の最初と最後に

PORTD ^= _BV(PD7);

を入れて、割り込み時にピンから信号を出力をさせて、Arduino7ピンからオシロで波形を見てみました。
 なお、上記をやるためにはスケッチの一番最初に、

pinMode(7, OUTPUT);

の、おまじないをしないと出力されません・・・。

 で、結果波形が以下です。まずはEL102bスケッチ(16KHzのもの)です。Lowの時が割り込み中です。
走行時
EL102b走行時.png

停止時
EL102b停止時.png

走行時は周期が62usぐらいで、割り込み時間は16.7usです。
停止時は周期が62usぐらいで、割り込み時間は0.8usです。

次に、EL102cスケッチ(32KHzのもの)です。16KHzごとにパルスDutyを変えるスケッチになります。
走行時
EL102c走行時.png

停止時
EL102c停止時.png

走行時は周期が31usぐらいで、割り込み時間は17.1us、0.8usを繰り返します。
停止時は周期が31usぐらいで、割り込み時間は1,3us、0.8usを繰り返します。

また、せっかくですから、割り込み関数内の各命令がどのくらい時間を食っているのかもついでに確認してみました。
中身ですが
(1)2回に1回だけ命令を実行するためのトグル関数・・・0.8us(7ピンの出力含む)
flg = !flg;
if(flg)
{
return;
}

(2)VVVF音を出すかどうかの条件分岐・・・0.5us
if (pwm_shift != 8)

(3)波形の計算・・・4.5us(ただしpwm_shiftの値で若干変わる)
a = ((pgm_read_byte_near(&WAV_DATA1 [pwm_state1 >> SHIFT_PWM]) * 3 + pgm_read_byte_near(&WAV_DATA3 [pwm_state3 >> SHIFT_PWM])) >> pwm_shift)

(4)波形をTimer1に書く・・・6.9us
Timer1.setPwmDuty(VVVF_SOUND_PIN,a);

(5)波形の次のポイントへの移動・・・2.5us
pwm_state1 += pwm_add1;
if((pwm_state1 >= (WAV_LENGTH1 << SHIFT_PWM)))
pwm_state1 -= (WAV_LENGTH1 << SHIFT_PWM);
pwm_state3 += pwm_add3;
if((pwm_state3 >= (WAV_LENGTH3 << SHIFT_PWM)))
pwm_state3 -= (WAV_LENGTH3 << SHIFT_PWM);

仕事の改善提案ではありませんが・・・、明らかに(4)のDutyをTimer1に書くところが
やっていることに対して時間をとりすぎな感じがプンプンします。
ということで、Timer1ライブラリのsetPwmDutyを眺めてみました。
すると、
void setPwmDuty(char pin, unsigned int duty) __attribute__((always_inline)) {
unsigned long dutyCycle = pwmPeriod;
dutyCycle *= duty;
dutyCycle >>= 10;
if (pin == TIMER1_A_PIN) OCR1A = dutyCycle;
・・・
となっており、long型の掛け算をやっており、これは遅そうだと思いました。
 Timer1は16ビットのタイマーで、もともとTimer1の周波数を変更してVVVF音の音階を変えようと思っていたのですが、いろいろと試行錯誤をやっているうちに、パルス周期は一定で波形周期だけ変える形に変更したため、Timer1の高機能は現在いらなくなっています。32kHzだけ出ればいいんです。
 ということで、Timer1を取っ払ってしまうことにしました。
具体的には、
void VVVF_Setup()
{
//PWM出力ピン D9を出力にセット
pinMode(VVVF_SOUND_PIN, OUTPUT);
//Timer1使用
Timer1.initialize();
//初期設定
Timer1.pwm(VVVF_SOUND_PIN,0,0);
Timer1.attachInterrupt(vvvf_int1,current_period1);//interruptの設定
}
部分を、analogWriteでも使用している8ビットタイマーにしてしまっています。
以下になります。

void VVVF_Setup()
{
//PWM出力ピン D9を出力にセット
pinMode(VVVF_SOUND_PIN, OUTPUT);

//31KHzに設定(初期設定でPhaseCorrectPWMモードになっていると思う)
//D9,D10 キャリア周期:31kHz(分周無し)
TCCR1B &= B11111000;
TCCR1B |= B00000001;

//出力の設定
if(VVVF_SOUND_PIN == 9)
{
TCCR1A |= _BV(COM1A1);
}
else //10
{
TCCR1A |= _BV(COM1B1);
}

//interrupt設定
TIMSK1 = _BV(TOIE1);
}

で、割り込みはAVRでよく見る形に変えています。
関数名をポインタで指定するやり方がよくわからなくって・・・。
ISR(TIMER1_OVF_vect)
{
・・・
unsigned int a = ((pgm_read_byte_near(&WAV_DATA1 [pwm_state1 >> SHIFT_PWM]) * 3 + pgm_read_byte_near(&WAV_DATA3 [pwm_state3 >> SHIFT_PWM])));

if (VVVF_SOUND_PIN == 9)
{
OCR1A=a>>(pwm_shift + 2);
}
else//(VVVF_SOUND_PIN == 10)
{
OCR1B=a>>(pwm_shift + 2);
}
・・・
}

で、これでめでたく、割り込み時間が短くなりました。
EL102dスケッチ(こちら)になります。
走行時
EL102d走行時(Timer1やめ).png

停止時
EL102d停止時(Timer1やめ).png

走行時は周期が31usぐらいで、割り込み時間は10.4us、0.8usを繰り返します。
停止時は周期が31usぐらいで、割り込み時間は1,3us、0.8usを繰り返します。

 一応、世間的にいうと17.1us→10.4usなので「性能は1.5倍アップ!」です。
 でも、たぶん、割り込みのために、割り込み前、割り込み後に必要な退避とかがあるでしょうから、そんなにアップしてないんだろうなあとは思います。


Mp3V5用VVVF音アンプ負荷低減スケッチ [ds-DCCデコーダ]

 日曜日は所得を増加させる第一歩としてTOEICを受けに行ったのですが、なんと、腕時計を忘れて、教室には掛け時計もなく、仕方なく、時計なしでテストを受けたのですが、そんな心理状態だったので、なんか点数悪そうです・・・。
 で、なごでんの日記様から、走行音(VVVF音)部分から停止時も16KHzが出ているので、スピーカの負荷低減(というかアンプと5Vレギュレータが熱くなるのを低減という感じか)で、音を出さないときはパルスを出力するのをやめられませんか?と言われたので、やめるものを作りました。
 やっていることは、ノッチオフ時や停止時はボリュームというか波形を徐々に小さくして0にしてしまっているだけです。
 で、16KHzの音解析はMECY様からスマホで周波数解析できて、iAnalyzer Lite というソフトですとのことでしたがIPhone用でしたので、(私は持っていないので)適当なAndroid用ソフトで試しています。FFTWave Ver.1.3というアプリです。
re_DSC01689.jpg
 上段の赤い線が時間軸の波形で、下の緑色が現在のFFTでデータ数は2048でした。ピンク色が平均値で、ピーク値を黄色で周波数表示してくれます。(ちょっとアプリの設定をいじっています)

 まずEL102Bです。もともとの16KHzの搬送波が大きく出ているものです。停止時も走行時も16KHzが力強く?出ていることが分かります。(なお、私の耳は可聴周波数チェッカで確認したら残念ながら14KHzまでした聞こえませんでした。)


 次に、EL102cです。搬送波を32kHzにしています。16kHzはもちろん少なくなっています。(0ではない)


 で、最後に今回のEL102_0724です。停止時だけ音量を0にしますので、停止時だけ16kHzピークが消え、一応無音状態になります。


 スケッチ(EL102_0724)はこちらです。
 一つ注意点があって、CV50の走行音ボリュームですが、今まで0~8でしたが、今回から0~10にしています。今までの8相当のボリュームは10です。お気を付けください。

ゴードン用SLスケッチをブラックキューブスピーカーで鳴らす。(SL101) [ds-DCCデコーダ]

 さて、Yaasan様から蒸気音は低音がいっぱいだから音を高くしたほうが良いとアドバイスをもらいましたので、やってみることにしました。
 Audacityで音を高くしようとしたら、どのフィルタを使っても、Wavの時間が変わってしまうため、Bass,Treble調整でTreble(高音側)を大きくして、高い音を出すようにしてみました。
 今回のシステムはこんな感じです。
re_DSC01663.jpg
 CV値をたくさん書き替えないといけないのでDSBlueBoxを使用しております。で、そこからMp3デコーダ(SL101スケッチ)+ブラックキューブスピーカとつなぎ、別配線で線路ではゴードンがDSDecR3で動いております。
 動画は以下です。


 ちょっと、蒸気音のリアリティが下がりましたが、本物から加工した音です。大井川鉄道のトーマス(C11だかC12)ですが。
 で、CV値ですが、
走行音を目一杯、大きくするため、
走行音:CV50(0-8)→8
アンプ:CV59(0-30)→30(走行音が割れるようなら少しずつ小さくしていく)
Mp3音量:CV58(0-30)は音が割れるので、21
もちろんジョイント音はいらないのでCV48(0-3)→0
蒸気音の周期はKasoku配列を(現在)適当に再利用しているのでCV47(0-7)→0~4
です。
なお、モスキート音対策済みスケッチで若者(8歳?)に確認して、モスキート音は出ていません。
SLの蒸気音ですが、スケッチ中の
shu1_16k.h~shu4_16k.hでこれを変えると、そのまま蒸気音が変えられます。
back_***フォルダがその試行錯誤の跡です。
スケッチ(SL101)はこちらです。

ゴードン用のMp3デコーダSLスケッチ [ds-DCCデコーダ]

 ゴードンを買ったので、必死にMp3デコーダでSLスケッチを作るのをしておりました。
 で、とりあえず完成?しました。
 今回のシステムも、とりあえずBoseの外部スピーカーです。
re_DSC01662.jpg
 繋ぎはDSMainR5→Mp3デコーダ→Boseのスピーカーで、DCCは線路側に分岐させゴードンのスマイルデコーダR3につながっています。またFunctionを鳴らすためにS88 Analogをつないでいます。

 で、今回は、吊りかけ音の周波数を必死に鳴らしているTimer1をシュッシュッポッポの音にしています。どうやらスケッチには16kHz(8bit)で1秒までWavが入れられるようでしたので、0.24秒ずつちょっとずつ違う「シュッ!」という音を入れて、その鳴らし始め周期を変えることで蒸気音としています。(以前のスケッチのように再生周波数を変えるのはしておりません。やってみたら、なんか音が変だったので・・・。)それ以外の音はMp3側で鳴らすようにしています。
 で、動画です。




 今回わかったことは、
・このゴードン、人のスロットル操作に鈍感です。とても接触の悪いアナログNゲージみたいな動きをします・・・。
・シュッシュッポッポとピストンの動きを合わせるのがとても難しいです。
・ブラックキューブスピーカーで鳴らしたら、ゴードンのピストンのキュルキュルノイズ音のほうが大きくて、蒸気音が全然聞こえません・・・。なごでんの日記様の爆音デコーダに期待しています。
・スマイルコネクタを切るとゴードンのテンダーに入りそうですが、デバッグ中なので、コネクタ部分を切る気になりません・・・。

で、スケッチはこちらです。
・モーターが回るかは確認していません・・・。

前の10件 | - ds-DCCデコーダ ブログトップ