スタックチャンはこのような小さなロボットです。(再生すると音が出ます。)
M5Stack と ChatGPT を繋いで会話ができます。スタックチャンはオープンソースで開発されていますので「スタックチャン」と検索すると実際に作るための情報は豊富に得られます。
必要な材料
(1)M5Stack
本体として使う M5Stack が必要です。M5Stack には色々な製品があって迷いますが、M5Stack Core2 for AWS – ESP32 IoT開発キット(以下、Core2 for AWS) が推奨モデルです。M5Stack Core2 IoT開発キット(以下、Core2)を使っている人も多いようですが、Core2 for AWS に比べると内蔵電池の容量や拡張性の点でやや劣ります。Core2 にオプションの M5GO BOTTOM2 を追加するとほぼ Core2 for AWS 相当のスペックになりますが、異なる部分も少し残ります。今後、より新しいモデルが主流になるかもしれませんので、その時の状況に合わせて判断してください。
(2)Micro SD カード
16GB 以下の Micro SD カードが1枚必要です。
(3)ケース
M5Stack を組み込むケースは公開されているデータがありますので、ダウンロードして自分で3Dプリンタに出力すると良いです。使用するサーボモータの種類や M5Stack 本体によっては修正が必要ですので注意してください。
完成品を販売しているサイトもありますので、3Dプリンタを使える環境がない場合は購入することもできます。筆者は公開されているデータをもとにCADデータを作りましたので、自由に微調整できるようになりました。
(4)サーボモータ
水平方向、垂直方向に回転させるためにサーボモータが2個必要です。SG90 という電子工作によく使われるものが一般的です。SCS0009 というサーボモータは回転角度が大きく360度回りますので楽しいかもしれません。ただし SG90 とはサイズが異なりますので専用のケースが必要です。
(5)電源供給回路
サーボモータの電源供給するための回路です。スイッチサイエンスで 完成品 または 部品キット を購入できます。部品キットの場合はハンダ付け作業が必要です。小さなプレッドボードと必要な部品を集めて自作することもできます。
(6)その他
GROVEケーブルが1本必要です。5cmでも可能ですが、作業性を考えると10cmのものが良いと思います。サーボモータの取り付けやケースの微調整のために各種のビスが必要です。
組み立て
部品キットを使う場合はここにその組立方法の説明があります。
ケースへの組み込み方法はここを参考にしてください。
M5Stack 本体を分解すれば少し格好良くすることができます。
注意点として、組み込むときにはサーボモーターの回転角度が中央になった状態で行ってください。そうしないと完成したスタックチャンが横を向いてしまうかもしれません。よくわからない場合は、組み立てる前にプログラムを動作させて、様子を見ながら作業すると良いです。
開発環境
M5Stack の上で動作しますので、その開発環境が必要です。Arduino IDE でも可能ですが、スタックチャンの実装例の多くは PlatformIO が使われていますので合わせておいたほうが何かと心強いです。PlatformIO については ここ を参照してください。
プログラム
GitHub でいろいろな実装例が公開されています。ここでは robo8080 さんのレポジトリを紹介します。
その使い方のページはここです。
使い方のページに説明があるように、
- ChatGPTのAPIキー
- Web版 VOICEVOX のAPIキー
- Google Cloud Speech to Text のAPIキー(オプション)
が必要になりますので予め入手してください。ChatGPT については、ブラウザ上でチャット機能を使うだけなら無料の登録だけで可能ですが、APIを利用するには有料の ChatGPT Plus に登録する必要があることに注意してください。ChatGPT Plus に登録せず、無料登録だけでAPI機能が使える無料枠が存在しますが、その期限は登録後3ヶ月です。チャット機能を試しているうちに3ヶ月経ってしまった場合は無料枠を使えません。
後は、自分のパソコンにプログラムを git clone して、PlatformIO を使って M5Stack に書き込めば動作します。
筆者の場合は、使用するWiFi環境に応じてプログラムの変更が必要でした。
また、OpenAI のWEBベージ証明書が更新された場合はプログラムもそれに合わせて変更が必要になります。筆者は次のページを参考にして解決しました。
