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

キハ58,28,65(HO)の3両にサウンドを入れる。 [ds-DCCデコーダ]

 さて、R6nが届きましたので早速車両に入れました。
 キハ58,28,65の3両に音を入れるという、かなりバブリー?な構成です。
 スピーカーはaitendoの適当なものを使っています。
 搭載の仕方はこんな感じです。
re_DSC02262.jpg

キハ65
re_DSC02263.jpg

キハ28
re_DSC02264.jpg

ヘッドライト、テールライトは麦球なので、今回は引っこ抜いています。そのうちLED化を考えます。

で、動画です。電車の並びはキハ58、キロ28、キハ28、キハ65で、キロ28以外にSmileDecoder R6nのディーゼルスケッチ(DL109_8k_3)を入れているので、車両が通ると音が聞こえるのですが、3両から全く同じ音がするので、これはこれで少し変かも。ちょっとだけ音を変えるオプションとか考えるか?


コメント(2) 

キハ58(HO)にサウンドを入れる(その1) [ds-DCCデコーダ]

 さて、大体スマイルデコーダーR6nのDLスケッチが完成した気がするので、KatoのDE10(HO)に入れてみようと思い、DE10を分解してみました。
re_DSC02248.jpg

 分解して分かったことは、なんか、いろいろ加工しないと入らなさそうな気がするということでした。
 やる気をなくしたので、キハ58のほうがいいかなあと思って、今度はキハ58を分解しました。
re_DSC02249.jpg

 こっちはクモハ12などと同じような構造でしたので、こっちに入れることにしました。ただし、分解でボディーを外すのはかなり苦労しました。前方と後方の爪は外れたのですが、中央辺りが窓のクリアパーツで床板に固定されているようで、そこに気が付くのに時間がかかりました。
 次に、R6nの用意です。キープアライブじゃなくてトマランコンデンサを付けて、スピーカー(aitendoで買ったもの)もつけて、後はNEM652?用のコネクタとケーブルを適当に作ります。と言っても、線路からの信号とモーターへの信号の部分だけです。ヘッドライト、テールライトは多分配線されていないので、接続しません。
re_DSC02252.jpg

 キハ58を分解して分かったのですが、ヘッドライトと行先板のライトが今さらの豆球です・・・。おまけに行先板のライトは進行方向に関わらず点灯です。面倒くさそうなので、今回はDCC化を見送ります。
re_DSC02251.jpg

 一応、ヘッドライトテールライト基板への配線を通すために床板をなんとなく加工はしておきました。
re_DSC02254.jpg

 で、NEM652を付けて、線路とモーターの配線を直結して、まず、アナログで走ることの確認をします。
 re_DSC02255.jpg

 そして、DCC配線をします。と言っても、モーターだけですが。
re_DSC02258.jpg

 今回はスマホから操作できるDSairで操作することにします。(日本語の解説ページがない?)
re_DSC02259.jpg

re_DSC02261.jpg

k-waka様が作ってくださったDCC電子工作連合のシールも貼りました。

 で、次にデコーダの搭載です。HOなので、1000uFのコンデンサを積んで、Nゲージにどうにか入るスピーカーを付けても、簡単に入ります。(もちろん車内に基板やコンデンサやスピーカーが丸見えですので、気になる人はもう少し考えたほうが良いと思いますが)

 そして、今日の気動車の記念撮影です。
re_DSC02260.jpg

今日はすべて繋いでませんが、HOでキハ58、キロ28、キハ28、キハ65と買いました。もともと、キハ58とキハ65だけ買ったのですが、なんかNゲージのキハ58のほうがとても良い売れ行きとのことで、HOも売り切れたらいやだなあと思ったのと、なんかN(4両で 定価15,500円)に比べてどうもHO(4両で定価33,600円)は割安のような気がしたもので。いや、今計算したら、別に安いということは無いですね・・・。体積比だと安いけど。

 で、動画です。ライト類は点灯させていません。音だけ聞きながらR6nをデバッグしていたときはいまいちでしたが、「馬子にも衣装」てやつですかね。


 せっかくですので、DSairrでの操作も含めるとこれです。ソフトのバージョンが古いので時速300km/h出ています。操作は、F3でエンジンをかけて、F8が警笛です。以上です。プラレールも真っ青の簡単操作です。


 そして、R6nはサウンド付きデコーダーとしては破格(2800円、ただし音も少ない)なので、次は実車ではディーゼルエンジンが付いているキハ28とキハ65にもSmileDecoder R6nを入れるという、低コストならではの改造をしていこうと思います。
 そして今年のゴールデンウィークの目標は、キハ58、キハ28、キハ65にスマイルデコーダーを積み、ホビーセンターカトーのHOジオラマで走らせ、テンショードーよりも音量で超えることです。
(目標立てると大体やらないんですけどね・・・。)

コメント(3) 

R6n用DL109のF5,F6→F7,F8変更 [ds-DCCデコーダ]

 有志のスケッチの所にmp3v5_dl109_8k_3_1.zipを上げておきました。
 変更部分はファンクション番号の変更です。
スケッチで言うと、Loop()の
VVVF_Cont(gSpeedCmd_vvvf,(gFuncBits[3]) | (gFuncBits[4]<< 1) | (gFuncBits[5] << 2) | (gFuncBits[6] << 3)) ;

VVVF_Cont(gSpeedCmd_vvvf,(gFuncBits[3]) | (gFuncBits[4]<< 1) | (gFuncBits[7] << 2) | (gFuncBits[8] << 3)) ;
に変更しています。
 gFuncBits[7] ,gFuncBits[8] の7,8を任意の数に変えると、そのファンクションに割り当てられます。

コメント(0) 

Mp3V5というかR6n用のSLスケッチの更新(線形補間16KHz化) [ds-DCCデコーダ]

 SL103_8K_・・・ですが、KAKKA様からSL102でCV値の書き換えができないというお話があり、こちらでMp3V5で試して、書き換えは出来たのですが、そこから派生させているSL103_8Kで書き換えが出来たりできなかったり、(できなかったりが多い)というような状況ですので、調査しました。
 で、直りました。原因は割り込みと通常のどちらでも使う変数をvolatile宣言してやらないといけなかったのですが、していませんでした。で、現象は、その該当部分は普通に動くのだがCV値の書き込みができない、という不思議なバグ化していました。上記DesktopStation様のWiki内に対策したスケッチを上書きしてあります。直ってよかった。
 最新のSL、DLスケッチは元サンプリングデータ8KHzを線形補間してやり16kHz化した音による再生としています。音の違いは、気分的に音がちょっと柔らかくなります、という程度のものです。

 昨日からコメントに海外からスパムが入るようになりましたので、コメントを承認制に変更します。
コメント(6) 

Mp3V5のディーゼルスケッチをR6n、8kHz化して、起動音とホイッスルを加える [ds-DCCデコーダ]

 昨年、KatoのDE10のHOを買ったのですが、中を開けたらどうもMp3V5が入れられるような隙間が無いということが分かったので、R6n用のディーゼルスケッチを作りたいなあとなんとなく思っていました。
 MecyさんのスケッチDL109にはDL用の起動音や汽笛のMp3も入っていましたので、そこからR6n用を作ってみました。
 そして、実験環境は変わり映えの無い、以下。(このごろ、毎週この写真と変わらなくないか?)
re_DSC02245.jpg
 で、格闘すること2日!なんでそんなにかかるかというと、毎回場当たり的に作っているため・・・。あとはMECYさんもいじっているソースで、打合せもせずに仕様書無しで作っているので大変なことに。よくそんなんで作っているなあとも思いますが。ソースはこちら(DL109_8k_2)。(私のホームページの容量はパンクしたので、DesktopStation様のWikiにファイルの置き場所をお借りしています。)
 出来上がったのがこちら。


 今回のスケッチは、電源入れてもディーゼル音はしません。F3を押すと起動音に続き、アイドル音が鳴りはじめます。なお、エンジン停止音は作ってみませんので、ブツっと切れます。F3はエンジンの入/切、F4は回転数の高回転ロック、F5は起動音単独、F6はホイッスルです。
 昨年、電子工作連合の飲み会で、DCCはギミックかけられるから最初にエンジン掛けないとモーター動かないようにしてしまおうか?などと話していましたが、今回のはデフォルトで、エンジンがかかっておりません。(モーターは動くけど)

 SLでへのへのもへじ様からドラフト音と汽笛の大きさが・・・というご指摘を受けておりますが、こっちのスケッチも同じ問題があります。さて、どうしましょうか?(もともとの音源の音の大小を加工するか、それとも、再生時に音の大きさを変更するか。)来週に続きます・・・か。
 あとは、ホイッスルの音が最初変で直しました(252ごとに周期的なノイズが入る)。ということで、SL103のR6n用も同じ不具合を抱えていますが、あちらは変な音に気づかなかったからいいか。
