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

プラレール 今度はドクターイエロー(923形)をHO化した。 [ds-DCCデコーダ]

 ALFA-Xとか、E353系とかHO化していましたが、今度は、ドクターイエローの923形をHO化しました。
 複線で、ALFA-Xとすれ違い運転しましたので、こんなイメージです。
DSC03670.jpg

 で、6両編成なので、横から見るとこうです。
DSC03672.jpg

 、元のセットでは、こんな二軸車だったものが、
DSC03657.jpg

 台車とかスカートとか、適当につけることによって、こうなります。
DSC03669.jpg

 少し前のDCCの身内の集まりがあり、いくらぐらいで作れるの?という質問がありましたので、忘れないように書いておきます。
車両:923形 4000円ぐらい
パワートラック:コアレスパワートラック 26P 3850円
それ以外の台車:T-Evolution用 走行化パーツキットφ10.5プレート車輪 1320円から値上げ×6
床板:ガラエポのプリント基板で作っており、一車両分が150円程度×6
それ以外のパーツ:3Dプリンタで作っていて、材料費は数百円。
サウンドデコーダ:75019 SmileSound Next18【中~上級者用】 7800円
設計とか組み立てとか:2週間ぐらい・・・。
で、材料費は24,770円ぐらいで、プラレールのくせに安くはないです・・・。

 すれ違い運転するため、こういうレイアウトにしたのですが、床で組んでいて腰が痛くなりました。
DSC03671.jpg

 で、動画その1です。ドクターイエローにはOpenSoundのE4系の音を入れましたが、とても新幹線っぽい音で、気に入っています。


 で、上から見るとこんな感じです。


 いっぱいつなごうがまた出たら何か作ろうと思います。(次は九州新幹線か?)
コメント(0) 

SmileSoundで音の処理が重いので音の周波数を下げて軽くした。 [ds-DCCデコーダ]

 さて、SmileSoundデコーダですが、音の処理が重いから発熱が結構あるという話が続いており、For文を減らした次の策として、今度は音のサンプリング周波数を44KHzから32KHzに下げました。音悪くなんじゃないの?という話はありますが、ベンチマークにしているEsuのLokSound5も31.25KHzとのことで、問題なさそうです。
 で、今まで音の内部処理は44.1KHzでやっていましたが、32KHzに変更して、それに合わせて数か所プログラムを変更して、どの程度処理が減ったかを確認しました。
 結果は以下のグラフで、32k_12音が追加したものです。処理時間はほぼ変わっていません。
(データ数が一緒なので変わるわけないですね。考えると・・・。)
Sound処理時間_K1.png

 ただし、1周期の4096データ時、いままで1サイクル90.6msだったのですが、これが126msに変わりましたので、CPUの占有率は減っています。処理時間は同等なので、占有率としては、90.6ms/126ms=71.9%のため28%処理が減っています。
 あと・・・、ちょっと一個、ミスっていた場所があって、32kHzに直していて気づいたのですが、実験で使用していいた音源のサンプリングビットがunignedの8bitでした。(処理が軽い)。こんど、ちゃんとsigned 16bitで確認します・・・。
 以上です。


コメント(0) 

