えいあーるれいの技術日記

ROS2やM5 Stack、Ubuntuについて書いています

M5 Atom Echoを購入。ちょっと動作確認

 M5 Atom Echoを購入しました。

f:id:Ray_ar:20210425154035j:plain

Amazonやswitch-science等で購入できます。

www.switch-science.com

 M5 Stack Atomシリーズでマイクとスピーカーを併せ持つ珍しいデバイスです。

 この大きさでスマートスピーカーが実現してしまうとは…!マイクやスピーカー使ってみたいなーと思って購入しました。(ちなみにM5 Stack Core2もマイクやスピーカーはあるので、こだわりがなければCore2などでも良さそうな気もします)

動作確認

 音声認識はやっぱりIoT要素で注目すべきポイントなので、サンプルプログラムを拝借して動かしてみることにしました。

下のQiitaの記事通りに手順を進めていき、Arduino IDEで書き込みを行いました。

qiita.com

 ボタンを長押しして英語で話しかけると聞き取った内容が返ってきます。私の英語力は中学生並なので、全然聞き取ってもらえません(泣)

受信したStringをROS2ノードにできないかなーー?(できなかった)

 私はROS2を使っていることもあり、デバイスをROS2に取り入れることはよくやっています。そのため、M5 Atom EchoもROS2ノードにしたい!と思いました。

 雑にM5 Atom Echoに別スレッドでROS2Arduinoを動かすプログラムを使って、音声認識で取得した文字列を転送するようにプログラムを書き換えました。

 しかし…

f:id:Ray_ar:20210425155428p:plain

 ターゲットボードに対するエラーが出てきてしまいました。

(途中まで省略)/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との組み合わせは難しそうですが、諦めずにいろいろな手法を使って転送したいと思います。