Open4

スタックチャンを電子工作経験0で作った記録

ピン留めされたアイテム
佃の備忘録佃の備忘録

初めに

この動画を見て、スタックチャンに興味を持ちました。

https://youtu.be/yOKuEbuDOZg?si=p9_cjmo5sj4bRcPv

aiの自作や電工工学に前々から手を出したいと思ったので
この開発を足掛けにしたいと思います。
その軌跡をスクラップでメモ書きし、同じ思いの方に情報共有できれば幸いです。

佃の備忘録佃の備忘録

事前購入したもの(スタックチャン用)

下以外にもPCやWiFI環境などあると思いますが
基本的に家にありそうなものは省いてます

M5Stack Core2 for AWS - ESP32 IoT開発キット

  • スタックチャンの基盤となるもの
    • これとSDかーどさえあれば、しゃべらせるだけなら可能です
    • これと違うバージョンでも作成は可能です
  • 購入した際に売り切れになったので買えてラッキーでした。amazonにもあり

https://www.switch-science.com/collections/m5stack/products/6784

【マットPLA】【Ver.2.5】スタックチャン タカオ版 ケースセット【SG90用】(黄色)

  • スタックチャンを物理的に動作するためのケースです
  • ○○版など、ケースにはいろいろありますが。今回はタカオ版にしました
  • 猫ちゃんに見せてあげたいので、理解しやすい黄色に

https://mongonta.booth.pm/items/5505411

