SSブログ

音楽を演奏したい - サウンドシールド編 [Arduino]

soundshield1.jpg
こんなものを作ってみました。
ステレオミニプラグを挿したら、ライン出力で、そうでないときはモノラルスピーカー出力します。
 D9 (OC1A)がステレオの左 (L)
 D10 (OC1B)がステレオの右 (R)
他にピンは、
 A0, A1, A2を操作ボタン。
   タクトスイッチとつなぎ、(普段はスケッチでPull-upしておき)押したらGND(LOW)。
 RESETボタンも。
になっています。

ステレオをモノラルにする回路というのは適当に調べた範囲では、あまりはっきり決まったものはないようですが、とりあえず両方のチャンネルとも抵抗を挟んで合成すればいいみたい。しかしその値はまちまち。なんとなく1kΩにしてみた。
アンプとか、アナログ回路は全くわからないので、以前にAliExpressで10個でいくらみたいに売っていたPAM8403を使用したモジュールを使いました。共立エレショップでも同じものが売っていました。

3W+3WステレオD級オーディオアンプモジュール / MOD602-PAM8403-15SP
https://eleshop.jp/shop/g/gF81125/

これを裏面に実装しました。
一応、Duemilanove、Uno R1(DIP版)、Leonardoで干渉しない位置になっているはず。
soundshield2.jpg

・作成の経緯
作品の音をアップロードしたいわけですが、スマホで録音すると音のレベルが低くかったり、ノイズがのったり。
直接、ライン入力したいわけです。
あと、パソコンに入力するとなると、パソコンが壊れるようなことも避けたいのです。
あらためて、接続法の検討です。

音声合成LSI 「AquesTalk pico LSI」といのがありまして、、

音声合成LSI AquesTalk pico LSI データシート - ATP3012XX
https://www.a-quest.com/archive/manual/atp3012_datasheet.pdf

ATP3011XXではないほうです。
これが、ATmega328pを使用していて、そのDIP版の15番ピン(PB1 (OC1A/PCINT1))を出力(AOUT ; 音声出力端子(0-VCC[V] PWM出力))にしています。
さらに16MHzでの動作時は、PWM搬送波が30KHzとありますが、16MHz / 9bit高速PWM(=512Clock) = 31,250KHzということで、一致と考えていいのでしょうか?
だとすると、6ページの「5. 基本回路」の左の図か、Max 15ページの「13. 付録」の「13.1. アナログ・オーディオ回路(参考回路)」のところが参考になりそうです。
ただ、どっちがいいのかわからない。
さらに、

音声合成LSI用のオーディオアンプ(再考)
http://blog-yama.a-quest.com/?eid=970162

というのもあり、一番下の右に ATP3012用の回路図がありましたが、ますますわかりません。
よくわからないものの、、
aout1.png
これでいきました。(16MHzだけど省略なしにしてみた。)

ちなみに、この前つくったスピーカーのケースに組み込みのPro micro版は、
aout2.png
です。

nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー