Make

Arduinoで、電子音ダヨーン(その1)

Make
スポンサーリンク

どうもご無沙汰です。Reveです。
久しぶりに電子工作ネタやります。
最近、なかなか電子工作をしておらず記事が書けなかったのですが、久しぶりに何かやりたくなって、
巷で流行りのおそ松さんから、「ダヨーン」の音声を再生する物を作りました。
音を扱う電子工作はほとんど経験なかったのですが、とりあえずマイコンだけでできる様な工作を探してやってみました。
【デモ動画】
とりあえず、こんなのを作りました(音量はとても小さいです汗)。

【WAV音源の再生】
Arduinoで音声ファイルを再生するにはどうしたらよいのかといろいろ調べてみたのですが、巷でよくいわれるmp3は専用のデコーダIC(VS1003とか)が必要なため、今回は見送ることにしました。
非圧縮のWAV形式ならマイコンで直接読み込んで再生できるという記事がいくつかあり、手持ちの部品だけでも作れそうだったので、今回はArduinoでWAVファイルを再生する手法を採りました。
【構想】
やりたいもの自体は単純明快で、下の2つだけです。
WAV音声ファイルの読み込み
スピーカーで音声の再生
処理の流れは下のようになります。
[SDカード] — (WAV音源の読み込み) –> [Arduino] — (スピーカー出力) –> [圧電スピーカー]
まず、WAV音声の読み込みですが、マイクロSDカードから読み込ませます。
幸い、ArduinoにはSPI通信でデータを読み書きするためのライブラリもあるため、読み込みの処理については割と楽に実装できます。SDカードの処理のために、Arduinoの特定のピン(11 ~ 13, および任意のピン1つ)が使えなくなるという制約はありますが、もともと入出力ピンをたくさん使うわけではないので問題はありません。
続いて音声の再生処理ですが、こちらはArduinoのデフォルト設定では速度などの問題で難しいので、マイコン自体のレジスタ(マイコンの機能設定などを司るメモリー領域)を直接いじくりました。
詳細については後ほど解説もしていきますが、一番下のリンク先もご参照いただければ。
とはいえ、ほとんどArduinoだけでやりたいのでスピーカー自体は本格的なものは使わず、(おもちゃのブザーとかで使われるような)圧電スピーカーを選択しています。
【準備(ハードウェア)】
部品は下の3つを使っています。
・Arduino Pro Mini (3.3V, 8MHz)
・圧電スピーカー
・マイクロSDカード用スロット

・その他(ブレッドボード、ジャンパーワイヤーなど)
それぞれの部品のつなげ方は下図の通りです。
dayoon_circuit_schematic.jpg
では、部品について見ていきましょう。
・Arduino Pro Mini
Arduinoにもいろいろな種類がありますが、3.3Vで動くタイプの小さなモジュールです。
SDカードにもそのままつなげますが、代わりに処理速度(動作クロック)はUNOなどと比べると遅く8MHzです。

ProMiniだけでは電子工作には使えないので、こちらのピンヘッダをはんだ付けする必要があります。
また、そのままではプログラムを書き込めないため、下のようなUSBシリアル変換モジュールも必要です。
 
・圧電スピーカー
スピーカーというよりはブザーというべきかもしれませんが、おもちゃなどでも使われるような圧電素子を使った簡易的なスピーカーです。下のスピーカーは3.3Vで動くモジュールになっているのでProMiniでも使えます。

・マイクロSDカード用スロット
マイクロSDカードとArduinoをつなぐためのモジュールで、ブレッドボードなどにさして使えます。
本当は同じモジュールを直接リンク先から購入できる用にしたかったのですが、残念ながら見当たらなかったので、こちらからご覧いただければと思います。
(マイクロSDカードスロットDIP化キット)
http://akizukidenshi.com/catalog/g/gK-05488/
ちなみに、これを使えば同じことができるので、通販ですぐに取り寄せたい方はどうぞ。

【次回】
プログラム処理まで書くと長くなりそうなので、次の記事で解説していきます。
ご覧いただけると幸いです。
【参考】
ArduinoでWAVファイルを再生する手法は、こちらを参考にしました。
(放課後マイコンクラブ様)
SDカードのWAVファイル再生する。 [Arduino]

コメント

タイトルとURLをコピーしました