Stack-chan_Takao_Base(完成

  • タカオ版で動作させるための基盤です
    • 足などを動作させるために利用します

https://www.switch-science.com/products/8905

FEETECH FS90MG デジタルマイクロPWMサーボ 3.3~6V/180°/2.2kg

  • 足を動作させるためのサーボモーター
    • タカオ版ケースセットと合った形式にしています参考
    • 足に使うので、2個購入しています

https://www.switch-science.com/products/8041/

microSDカード

  • APIキーなどの格納しておく記録媒体です
    • 16GBが最大じゃないと正常に動作しないので、そこの基準を守ります

https://amzn.asia/d/d2R2cVw

事前購入したもの(工具)

精密ドライバー

https://amzn.asia/d/2z1IaBU

六角レンチ

https://amzn.asia/d/8BPwlfl

マイクロニッパー

https://amzn.asia/d/chmKQO2

追記

追加で必要になったもの

  • セロハンテープ
  • ピンセット
  • 無水エタノール
佃の備忘録佃の備忘録

スタックチャン自身を作成していく

まずスタックチャンにしゃべらせる部分の開発から始まります
詳しい開発方法を動画で解説してくださってる方がいるので
こちらを参考にして作っていきます

https://youtu.be/Tit3mTCMoYY?si=Cm5L15HNLIVcJYN9

ドライバーをダウンロード

https://docs.m5stack.com/en/download

のサイトに移動して、開発に使うドライバーをインストールします

  • UIFLOW FIRMWARE BURNING TOOL
    • M5Burner Win10 x64 v3.0
  • USB DRIVER & OPEN SOURCE LIBRARY
    • CH9102_VCP_SER_Windows

プログラム書き込み用のシリアル通信を入れる

  • CH9102_VCP_SER_Windows.exeを起動して、インストール

M5Stack 製品のファームウェアを扱うツールを起動

  • M5Burner-v3-beta-win-x64.zipを解凍
    • M5Burner.exeを起動
    • CORE2 & TOUGHを選択
      • AIスタックチャン2 PLUSをダウンロード
        • ソースはこちら。いずれ自分で内容を作成してみたいと思います
          • 自分で作成するときはJSで作りたいですね、ただタカオ版にしたのでできないかも

APIキーの準備

https://github.com/robo8080/AI_StackChan2_README?tab=readme-ov-file

の解説を参考に、APIキーを取得

SDにいれるデータを作成

  • 適当なフォルダをPCに作成し、それぞれの情報をいれておきます
    • 作成したテキストファイルをSDカードにいれます(フォルダ不要)

【wifi.txt】

  • 一行目にwifiのSSID名
  • 二行目にPWを記載

【apikey.txt】

  • 一行目にOpenAIのAPIキーを記載
  • 二行目にVoiceBoxのAPIキーを記載
  • 三行目にCloud Speech-to-Text APIキーを記載

ファームウェアの上書き

  • デフォルトのファームウェアをスタックチャンの中身で上書きします
  • 電源オフの状態のM5StackにSDカードを入れます
  • PCとUSB-typeA to USB-typeCでM5Stackを接続

ここで問題発生

  • USBに接続しても、M5Burner.exeからデバイスが認識されない
  • 解決策としてはAWS公式が記載しているドライバーをインストールして再起動を行う
    • silabser.infファイルをインストールする形
  • windowsのデバイス一覧にCOM~の形で認識されていればOK

続きを行う

  • M5Burner.exeを起動
  • インストールした「AIスタックチャン2 PLUS」のBurnをクリック
    • 非公式のファームウェアですが大丈夫ですか?といった問を無視
    • COM認識された数字があれば、設定を変えずStartをクリック
    • しばらくしたら書き込みが完了します、そのあとM5stackにスタックチャンの顔が出てたら成功です
      • 電源を落とし、sdカードは抜いておきます。そして再度起動したら顔が表示される前にローカルIPが表示されるので。メモしておきます

動作テスト

今回の自分の環境でのIPは下記だったので
これの前提で進めます

192.168.68.62

【会話テスト】

  • まずチャットが返されるかのテストを行います
    • チャットにこんにちはといったときの返事がきます
http://192.168.68.62/chat?text=%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF
  • このとき画面に返答文字とm5stackからも音声が出ていれば成功です

【ロール決め】

  • 次にスタックチャン自身がどんなaiにするかのロール決めを行います
http://192.168.68.62/role

小さい子のほうが何かできなくても許せそうなので
幼くしました。

ロール

あなたの名前はスタックチャンです。
5歳の女の子です

【声決め】

今回は櫻歌ミコさんにすることにしたので
話者の選択をします。櫻歌ミコさんは43だったので

http://192.168.68.62/setting?speaker=43

にアクセスしてOKの文字を確認します

【ウェイクワードの設定】

  • 画面下にある3つのボタンのうち、真ん中のボタンを押してウェイクワードを登録します
    • そのあと、左にあるボタンをおしてウェイクワードでの応答を有効化します

【音量調整】

デフォルトがと声が小さいので、大き目にしています

http://192.168.68.62//setting?volume=235

【最終確認】

  • 最後の返答の確認をしたら、いい感じに返答してくれました
    • ただし返しが遅すぎるので、ここはなんとかしたいですね
      • 動画は返しの秒数長すぎたので、話しているところだけ
        • たまに読み飛ばしがあるので、voice boxの兼ね合いを考えないといけないかも

https://youtube.com/shorts/8W3Yv-H0xWo?si=1ffS40z0tCdSHipm

佃の備忘録佃の備忘録

ケースを組み立てていく

今回は気合いれて分解ありの方式で組み立ててみます
https://raspberrypi.mongonta.com/how-to-make-stackchan-m5gobottom-2/

ただバッテリーを分解するときの懸念点があるそうなので気を付けます

①M5Stackを外す

まずM5Stackを外します。ねじは後でつけるので横においておきます


購入した六角を利用


長さが違うので注意


こんな風に外れます

②バッテリーを外す

次に既存でくっついてるバッテリーを外して、セロハンテープでくっつけます


この小さいネジも後で使います


横から開けます

バッテリーは強力な粘着でくっついてるので、無水エタノールをバッテリーにかけて
端が削れてる割りばしなどを使い、てこの原理で引き出します
このとき 必ずピンセットなどを使わないように
バッテリーを傷つけると、最悪爆発します。


ここだけ手先の器用な嫁に頼りました


金属部分に触れないように、セロハンで止めてます


裏はこんな感じ

③ 基盤をシェルにくっつける

②ではずした小さいネジをつかって、ケースに止めます

ミス発生

後で気づいたのですが、タカオ版の完成基盤を使う場合
ここに付属ケーブルを使うのは間違いでした。
皆さんはマネしないように

④ サーボポーンを固定

サーボ部品に入ってる十字のホーンをニッパーで切ります
ここはきっちりきらなくていいですが、穴二つは残しておかないと
ネジで止められないので注意してください。

これは頭の駆動部部になります


切らないと、こんな感じでぶつかっちゃいます


切るとパーツは吹っ飛ぶので注意を


赤のねじ回しで、セットに入ってたネジを使いとめます

⑤M5Stackを固定

次に①で外したネジを使い、ケースに本体を止めます


上からかぶせて


ネジをはめます


とめられました

⑥もうひとつのサーボホーンを固定

ここは足の駆動部分
そんなに見えるわけでもないので、2つ穴さえ残せば
適当でもいいかも


こちらもカット


固定

⑦ ブラケットを調整(Stack-chan_Takao_Base)

駆動を制御する基盤を設置します


向きを合わせて


付属のネジでとめます

アクシデント

購入したレンチでは最小サイズでも穴より大きく
きっちり止めることはできませんでした。
皆さんは4mmの穴になる六角レンチを用意したほうがいいです


こんな風に斜めになっちゃいました。このあとある程度微調整はしました

⑧サーボモーターを設置

次にサーボモーターを巻きながら設置します


外側からはめ込みます

公式を参考に、穴から二回ケーブルを通してください
これを二個のサーボ分やります


ピンセットつかうとやりやすいです、実はこれは一回間違えたときの写真


一個目のサーボをサーボについていたネジでとめる

このとき、こちらのサーボのケーブル先に目印をつけておいてください


二個目はこんな感じ

⑨サーボのコネクタを基板に固定

一個目で目印つけたほうがした
二個目が上になります。


こんな感じで左を茶色にしてケーブルをとめます、気持ちしっかりははめにくい

⑩ シェルとブランケットを合わせる

仕上げです


一個目のサーボと足部分を合わせます


写真の順序は違いますが、間違えてたつなぎ先を正しい場所にしてます


穴から通して、タカオ基盤にもつなげる。左が黒になります


頭サーボもシェルにはめこみ


サーボについてたネジを頭のホーンの固定に使い


足のほうも固定して完了です

完成動画

足は駆動していることを確認できたのですが
頭がなぜか動きませんでした、、
しばらくしたら動くかもしれませんが
もし原因など分かれば報告したいと思います

https://www.youtube.com/shorts/G8Zd3Uy0YHA