Arduinoで音を鳴らそうとしたら失敗した | 2021.12.27 02:06 |
先日、とある試験を数年ぶりにオンラインで受験したところ、壊滅的で悲惨な結果
でした。まぁある程度は想定したのですが。
この週末は電子工作をやっていました。
部屋を片付けていたところ、2020年春ごろに電子工作で使ってみようと衝動買いした
モノを偶然見つけたことが発端です。
せっかく見つけたので、この度触ってみることにしました。
XOPSとは全く関係ないですし、改めて他所で別名義で出すかもしれないので多くは
語りませんが、
最大の肝は、スイッチ入力により音を再生するのが味噌になる回路です。
(味噌も何も、ほぼそれが全てなのですが。。)
音は、圧電スピーカーではなく、ちゃんとしたスピーカーを使います。
どうやってスイッチ入力に応じて音を出すか。
(今となっては)やり方は無数にありますが、手っ取り早くArduinoを使うことに
しました。
PCやスマホにスイッチを繋げて、PC・スマホから音を出す構成にした方が、圧倒的
に楽なのは分かっていますが、できれば装置単体で動かしたいなと。
わざわざFPGAを引っ張り出すまでもないレベルで、この程度ならマイコンで十分です。
PSoCでも良かったのですが、Arduinoの方が情報が多くて作りやすそうなので。
Raspberry Piでは、ちょっとオーバースペックなんです。
色々調べた結果、音のデータはFAT形式でフォーマットしたSDカードに入れて、
レベルシフターを使ってSDカードとArduinoを接続し、
Arduino上ではTMRpcmを使うのが良さそうだということが分かりました。
スピーカーとはArduino直結で行けるか、オペアンプを挟まないとダメかどうか・・
っといった具合です。
これで行けると思っていました。行けるはずでした。
やってみたら全然だめでした(;;
まず、SDカードの初期化に高確率でコケます。これが最も謎で良く分かりません。
一番疑わしいのは回路の接触不良です。ブレッドボード上に組み上げたのですが、
全体的に電気的な接触が怪しく、SDカードの挙動に影響が出ているようです。
あと、思った以上に音質が悪い。これはブレッドボードの問題というより、
Arduinoとして動いているAVRマイコンのHWか、Arduinoのプログラムの問題か、
または元の電源が良くないのか・・・、これもよく分かりません。
スピーカー自体も小さくてパワーの弱い安物なのですが、10年前に別件で使った
時は、もう少しマシな音質だったと思うのですが・・・。
おい、ぜんぜんサクっとできないじゃねーか。思っていたのと違うぞ(汗
いや、しっかりと腰を据えてガッツリとやればいくらでも手を掛けられる話で、
例えばFPGAでゴリゴリ作り始めたら あっという間に何週間も掛けられる世界
ですが、
あくまで片手間で手を出しただけであり、そこまで本気でやる気は全くありません
でした。
なので、ネット上の情報をかき集め、Arduinoでサクッと作ってみて終わらせる
気でおり、丸一日程度である程度プロトタイプまで作り上げるつもりでした。
ところが、いざやってみると苦戦を強いられ全然だめでした。
まぁ(ほぼ確実に)できると分かっていることを作業的にこなしているわけでは
なく、
Arduinoという言うほど使いこなせていないものを持ち込んで挑戦しているので、
うまくいかないのは当然なんですけどね。
当然なんですが、こうもうまく行かないとなぁ・・・。
あまりガチになって攻めるつもりはなかったので、(この記事の一件は)一旦
終わりにするつもりです。
どうも当初の予想に反して片手間で適当にやって できるものではないと分かった
ので、今度いつか時間を作ってじっくりやってみるつもりです。
優先度は低いですし、いつになるか分かりませんけど。
それにしても、単に『スイッチの入力に合わせて音を出す』ってだけでも、
自身の中でも色々選択肢があるのは、適材適所で使える手札が多いってことで
良いことですよね。
でした。まぁある程度は想定したのですが。
この週末は電子工作をやっていました。
部屋を片付けていたところ、2020年春ごろに電子工作で使ってみようと衝動買いした
モノを偶然見つけたことが発端です。
せっかく見つけたので、この度触ってみることにしました。
XOPSとは全く関係ないですし、改めて他所で別名義で出すかもしれないので多くは
語りませんが、
最大の肝は、スイッチ入力により音を再生するのが味噌になる回路です。
(味噌も何も、ほぼそれが全てなのですが。。)
音は、圧電スピーカーではなく、ちゃんとしたスピーカーを使います。
どうやってスイッチ入力に応じて音を出すか。
(今となっては)やり方は無数にありますが、手っ取り早くArduinoを使うことに
しました。
PCやスマホにスイッチを繋げて、PC・スマホから音を出す構成にした方が、圧倒的
に楽なのは分かっていますが、できれば装置単体で動かしたいなと。
わざわざFPGAを引っ張り出すまでもないレベルで、この程度ならマイコンで十分です。
PSoCでも良かったのですが、Arduinoの方が情報が多くて作りやすそうなので。
Raspberry Piでは、ちょっとオーバースペックなんです。
色々調べた結果、音のデータはFAT形式でフォーマットしたSDカードに入れて、
レベルシフターを使ってSDカードとArduinoを接続し、
Arduino上ではTMRpcmを使うのが良さそうだということが分かりました。
スピーカーとはArduino直結で行けるか、オペアンプを挟まないとダメかどうか・・
っといった具合です。
これで行けると思っていました。行けるはずでした。
やってみたら全然だめでした(;;
まず、SDカードの初期化に高確率でコケます。これが最も謎で良く分かりません。
一番疑わしいのは回路の接触不良です。ブレッドボード上に組み上げたのですが、
全体的に電気的な接触が怪しく、SDカードの挙動に影響が出ているようです。
あと、思った以上に音質が悪い。これはブレッドボードの問題というより、
Arduinoとして動いているAVRマイコンのHWか、Arduinoのプログラムの問題か、
または元の電源が良くないのか・・・、これもよく分かりません。
スピーカー自体も小さくてパワーの弱い安物なのですが、10年前に別件で使った
時は、もう少しマシな音質だったと思うのですが・・・。
おい、ぜんぜんサクっとできないじゃねーか。思っていたのと違うぞ(汗
いや、しっかりと腰を据えてガッツリとやればいくらでも手を掛けられる話で、
例えばFPGAでゴリゴリ作り始めたら あっという間に何週間も掛けられる世界
ですが、
あくまで片手間で手を出しただけであり、そこまで本気でやる気は全くありません
でした。
なので、ネット上の情報をかき集め、Arduinoでサクッと作ってみて終わらせる
気でおり、丸一日程度である程度プロトタイプまで作り上げるつもりでした。
ところが、いざやってみると苦戦を強いられ全然だめでした。
まぁ(ほぼ確実に)できると分かっていることを作業的にこなしているわけでは
なく、
Arduinoという言うほど使いこなせていないものを持ち込んで挑戦しているので、
うまくいかないのは当然なんですけどね。
当然なんですが、こうもうまく行かないとなぁ・・・。
あまりガチになって攻めるつもりはなかったので、(この記事の一件は)一旦
終わりにするつもりです。
どうも当初の予想に反して片手間で適当にやって できるものではないと分かった
ので、今度いつか時間を作ってじっくりやってみるつもりです。
優先度は低いですし、いつになるか分かりませんけど。
それにしても、単に『スイッチの入力に合わせて音を出す』ってだけでも、
自身の中でも色々選択肢があるのは、適材適所で使える手札が多いってことで
良いことですよね。
category : 電子工作 | comment [0] |