コメント(13) 

Mp3V5というかR6n用のSL103のIMA ADPCM 8kHzバージョン [ds-DCCデコーダ]

 なごでんさんからSL103のスケッチが大きすぎてコンパイルできないというので、確認しようと思い、Arduinoのホームページから1.6.5のIDE環境を落としてきたのですが、解凍がうまくいかず(CRCが一致しない!)あきらめました。(私は1.8.3を使用しています。)ちょっとだけ、音を短くしたりもしてみたのですが、IMA ADPCMは256byteごとのブロックで分けられているため、少しだけ音を短くするではサイズが減らないです・・・。VVVF_sound.cppの474行目からの音の選択の所でcase 5のreturn ・・・をreturn 128;などとすれば、一つヘッダの参照が減るので、小さくなるかとは思います。
 そして、人によってIDEのVersionが違うからこうなるんだと思って、ArduinoのWebEditorを試してみました。スケッチのサイズはわたしのローカルとおなじように98%に収まるのですが、スケッチを書き込む段で、書き込み装置経由でやるやり方が分からなかったのでやめました。
 ということで、R6n専用と割りきっているし、音は悪くなるがもう少し長く音が入れられるように、IMA ADPCMの8kHzサンプリングのバージョンとつくってみました。スケッチはこちらです。「短い汽笛」、「中くらいの汽笛」に加え、「長い汽笛」と言っても2秒ぐらいのを入れました。
 少し前から、改造のしやすさを考えて、Audacityのプロジェクトをフォルダに入れていたのですが、スケッチをアップロードするSonetサーバーの無料分が一瞬にしてパンクしてしまいましたので、余計なものを入れるのをやめました。(SL103とSO103もAudacity分を消したやり方に入れ替えしました)



コメント(10) 

R6n用のSL汽笛付き [ds-DCCデコーダ]

 今日は雪で寒かったので、先週、いろいろな方から言われたMp3V5用というかR6n用のSLスケッチに汽笛を入れる件をやっていました。
 かなり苦労したのと、多分、また、割り込み的にぎりぎりだと思われるので、Nゲージでは京急のときのようなこと(集電でエラーが起きると、全体的に破たんする)があるかもです。
 やったことはSLスケッチの音部分を容量を無圧縮のWAVから半分ぐらいに圧縮できるIMA ADPCMに変更しています。16KHzのままですが、多分、今まで1秒分しか入らなかったものが、今回ので、2.1秒ぐらい入るようになりました。1秒分はSLのドラフト音4気筒分です。で、短い警笛が0.5秒、それよりも少し長い警笛が0.6秒といったところです。たぶん、8KHzにすると、もっと入るようにはなると思いますが、音も悪くなるので、やっていません。
 実験環境は写真の通り。
re_DSC02238.jpg

 DSBlueBoxで制御して、デコーダ開発ボードにアンプ386基板を付けて大きなスピーカーから音を出しています。
 使い方はF3が蒸気音のOnOff,F4,F5,F6が音のなるファンクションですが、F4,短い汽笛、F5少し長い汽笛を入れたら、もう容量がないです・・・。
 そして、スケッチはこちら。何となくなごでんさんの命名規則にのっとっていますが、もちろん非公認です。
 動画は以下です。何やっている動画かわかりづらいと思いますが、まあ、ドラフト音が鳴っているときに汽笛を鳴らすと、もちろんドラフト音は消えます・・・。が、重要なところでしょうか?


 あと、ホワイトノイズで蒸気音してみたらどうかという意見がありましたので、とりあえず、Audacityのジェネレーター→ホワイトノイズを使って、何となく作ってみました。ちょっと音が高いけど、SLにのせれば良さそうな音に聞こえそうですね。


 先週の運転会、情報交換会でへのへのもへじさんのNの蒸気が良い音を出していたので、私もAitendoから、エンクロージャ付きのスピーカーをいくつか買って見ました。
re_DSC02239.jpg

 まあ、今週はここら辺はいじらずに、DSAirを作っていく予定です。


コメント(6) 

アクセサリデコーダのアドレスの説明 [ds-DCCデコーダ]

 昨日は子供と久しぶりに横浜の原鉄道模型博物館に行きました。子どもは大宮の鉄道博物館に行きたいと言っていましたが、今、リニューアル中のようですので。
 10:20に行ったら、11:00からの動鉄実習に参加できました。以前は混んでてなかなかできなかった印象があるのですが、空いてきたんでしょうね。ドイツのえんじ色とクリーム色の機関車を子供が動かしました。運転台はブレーキの圧力計の赤いメーターも動く本格的なものでした。
re_IMG_20180310_110006.jpg

 その後、ジオラマがを見ていると、少し前にへのへのもへじさんの記事で見かけたSBBクロコダイルが走っていて、電機機関車でロッドがあって、ボンネットがあるという個性的な姿そのままでした。これは確かに一家に一台欲しいかもと思いました。が、価格、高いですね。
 re_IMG_20180310_112949.jpg

 で、本題です、N様から、昇圧ポイントデコーダのスケッチについて質問があり、調べました。
 質問は、アクセサリのアドレスの話で、スケッチ(ino)では、

// This function is called whenever a normal DCC Turnout Packet is received
void notifyDccAccState( uint16_t Addr, uint16_t BoardAddr, uint8_t OutputAddr, uint8_t State)

命令でアクセサリのアドレスが来たらOn,Offしているけど、
このイベントを起こすnmraDCCライブラリ側を見ると、
BoardAddress =(((~pDccMsg->Data[1]) & 0b0111 0000) << 2) | (pDccMsg->Data[0] & 0b0011 1111 )
OutputAddress = pDccMsg->Data[1] & 0b0000 0111
OutputIndex = OutputAddress >> 1
Addr = (BoardAddress - 1) * 4 + OutputIndex +1

なので、BoardAddressに3とかが来ると、Addrは9~12とかになって、アドレスが一致しない気がするというお話でした。
 私はnmraDCCライブラリお任せで、中身を見ていませんでしたので、調べてみました。
 nmraDCCの仕様書、9.2.1の9ページ目に説明があります。
抜粋すると、
---
Basic Accessory Decoder Packet Format
The format for packets intended for Accessory Digital Decoders is:

{preamble} 0 10AAAAAA 0 1AAACDDD 0 EEEEEEEE 1

Accessory Digital Decoders can be designed to control momentary or constant-on devices, the duration of time each output is active being controlled by configuration variables CVs #515 through 518. Bit 3 of the second byte "C" is used to activate or deactivate the addressed device. (Note if the duration the device is intended to be on is less than or equal the set duration, no deactivation is necessary.) Since most devices are paired, the convention is that bit "0" of the second byte is used to distinguish between which of a pair of outputs the accessory decoder is activating or deactivating. Bits 1 and 2 of byte two are used to indicate which of 4 pairs of outputs the packet is controlling. The most significant bits of the 9-bit address are bits 4-6 of the second data byte. By convention these bits (bits 4-6 of the second data byte) are in ones complement.
---
で、アドレス部分は1データ目のAAAAAAと2データ目のAAAです。ボードアドレスへの変換は
BoardAddress =(((~pDccMsg->Data[1]) & 0b0111 0000) << 2) | (pDccMsg->Data[0] & 0b0011 1111 )
です。9桁しかありませんので、2の9乗で512しか取れません。
 しかし、DCCのアクセサリは2044まであります。どうしているかというと、今度は2データ目のDDDのうち1,2ビット目の取りうる値0~3を使います。これがサブアドレスみたいな感じです。
Dの0ビット目はいわゆるポイントの直進、分岐を制御するビットになります。
 桂庵様のページに説明が載っております。ここではアドレスとは言わずにF1~F4と表現されているようです。
 ここら辺をそのまま書くと、

アドレス ボードアドレス Dの2,1ビット
1 1 0 0
2 1 0 1
3 1 1 0
4 1 1 1
5 2 0 0
6 2 0 1

という感じです。ボードアドレスが1~511ぐらいで、各々のアドレスに対して4つのサブアドレスを持っているイメージです。コマンドステーションからは1~2044を送っているように見せかけて、内部でボードアドレスとサブアドレス(のようなもの)に分けて送っています。
 1データ目、2データのまんまの値がどうなっているかというと、Nuckyさんの日本式信号機でのちょっと複雑なアドレス表がそのままです。いままでNuckyさんのこの信号表、なんでこんな面倒なことになっているのかと思っておりましたが、謎が解けました。
 この表のとおりにして、2データ目の最下位ビットを直進か分岐かの値に書き換えてやることで、多分アクセサリデコーダのDCC信号になります。




コメント(0) 