SmileSoundで音の処理が重いのでFor文減らして軽くした。 [ds-DCCデコーダ]

 さて、今月は、上旬に腰を痛めて会社休んだり、中旬に家族がコロナに罹って、そこから、家族感染が広がって(私にはうつらなかったが)、3連休は休日夜間診療所に行ったりして終わり、会社はリモートで空気読めずに苦労するし、で、今日から夏休みのはずなんだが、仕事の進みがグダグダで、休み期間中に数日、休出をしないといけないというかんじで、なんか、微妙な夏です。
 まあ、ここ数年は、振り返っても、去年は確かコロナが広がっているのに、広がっていないことにされてオリンピックはするが、外に出るなと言われていたような気がするし、一昨年は恐怖の致死率を誇るコロナ蔓延のせいで夏休みもほぼ家にいた気がするので、ここ数年、ぐだぐだが続いていて今年だけではないような気もします。
 で、本題です。DesktopStationさん中心に作っているデコーダーで(名前はSmileSoundで決まりなのか?)音部分を作っていました。
 音部分というのは、フラッシュから音データをとってきて、それをWAVの出力に向け、12音分足し算するという計算のため、For文(計算ループ)の嵐です。
 12音分の音のスピードの変換や音量の変換などもあり、現状の計算では、4096データ(44.1kHzで90.6[ms](・・・92.9msが正しそうだが、どっか間違えたか?))分の計算するのに、37.2[ms]かかっていて、約40%も音の波形計算に取っています。また音を出していないときも無音を12音分計算しているため、約4%消費します。(ただし、この値はコンパイルの最適化をしていない場合です)
 デコーダが結構熱くなるようですが、デコーダ面積も小さく模型の中に入れるため、放熱を考えると、処理を軽くしたいとのことで、無音の時は計算を省いてくださいとの指令がきましたので、作りました。
 結果としては以下のグラフのようになっています。
Sound処理時間.png
 ”現状12音”が今のサウンドエンジン部分で、横軸が同時発音数なので、無音状態(0)で21.6[ms]、8音同時再生で37.2[ms]です。
 そして、今回作った"for削減_12音”では、無音状態では0.8[ms]、8音同時再生で、30[ms]となっており、感動的に処理を減らしています。(いや、いままでどんだけ無駄な計算しているんだ?という話はありますが)
 つまり誇大広告的に言うと、アルゴリズムなどの革新的な工夫により、スタンバイ状態の電力消費は当社従来比96%改善となります。
 あと、まあ、音をいっぱい出すと、発熱は今までと変わりません。なぜなら、発音時のアルゴリズムは変わっていないからです。つまり、走行音出しながら、フランジ音と、ジョイント音と、コンプレッサー音を出しながら、警笛を鳴らしたりすると、そういう時は熱くなると思います。
 デコーダを床下に床下機器もどきで付けて床下機器をダイキャストでヒートシンク的に使えれば、いい感じに冷えると思いますが、そういうのは難しいですかね。
 でも、3Dプリント用の金属フィラメントなかったっけ?

 なお、まだ、その部分を作っただけで、デコーダのスケッチには組み込まれていないので、ちゃんと動くか確認できていません・・・。

コメント(0) 

RP2040で音の再生実験 その4 [ds-DCCデコーダ]

 さて、木曜日は大雪の予報だったので、会社に行くのはやめて在宅勤務していましたが、なんか、一日中ほぼ雨でした。今日の夜から月曜の朝にかけても大雪になるかも!と言っていますが、一度外れると次は全く信じないのが経験則中心に生きている私の心、です。
 で、RP2040を使ったDCCデコーダですが、ソースをオープンにしないということに決まりましたので、やったことだけ書きます。まあ、ネットの情報を組み合わせて作っていますし、そのうち音関連の部分だけ切り出して公開しましょうか?
 で、RP2040のDCC用の実験ボードはいただいたのですが、音の部分については追加をたくさんしなければいけない状態ですので、問題が起きた時にどのモジュールなのか切り分けが全くできなくなるため、音部分だけ動かすモジュールを作って、ブレッドボードでデバッグをしています。
 こんな感じです。RP2040 Nanoを一瞬使いましたが、ちょっとした実験には、Flash容量の少ないRaspPi Pico(+リセットスイッチ改造してるもの)の方が使い勝手が良いので、そっちでやっていきます。
DSC03574.jpg

 音の再生速度=再生周波数の倍率を変更できるようにしました。せっかくなので、RP2040のinterpolator機能を使っています。この頃Googleの翻訳機能が優秀でDataSheetなんかのPDFも翻訳できるので(ページ数が多いと断られるので、必要な部分だけ抜き出しますが)、とても、楽です。
 で、動画です。
