M5AtomEchoを安全につかう方法
2020/6/5にM5Atomのマイクとスピーカーを搭載したバージョンであるM5AtomEchoが発売されました。スイッチサイエンスや海外からの輸入で購入できます。
M5Stack社の初期ロットは何かあると、別の意味で期待されてもいましたが、、、スピーカーが弱いという致命的な弱点が発見されてしまったので、使用するには注意が必要です。発売されて二週間で調べた注意事項をまとめておきます。
もくじ(Index)M5Stack関連の目次へ戻る
この記事の注意事項
2020/6/21時点の調べた範囲で、スピーカーが熱くなりすぎないような対策をまとめています。意図せずスピーカーが熱くなる可能性もあります。その場合は本ブログでは一切の責任を取れませんのであらかじめご了承ください。
私が使った感じだと、M5AtomEchoの安全性を御自身で確認するまでは「1分以上の長い音楽や音声の再生・繰り返しのアナウンスや大きな音を出す用途には使わない方がいい」と思います。
M5AtomEcho
M5Atomシリーズの3種類目です。スピーカーとマイクを搭載しており、音声認識や音声合成などスマートスピーカー開発キットとして販売されました。M5StickVやUnitVと組み合わせて、マイクと通信機能を追加することも可能で、単体でも、音声の再生や録音など可能性を秘めていると思います。
M5Atomシリーズ
Atomシリーズ共通の仕様
- NeoPixelLEDを装備(数はバリエーションがあります。)
- ボタン
- リセットボタン
- GPIO(使えるピンはそれぞれ異なります。)
M5Atom Matrix
6軸MPUとNeoPixelLEDを5×5=25個持っているタイプです。6軸MPUを持つためI2C用のピンがGPIO21,25で使用されています。
M5Atom Lite
一番シンプルなタイプです。NeoPixelLEDが1つでGPIOはシリーズ中一番多く使用できます。
M5Atom Echo
マイクとスピーカーを備えるタイプです。マイクとスピーカーでGPIOを使用しているため使用できるGPIOは少ないです。
スピーカーの音量と熱の注意
下記の3事項は注意が必要です。
- 音量を大きくしすぎない。
- 低音が激しい音楽等はなるべく避ける。
- 連続して長時間音声・音楽データを流さない。
小さい筐体ですので、スピーカーも極小なので許容電力が0.7Wです。大きな音量を出す、あるいは低音を出しすぎると0.7Wを超えてしまい、スピーカーが破損して音が割れるようになります。私も1台破損してしまいました。一度破損すると元に戻ることはありません。
また、あとで詳しく説明しますが連続して音声・音楽(ホワイトノイズも含む)を出すとスピーカーが熱を持ち筐体が溶ける・変色するといったこともあるようなので使う時は十分注意しましょう。
M5Stackの公式アカウントからも注意喚起されています。
ArduinoIDEで利用するときの注意
I2Sが内蔵DACの設定のまま音を出さない。
スピーカーを利用するときはI2Sという仕組みを利用するのですが、I2Sで使用するピンは下記のようになります。
- GPIO22 DATA_OUT(スピーカー用)
- GPIO19 BCLK
- GPIO33 LRCK
- GPIO23 DATA_IN(マイク用)
こちらの設定なのですが、Arduinoライブラリやスケッチで多く利用されている内蔵DACを使う設定(DIN:GPIO22,LRCK:GPIO25,BCLK:GPIO26)で使用すると、いきなり音量が最大で再生されてしまいます。自分で作成するスケッチで明示的にピンを設定しないとスピーカーを破損してしまうのでこの点は十分注意する必要があります。
サンプルプログラムに要注意
M5StackのサンプルにStreamHTTPClient_ECHO.inoというのがあるのですが、これは2020/6/21現在実行しない方がいいです。readme.mdの通りにインストールしてビルドすると内蔵DACから出力される設定のため、大音量のホワイトノイズが流れてスピーカーが壊れて筐体が溶けます。
ESP8266Audioのライブラリをインストール後、srcというフォルダをライブラリのsrcフォルダに上書きする必要があります。(ライブラリのソースに直接M5AtomEchoのピン番号が直にコーディングされています。)
ライブラリに関しての詳細は下記の@odetarouさんのQiitaの「mp3再生に使うESP8266Audioライブラリについて」で紹介されています。
AquesTalk
M5Stackでよく使われるAquesTalkも内蔵DACを使用しているため、AquesTalkTTS.cppを修正して使用するI2Sのピン設定し初期化する必要があります。修正点はこちらのGitHubのcommitを見てください。(AquesTalkを使うためには別途AquesTalkのインストールが必要です。)
ESP-IDFでの使用
多分、ESP-IDFで使用する方は上級者だと思うので大丈夫とは思いますが、念のため。。。
ESP-IDF4.0以上は使わない方が良さそう。(2020/6/21現在)
M5AtomEchoは工場出荷時にESP-IDFに含まれるa2dp-sinkというサンプルをLED表示機能を追加したカスタマイズを行ったファームウェアが書き込まれています。ESP-IDF Ver.3.X.Xでビルドした場合は音量も制御でき正常に再生されます。(これでも最大音量にするとスピーカーが壊れる可能性があるので音量は抑えめにしましょう。)
ESP-IDF Ver.4.X.Xでa2dp-sinkをビルドしてしまうと音量が調節できず、最大音量で再生されてしまうためスピーカーが壊れる可能性があります。時間ができたら調べようと思いますが、ESP-IDF初心者なので調べるにはかなり時間がかかりそうです。
おわりに
いきなり危なそうなことを書きましたが、設定さえ間違えず、音量を控えめにして、長時間スピーカーを鳴らさなければ、M5StackやM5StickC+SpeakerHATと比べてノイズのない綺麗な音が鳴りますので様々な場面で活用できるガジェットだと思います。
今回調査している中で、スピーカーで再生するだけでも熱が発生し、定格以上で再生を続けた場合はプラスチックを変色・変形させる可能性もあることを初めて知りました。電子工作は危険も伴うので今後自分自身も十分注意していこうと思います。
M5AtomEchoはM5StickVのマイクが使えないと分かってから楽しみにしていたのでこれから有効に活用していきたいです。