M5 Atom Echoを購入しました。
Amazonやswitch-science等で購入できます。
M5 Stack Atomシリーズでマイクとスピーカーを併せ持つ珍しいデバイスです。
この大きさでスマートスピーカーが実現してしまうとは…!マイクやスピーカー使ってみたいなーと思って購入しました。(ちなみにM5 Stack Core2もマイクやスピーカーはあるので、こだわりがなければCore2などでも良さそうな気もします)
動作確認
音声認識はやっぱりIoT要素で注目すべきポイントなので、サンプルプログラムを拝借して動かしてみることにしました。
下のQiitaの記事通りに手順を進めていき、Arduino IDEで書き込みを行いました。
ボタンを長押しして英語で話しかけると聞き取った内容が返ってきます。私の英語力は中学生並なので、全然聞き取ってもらえません(泣)
Atom echoのテスト中…
— Ar-Ray (@Ray255Ar) 2021年4月25日
「Thank you」を認識した‼️ pic.twitter.com/jC1QUJG3yF
受信したStringをROS2ノードにできないかなーー?(できなかった)
私はROS2を使っていることもあり、デバイスをROS2に取り入れることはよくやっています。そのため、M5 Atom EchoもROS2ノードにしたい!と思いました。
雑にM5 Atom Echoに別スレッドでROS2Arduinoを動かすプログラムを使って、音声認識で取得した文字列を転送するようにプログラムを書き換えました。
しかし…
ターゲットボードに対するエラーが出てきてしまいました。
(途中まで省略)/xtensa-esp32-elf/bin/ld: atom_echo_example.ino.elf section `.dram0.bss' will not fit in region `dram0_0_seg' (途中まで省略)/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld: DRAM segment data does not fit. (途中まで省略)/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld: region `dram0_0_seg' overflowed by 18664 bytes collect2: error: ld returned 1 exit status exit status 1 ボードESP32 Pico Kitに対するコンパイル時にエラーが発生しました。
マジかよ…
ちなみに、音声認識部かROS2部のどちらかを宣言部は残したままコメントアウトするとエラーは出ず、普通に動きます。音声認識部もROS2も動的メモリを大量に使うということなのでしょうか??
ROS2以外の方法でStringを送信してそれをコンピュータに読ませるほうが良さそうな気がしました。
おわりに
M5 Atom Echoを購入して動作確認を行いました。IoTデバイスの中でもかなり小さく、完成度の高い製品だと思います。ROS2との組み合わせは難しそうですが、諦めずにいろいろな手法を使って転送したいと思います。