「扉が閉まります」「ご注意ください」をリピートで聞き続けて、気が狂いそうです・・・。


コメント(0) 

MP3V6N18でDL直結段とへのへのもへじさんの京急をマージ [ds-DCCデコーダ]

 さて、本日で会社の一時帰休が終了です。明日から仕事だと思うと、おなかが痛いです。金曜日1日出社したら、土日はまた休みなのですが、二日しか休みがないのか!と、なにかすでに体が「新しい生活様式」に慣れてしまって社会復帰できません。と思ったら、「新しい生活様式」には、三密を避けるために会社を休め!とは一言も書いてありませんね・・・。
 あとは月曜の夜中に頼んだ秋月電子の通販が80%(発送作業)まで進みました。出荷まであとちょっとです。
 さて、なごでんさんから、パリピ電車なんてワケの分からないもの作っていないで(とは言われていないが)、へのへのもへじさんの京急とディーゼルをくっつけなさいという指令が来ましたので、やりました。パリピ電車からMp3V6N18を引き抜くのは断腸の思いでした。(冗談)
 ソースはこちらです。今回のソースにAUX3のパリピ点灯部分は付けておりません。
 
で、CV47(走行音切り替え)は
0 無音
1 DC(直結)
2 吊掛
3 京急2100(SIVインバータ?)
4 吊掛
5 京急VVVF改良
6 E231(墜落インバータ)
7 抵抗制御
8 東洋GTO VVVF
9 E231系(旧)

としています。
ディーゼル直結音のCV47=1は、
SoundNotchのCV49でいくつかパターンを切り替えられるようにしてあり、

0の時
停止:アイドル
加速:スピード比例
定速、減速:スピード比例

1の時
停止:アイドル
加速:スピード比例
定速、減速:無音

2の時
停止:アイドル
加速:スピード比例
定速、減速:アイドル

としています。
また、音のOn/Offは
FN3=0:On,1:Off
となっています。

 音を鳴らす割り込み内で、電車の走行音とディーゼル音のどちらを鳴らすかの分岐を入れていますので、前よりも処理が重くなっているとは思います。
 また、忘れると嫌なので、メモがわりに書いておきますが、ディーゼル音のWAVはヘッダ部分を今回は消しています。


コメント(1) 

MP3V6N18でパリピ列車完成。 その3  [ds-DCCデコーダ]

 ファイナルファンタジー7をやっていますが、懐かしいというよりも、すべて忘れています・・・。こんなのあったっけ?という感じです。面白いですけど。
 さて、パリピ列車完成です。
re_DSC03027.jpg

 MP3V6N18はMp3デコーダなので、Mp3で音が入れられます。以前、アナ雪の曲を入れている方がおられたと思いますが、私も今回はフリー素材のダンス音楽を入れておきました。大きすぎるのか音も割れており、雰囲気出ていますが、何か、パリピ列車というよりも、週末の大黒埠頭を思い出すようなガラの悪い列車の完成です。


 スケッチはこちら。室内灯はF2,F4で切り替えでしたが、F7,F8に移動しております。また、F10~F16にBGMを入れましたが、容量の関係で、省いています。適当にフリーサイトから落として入れてください。
コメント(5) 

MP3V6N18でパリピ室内灯をつくる。 その2 [ds-DCCデコーダ]

 なんか、自動車税のお知らせが来ましたが、アベノマスクと10万円は来ませんね。厚生労働省のページを見るとマスクは来週からうちの県でも配り始めるようですね。
 さて、パリピ電車の続きです(気動車ですが)。yaasanさんから、ExpBoard Next18 for General HOが届いたので、早速組み立てです。
re_DSC03011.jpg

 AUX3、AUX4に5Vを供給するため、LDOと1uFのキャパシタを用意します。
 LDOですが、たぶん78L05Fだと思うのですが、手はんだを考えていません。多分。難しいです。あとは、キャパシタがすぐ近くにあって、これも難しいです。
 LDOをNuckyさんのボードと比べると、こんな感じで、たぶんこちらのボードの方が数段やりにくいです。