Mp3V5で順繰りアナウンス機能搭載? [ds-DCCデコーダ]

 さて、おしゃべりするNゲージ様の記事で、「★「ギガって凄い」ってこと ・・・あれ?みんな 気がついてない」と書いてありました。 そういえば忘れてました。
 でも、現在のSDカードだと何曲まで入れられるんでしょうかね?昔だと1フォルダ当たり256ファイルぐらいだったような気もしますが、Mp3V5デコーダのICだと、Mp3のファイルの作り方から類推すると4桁は入るんでしょうか?そして、今のDCCだとファンクションが29個しかないので、普通に考えて29種類程度の音しか入れられません。ということで、ワンマン電車とかバスにありがちな「ボタンを押すと案内アナウンスがでるアレ」を作ってみました。スケッチはこちらです。
 今回の実験環境は以下の通り、Mp3V5、スピーカー、D101です。コントローラがD101でなく、DSMainR5やDSBlueBoxでも良いですが、プッシュボタンの使い勝手的に、D101のほうが楽ちんです

re_DSC02229.jpg

 操作は
・F8のプッシュでアナウンスが順繰りに進んでいきます。
・F7はリセット機能です。1番目からの音(0051.mp3)に戻ります。
 音は、Mp3フォルダに0051~0099まで入れられるようにしました。動画の声は息子と一緒にYoutubeの江ノ電前面映像を眺めながらアナウンスを聞いて、息子が言いなおしています。よくわかりませんが著作権怖いですし。
 動画です。


(注意)
・E104から派生させていますので、ここ以外の部分はE104と同じです。
・F7,F8をアナウンスのために潰してしまっています。本当はCVで、On/Off出来るようにすべきかなあと思いつつ。まあ、この機能は現状突っ込みどころ満載ですので。
・集電不良対策でCV値にアナウンスの現在番号を書き込んでいますので、途中電源が途切れても、F8を押すと次のアナウンスが流れます。
・終点からの折り返し運転には対応していません。まあ、逆方向ってアナウンス違うし、どうしましょうかね?F6辺りに方向でも持たせて、順繰りアナウンスは2種類持たせるというのが現実的ですかね?
・(メモ)録音はTASCAMのDR-05を使用しています。音の編集はAudacityを使用しています。編集は、
Audacityで音を、駅ごとに分ける加工
1.トラック→ステレオからモノラルへ で、モノラルにする
2.エフェクト→正規化 で、音を大きくする。
3.前後の無音部分を消して、Mp3で保存する。
という作業をアナウンスごとにしております。

 いや、SmileDecoderR6n用にIMA ADPCM入れようとしてたのですが、どうも難しくって。
コメント(3) 

SmileDecoderR6n用の音(サウンドオプション) [ds-DCCデコーダ]

 12月になごでん様からR6n用にスマイルデコーダのサウンドオプション使えるようにしたいとの話がありました。で、やっととりあえず作りました。
 実験環境はこんな感じです。デコーダ開発ボードにアンプ基板386と秋月の大きなスピーカーをつないで実験です。なお、対策はしたのに、16kHzのピークが周波数解析で聞こえたので、ちょっとどうしようかという感じではあります。
re_DSC02196.jpg

 動画はこんな感じです。


 スケッチはこちらです。MP3V5_SO1でSOはSoundOptionの略です。
 音ファイルは、スマイルデコーダのサウンドオプションあたりを眺めて作ってください。
 音のスケッチへの統合は、VVVF_sound.cppの最初のあたりで、いまのところ4つ並べています。
#include "E233_Alert1.h"
#define WAV_DATA1 E233_alert1_data
#define  WAV_LENGTH1 E233_alert1_length

を自分のオリジナルに差し替えれば自分の好きな音を鳴らせます。
ただし、容量はかなり小さいのでお気を付けください。
あと、サンプリング周波数は8kHzにしています。
227行目の
if(flg == 0x03) //4回に1回だけ値を変更32kHZ→8kHz

if(flg == 0x01)
とすると、16kHz
if(flg == 0x07)
にすると4kHzとかに変えられます。

ファンクションの割り当ては現在F3~F6としていますが、
MP3V5_SO1.inoの522行目の
VVVF_Cont(gFuncBits[3] | (gFuncBits[4] << 1) | (gFuncBits[5] << 2) | (gFuncBits[6] << 3));
を変えてやれば、ほかのファンクションに割り当てできます。

以上です。




コメント(2) 
前の10件 | 次の10件 ds-DCCデコーダ ブログトップ