M5Stack Basic | AquesTalk picoでおしゃべりロボット

M5Stack Avatar + AquesTalk pico でおしゃべりロボットをつくります。

スポンサーリンク

音声合成IC、AquesTalk picoの紹介

AquesTalk picoとは、アクエストが作っている音声合成ICです。
https://www.a-quest.com/products/aquestalkpicolsi.html

実はAquesTalk ESP32というライブラリもあり、
評価版なら無償で使えます・・・!
(M5StackはESP32を内蔵しているのでこれが使えます。)
評価版はナ行・マ行の音韻がすべて「ヌ」になるという制限はあるものの、
無償で音声合成が使えるのはうれしい。

が!今回はLSIバージョンを使っていきます。
1000円くらいのICでちょっとお高めではありますが、
I2C/UART/SPIのどれでも制御ができて、とても簡単に使えます。

AquesTalk ESP32はそのうち書くかも(たぶん)

声の種類がいくつかあるのでお好みの声を選んでください。
公式HPにあるオンラインデモで事前に確認できます!

プロトモジュールに内蔵する

AquesTalk picoのデータシートを見ながら回路図を作成しました。
I2CのSCL, SDAをM5StackのGPIO22, 21に接続します。
トランジスタ2SC1815に接続している抵抗値は良い感じに調節します。
今回は3.3kΩにしておきました。

まずはブレッドボードを使って動作確認

ブレッドボードでの動作確認ができたら・・・
M5Stackにはプロトモジュールという専用のユニバーサル基板があります。
これにAquesTalk picoを内蔵していきます。


できあがったものがこちら。

aquestalk pico
スタックするために、部品の高さには注意です。

16MHzの発振子は3端子のセラミック発振子でもよかったんですが
高さが出てうまく収まらなかったのでモジュール化されているものを使いました。
2SC1815のトランジスタは足を曲げて入れています。
M5Stackの内蔵スピーカーはイマイチなので別でスピーカーを入れました。

見栄えはよくないが外から見えないのでヨシッ

裏側は・・・繋がればOKなので適当に線出しします。
ショートが怖いので絶縁テープをペタペタペタ・・・。

完成したらスタックします。

できたー!

ちなみに「AquesTalk」のラベルはテプラ LR30 で作成しました。

LR30はスマホで簡単にラベルが作れてめちゃくちゃ便利
電子工作で頻繁に使用しています

Arduino IDEでプログラムをつくる

#include <M5Stack.h>
#include <Wire.h>

void setup()
{
  M5.begin();
  Wire.begin();
  Wire.beginTransmission(0x2E);
  Wire.write("ka'kushuno/sa'-bisuwo, o'nse-de/annna'ishimasu\r");
  Wire.endTransmission();
}

コードはとっっっても簡単。今回はI2Cを使いました。
AquesTalk picoのI2Cアドレスは0x2Eです。
喋らせたい言葉をローマ字で送信するだけ

イントネーションを調節するためにアクセント記号を入れていきます。
詳細はAquesTalkのデータシートを参照してください。
公式HPにあるオンラインデモで発音を確認することもできます。

実行してみる

せっかくなのでm5stack_avatarもコードに追加してみました。

m5stack-avatarはこちらの記事で紹介しています

実行してみるとこんな感じ。
「アバター」+「おしゃべり」でほんとーーーにかわいくなる。

AquesTalk picoはお気に入りなので常にM5Stackにスタックしている

コメント

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