まずは動作の様子を動画に。 前回MICROTALKの周りは完成したので、今回は色々と追加している。 追加したハードウェアは VS1033D breakout MP3/MidiコーデックIC
LM35 温度センサ
制御線いろいろ(リセット、スリープ、アンプのシャットダウン)
<コーデックIC>
シールドの裏に配置。 UNOだと干渉するかも
VS10 33D は千石の値引き品で、VS1053Dがある今となっては一世代前の石。 Midiを再生する分には同じ。 MP3の再生は結構配線が増えるので、昔の外部Midi音源と同じ扱いが出来るリアルタイムMidiモードを使う。 配線はMidiデータ入力のシリアル1本と、電源、音声出力、リセット端子のみ。リセットはArduinoの適当なデジタルI/Oに。あとは GPIOで動作モードをリアルタイムMIDIにセットするだけ。 はじめは全く再生しないので悩んでいたのだが、初期化時にリセット信号をかけるようにしたらあっさり動いた。 Midi再生に関しては、 SparkfunのMusic Instulmentシールドが参考になった。 http://www.sparkfun.com/products/10587 <オーディオミキサ (PSoCでアナログ加算)> アンプも載ってるからついでにMidiもつけよう、という魂胆で実装したものの、信号ソースが2つあり、アンプは1つなので、信号をミキシングしないといけない。 OPアンプで加算するといいらしい。そういえばLPFにPSoCを使っていたと言うことで、加算もできそうだ。 VS1033Dの入力を受けるPGAをもう一つ追加して、元のMICROTALKの入力PGAにRef電圧参照先として接続た。接続元PGAのゲインを1以下にすると加算が可能らしい。SCBのパラメータはまだ手強いので、こちらを試してみた。 実際書き込んだ所ちゃんと加算しているらしく、2つの出力が衝突せずにアンプで増幅されるようになった。 Midi側もLPFでカットされてしまうのと、音が単純にそれぞれ1/2になるので、Midi側の音が若干劣化している。これ以外の手法はブロックと出力ピンが足りないので無理そう。 こうしてちょっとした事ならソフトウ...
kent`s prototyping memorandum