re_DSC03012.jpg

 まあ、その話は置いておいて、LDO、キャパシタの順にはんだ付けします。
re_DSC03013.jpg

 次に、Trackの配線をしますが、結構、レイアウト的にシビアです。
re_DSC03014.jpg

 で、太陽の光に透かして見たら、まあ大丈夫そうでした。
re_DSC03015.jpg

 で、Exp Boardで、動作確認です。
re_DSC03017.jpg

 ちゃんと動いたので、鉄コレの猫屋線に入れるべく、配線を進めます。
 LEDはスイッチサイエンスのM5Stack用NeoPixel互換LEDテープ10cmを使ったのですが、もっと安いの無いかなあと物色していたら、なんか12Vで駆動するものがあるじゃないですか・・・。5VのLDO苦労したのに・・・。まあ気を取り直して、配線を進めます。トマランコンデンサは25V1000uFとしました。突入電流を小さくする抵抗とか付けていませんが・・・。
re_DSC03019.jpg

 で、鉄コレの動力に載せます。結構、臓物が多いです。リード線を長くしすぎたのもありますが。
re_DSC03020.jpg

 そして、とりあえず完成です。
re_DSC03021.jpg
 
 次に光だけでは面白くないので、Mp3であることを生かして、ダンス音楽をフリー素材のサイトから落とすことにしましょう。

 よくわかりませんが、音楽のクオリティーが高いような気がします。(続く)
 
コメント(0) 

MP3V6N18でパリピ室内灯をつくる。 [ds-DCCデコーダ]

 なんか素晴らしいことにヨドバシのSwitchの抽選に当たったので、今週末からはゲームし放題と思ったのですが、なんか、「ご注文後、通常よりお届けにお時間をいただく予定です。」って、いつ届くかわからんってことですね。
 さて、本日は、Mp3V6で電車の音を・・・と思った矢先に、別口で楽しもうと思っていた、M5Stack用NeoPixel互換LEDテープを見つけてしまいました。これって、AUX3に繋がるんじゃない?って思ったのが運の月です。
 早速、どう動かすか調べると、猫にコ・ン・バ・ン・ワさんの「NeoPixel(WS2812B)の制御」によると、なんかSPIチックな信号を送ればいいらしいです。で、AdafuitのライブラリはLGPLの用ですので、それを使わせてもらうことにします。
繋ぎはこんな感じ。
re_DSC02994.jpg

AUX3とGNDと5Vを繋いでおきます。
で、モードを考えます。
(1)普通の室内灯モード(F1:On,F2:Off,F4:Off)
(2)パーティー会場みたいなモード。ポポンデッタとかKato?とか売っていたし?(F1:On,F2:On,F4:On)
(3)速度インジゲータモード。最高速で赤くなって本気っぽくすればいいか?(F1:On,F2:On,F4:Off)
(4)レインボーモード。進行方向に虹が流れる。(F1:On,F2:Off,F4:On)

スケッチはこちら。ディーゼルスケッチに適当に追加しています。
で動画はこちら。


猫屋線にいれるか?


コメント(0) 

MP3V6N18でDL直結段つくる その2 [ds-DCCデコーダ]

 昨日、久しぶりにお座敷レイアウトを作っていたら、膝を痛めました。歳ですね。で、今日はヨドバシのSwitchの抽選を眺めてましたが、今日は抽選中から動きませんでした。
 さて、MP3V6N18で吊りかけ音、もう少しましにならないか試していたのですが、少し前に作ったDL直結の音を吊りかけ音に変えたところ、周期音を繰り返すとブチブチ聞こえることに気づきました。
 AudacityでSin波を作って、(ジェネレーター→トーンから作れる)確認したところ、美しくピーって音が鳴るところでブツ音が出るので、どうやら、周期音中で、音の最後から最初に飛ぶときにうまく飛べていなさそうということがわかりました。
 WAVファイルの変換で、IMA ADPCM対応するときに、WAVのヘッダーもつけるようにしたことが原因で、44個はヘッダなので、その分は飛ぶように変更しました。
 結局吊りかけ音はあんまりよいものはできなかったので、とりあえず、ディーゼル音だけ直しました。まあ、でも、ディーゼルだし、あまり違いが判らないんですが。スケッチはこちらです。ディーゼル音はかなり汚れた音なので、違いが自分でも判らないですが・・・。
 明日以降に吊りかけ音とそれ以外の電車の音について、WAVを長くなるようにしたので、それの効果を出せるか検討していこうかと思います。

