スタックチャン

スタックチャンはこのような小さなロボットです。(再生すると音が出ます。)

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 本体によっては修正が必要ですので注意してください。

GitHub - mongonta0716/3DPrinter_Models: A little collection of works
A little collection of works. Contribute to mongonta0716/3DPrinter_Models development by creating an account on GitHub.

完成品を販売しているサイトもありますので、3Dプリンタを使える環境がない場合は購入することもできます。筆者は公開されているデータをもとにCADデータを作りましたので、自由に微調整できるようになりました。

(4)サーボモータ

水平方向、垂直方向に回転させるためにサーボモータが2個必要です。SG90 という電子工作によく使われるものが一般的です。SCS0009 というサーボモータは回転角度が大きく360度回りますので楽しいかもしれません。ただし SG90 とはサイズが異なりますので専用のケースが必要です。

(5)電源供給回路

サーボモータの電源供給するための回路です。スイッチサイエンスで 完成品 または 部品キット を購入できます。部品キットの場合はハンダ付け作業が必要です。小さなプレッドボードと必要な部品を集めて自作することもできます。

(6)その他

GROVEケーブルが1本必要です。5cmでも可能ですが、作業性を考えると10cmのものが良いと思います。サーボモータの取り付けやケースの微調整のために各種のビスが必要です。

 

組み立て

部品キットを使う場合はここにその組立方法の説明があります。

Stack-chan_Takao_Base/Build/README.md at main · akita11/Stack-chan_Takao_Base
Stack-chan sub board for "Takao" bracket. Contribute to akita11/Stack-chan_Takao_Base development by creating an account...

ケースへの組み込み方法はここを参考にしてください。

分解作業なしでスタックチャンを作る。【スタックチャン タカオ版 組み立てキット】 | M5Stack沼人の日記
スタックチャン タカオ版 組み立てキットを頒布してから3カ月が経過しました。通常の手順では、M5GoBottomの分解作業が必要だったのですが、Twitterでいつもお世話になっているロボさん(@robo8080)が考えた方法だと各M5St...

M5Stack 本体を分解すれば少し格好良くすることができます。

スタックチャン タカオ版 組み立て方法【分解あり】【その2 ケースセットの組み立てと完成まで】 | M5Stack沼人の日記
2021/12/21よりBoothにて スタックチャンのタカオ版組み立てキットの頒布を始めました。この記事ではケースセットを組み立てて、完成させるまでを説明します。分解ありの組み立て方法は要注意です。【2023/2/11追記】2022のある...

注意点として、組み込むときにはサーボモーターの回転角度が中央になった状態で行ってください。そうしないと完成したスタックチャンが横を向いてしまうかもしれません。よくわからない場合は、組み立てる前にプログラムを動作させて、様子を見ながら作業すると良いです。

 

開発環境

M5Stack の上で動作しますので、その開発環境が必要です。Arduino IDE でも可能ですが、スタックチャンの実装例の多くは PlatformIO が使われていますので合わせておいたほうが何かと心強いです。PlatformIO については ここ を参照してください。

 

プログラム

GitHub でいろいろな実装例が公開されています。ここでは robo8080 さんのレポジトリを紹介します。

GitHub - robo8080/AI_StackChan2: AI_StackChan2
AI_StackChan2. Contribute to robo8080/AI_StackChan2 development by creating an account on GitHub.

その使い方のページはここです。

GitHub - robo8080/AI_StackChan2_README: AI_StackChan2_README
AI_StackChan2_README. Contribute to robo8080/AI_StackChan2_README development by creating an account on GitHub.

使い方のページに説明があるように、

  • 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ベージ証明書が更新された場合はプログラムもそれに合わせて変更が必要になります。筆者は次のページを参考にして解決しました。

【ChatGPT】PythonからAPI実行でエラー unable to get local issuer certificate
OpenAIのAPIを利用して開発をしている方が増えているのではないかと思います。 APIを使い始めた頃に遭遇したエラーについて記載しておきます。 エラー内容と解決策 VPN環境から以下のコード(Python 3.9)を実行しようとするとエ