micro:bitによる音声出力
教育向けマイコンボードmicro:bitは手軽に利用できるものの、テキストをしゃべらせたり、録音音声を再生したりすることが標準機能では対応できず、何かに反応して声を出すといった仕掛けが手軽には作れなかった。
そこでAmazonで見つけた、DFPlayer miniという1個220円※のモジュールを使ってmicro:bitによる音声出力を検証してみた。
※DFPlayer miniの価格は執筆当時の価格です。
DFPlayer miniとは
DFRobot社による小型・安価なアンプ内蔵MP3 Playerモジュールで、電源とスピーカーを取り付ければ、マイコン制御可能なMP3 Playerが出来上がる。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F696263%2Fed881184-4c90-f282-0a4c-33134ce8dc31.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=161cdade61c05e37c8d3c6049370f277)
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F696263%2F89f36e4c-6650-3875-bc72-88ab4bcef147.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=4c494a44ffb8a93dcbae0b16b8daca75)
上記仕様はDfrobot社HPから引用
工作工程
【用意したもの】
- パソコン
- 拡張ボード(Keyestudioセンサーシールド)
- micro:bit本体
- DFPlayer mini
- micro SDカード
- 100均スピーカー
- USB micro Bケーブル
- ブレッドボード
- ジャンパーケーブル
- ワニ口クリップ
- カーボン抵抗 1kΩ
1. 回路を組む
DFPlayerの電源供給は3.2V~5.0Vなので拡張ボードから3.3Vを供給することにする。
マイコン側とのインタフェースにはRx/Txピンを用いて、UARTによるシリアル通信でコマンド制御を行うが、推奨回路図を見ると、Rxには1kΩの抵抗を介すとあるので、それに従う。
出来上がった回路はこちら。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F696263%2Fc267b1c2-eee4-a952-1c96-6604d03c376f.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=b080eec83bf9787ebaa58193afb20091)
2. コードを組む
1)ライブラリを取り込む
DFPlayer miniの専用ライブラリがあるので取り込む。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F696263%2F0297aed8-6a39-b523-23b5-72f7e15c8fb6.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=58c4565a475625ea1696b099b681e0dc)
このライブラリを用いると指定ファイルやすべてのファイルの再生、停止、ポーズ、ボリュームの調整、イコライザー調整(Normal、Pop、Rock、Jazz、Classic、Base)が可能。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F696263%2F4f400dcf-7ac6-c087-fed6-023e8d515057.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=df6b9920605ee46e836f0308614349b7)
2)ブロックによるコード
シンプルにmicro:bitのボタン操作に対応するコードを組んでみた。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F696263%2Fb93d4af6-f9fa-3220-9be4-0a4e6f5d67c2.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=c04a36351b1ddfcad12381a1e6b77e07)
3. 録音音声を用意する
マイクロSDカードに任意のフォルダ「voice_files」を用意して、シリアル番号を付してmp3ファイルを8個格納してみた。
完成
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F696263%2Fbf6e7729-d77d-26b6-2709-59e694917e02.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=e1462578d60adfdb7fe95706b5d7e351)
思ったより、簡単なコードでMP3を指定再生できたのが印象的。
センサに反応させて、特定のセリフを言わせたり、効果音を流したりなんてことも手軽にできそう。
micro:bitに標準実装されているミュージック機能では、楽譜から1音ずつコードに落としてゆかねばならなかったので、録音音声が使えるとなると格段にお手軽さが増す。
マイコン不要でも操作ができる
データシートを見ると、I/Oモード、AD keyモードが用意されていて、どうやらマイコン無しでも制御ができる製品になっている。
試しにIO_1とIO_2ピンにタクトスイッチを2つ取り付けてみると、見事にマイコン無しで動作した。
他にもAD Keyを使って抵抗値の違いによる識別で色々な操作も可能だそうで、これを使えば本格的なMP3 Playerが簡単に作れそう。時間があるときに試してみたい。
いかがでしたか?
今回は安価なDFPlayer miniを使ってmicro:bitで音声を出力してみました。