コメント(0) 

MP3V6N18でDL直結段つくる [ds-DCCデコーダ]

 10万円もらえる!と喜んでいたのが先週ですが、その後、会社からゴールデンウィーク明けまで休みなさいと言われて、やったーと思ったのもつかの間、休みの形態が一時帰休!(給料が6割ぐらいに減る?)ということで、ヤバいです。10万円は今後の来るべきミレニアム大恐慌時代に備えて生活必需品の消費に回すことにします。
 このごろ、家の外を走っている江ノ電のお客さんがとても少なくて、(一列車に10人乗っていないこともよくある)、このままでは江ノ電が危ない!と思って、一瞬、江ノ電ショップから、お土産詰め合わせを買おうと思っていたのですが、自分の給料が減るのを目の当たりにして、江ノ電よりも先に私の財政が危ないということで、思いとどまりました。といいつつ、みなさんのツイッターを見ながらどうにかHO用のローラー運転台(3個だけ)は買いました。個数制限で3個だけなので、なんかボギー台車一両のうち、3軸しか置けないとかいう寂しいことになりますが・・・。
 さて、本題です。なごでんさんからの指令で、MP3V6N18のDL(ディーゼル ロコ)スケッチに直結モード入れて、速度比例っぽくしてください。というのがあったので、(本当はほかにもBEMFで速度測定したスピードに合わせて欲しい、というのもあった気がしますが)試行錯誤したらできました。
 もともとのディーゼルスケッチは、IMA ADPCM(PCMを少し圧縮した形式)でディーゼル音のWAVをアイドリング、低速、中速、高速ぐらい用意して、スロットルの加速に合わせて、これを切り替えていました。
 今回の構成は、写真で、左奥の珈琲缶がスピーカー、左手前が私のDCC Cheap Controller、右がなごでんさんのNEXT18 Decoder Tester、その上にMp3V6N18の付けて、今回のDLスケッチを載せて、手前にダミーモータを置いています。
re_DSC02961.jpg

 スケッチはこちら。(ELスケッチから派生させています)
 スケッチの説明ですが、アイドリング音はD205_16000_WAV3_unsigned_8bit.hを使っており、16kHzで普通の圧縮していない0~255の8bit WAV、6kbyte(0.4秒)ぐらいのファイルです。で、これを、kasoku.hの0番のデータで音を出していますが、以前に比べ各値の意味を変更しており、1000にすると、WAVを100%のスピード、音の高さで奏でます。音を高くすると、WAVの周期も短くなります。
 実際の設定は以下ですが、この設定は私の記憶の中の気動車&妄想から適当につくっています。
変速段は速度に比例する形にしていますので、これまでのように加速度に合わせて、エンジンはうなりません。
・スロットル0%のアイドリング時は90%の高さの音を鳴らして、
・スロットル10%までに徐々に135%の高さの音にしていきます。(変速段0→1?)
・スロットル10~20%までは、135%の高さの音を出します。(変速段1?)
・スロットル20~30%までは、145%の高さの音を出します。(変速段2?)
・スロットル30~35%までは、145%→115%に音を低くしていきます。(変速段→直結段)
・スロットル35%~100%までは、115%→210%に音を徐々に高くしていきます。(直結段)

動画です。(結局BEMF比例を作っていない・・・。)アイドリング時の音を小さくしようかなとか思ったりもしてましたが、やってません。

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

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。