AIスタックチャンメモ(1)
世間から2年ぐらい遅れて「AIスタックチャン」がマイブームになっています。
M5Burnerで完成したものを書き込むのが早いのかもしれませんが、この種のマイコンボードをあまり知らない私としては、1から入門的に学びながら作っていきたいと考えました。
環境
M5Stackの開発は、ArduinoIDEを使うことが多いようですが、ビルドや書き込みの速度が遅いような気がしましたので、使い慣れたVS Codeを使うことにしました。
VS Codeに拡張機能の「PlatformIO」を入れることで、すべてをVS Codeだけで作成できるようになります(多分)
ライブラリが違う
C++のことも良く分かっていないので、ライブラリの設定とかもぜんぜんわからんのですが、どうやらM5Stackの標準機能ライブラリは「M5Core2」というものだったのが、少し前に「M5Unified」というものが推奨されるようになったそうです。
ネット上の情報には、古いライブラリで書かれているものがあり、それをそのままコピペではうまくいかないことが多いのです。
また、開発環境も「M5burnerで簡単にやる!」「ArduinoIDEを使う」「UIFlowでビジュアルプログラミング!」と様々です。
そしてそもそも、このジャンル自体がマイナーなので、それの日本語解説となると益々少なそうです。
こんな時に頼りにしたいChatGPTさんも、学習データが少ないためか、エラーばっかりのコードを出します。
困ったことを解決しながら、コードのメモを残す
というわけで、今回は、
・VS Code(PlatformIO)での開発環境
という条件で、スタックチャン(顔だけ)をAI化するところまでを目標にしていきたいと思います。
とりあえず今できているところまでのコード
とりあえず、今分かったことは、
・顔の表情や吹き出しは「M5stack-Avatar」というライブラリを使う
・日本語の表示は、set up()内で
”avatar.setSpeechFont(&fonts::lgfxJapanGothic_12);”
を書き込む。
ってところかな。
以下のコードはボタンを押すことで、表情を変えながら言葉を表示するスタックチャンのサンプル。まだ音声ではしゃべれません。
#include <M5Unified.h>
#include <Avatar.h>
using namespace m5avatar;
Avatar avatar;
void setup()
{
M5.begin();
M5.Lcd.fillScreen(TFT_BLACK);
avatar.init();
avatar.setSpeechFont(&fonts::lgfxJapanGothic_12);
}
void loop()
{
M5.update();
if (M5.BtnA.wasPressed())
{
avatar.setSpeechText("こんにちは");
avatar.setExpression(Expression::Happy);
avatar.setMouthOpenRatio(0.7);
delay(500);
avatar.setMouthOpenRatio(0);
}
if (M5.BtnB.wasPressed())
{
avatar.setSpeechText("こらー!");
avatar.setExpression(Expression::Angry);
avatar.setMouthOpenRatio(0.7);
delay(500);
avatar.setMouthOpenRatio(0);
}
if (M5.BtnC.wasPressed())
{
avatar.setSpeechText("エーン!");
avatar.setExpression(Expression::Sad);
avatar.setMouthOpenRatio(0.7);
delay(500);
avatar.setMouthOpenRatio(0);
}
}
次は音を鳴らせるようにしたいです。
この記事が気に入ったらサポートをしてみませんか?