スタックチャンを電子工作経験0で作った記録
初めに
この動画を見て、スタックチャンに興味を持ちました。
aiの自作や電工工学に前々から手を出したいと思ったので
この開発を足掛けにしたいと思います。
その軌跡をスクラップでメモ書きし、同じ思いの方に情報共有できれば幸いです。
事前購入したもの(スタックチャン用)
下以外にもPCやWiFI環境などあると思いますが
基本的に家にありそうなものは省いてます
M5Stack Core2 for AWS - ESP32 IoT開発キット
- スタックチャンの基盤となるもの
- これとSDかーどさえあれば、しゃべらせるだけなら可能です
- これと違うバージョンでも作成は可能です
- 購入した際に売り切れになったので買えてラッキーでした。amazonにもあり
【マットPLA】【Ver.2.5】スタックチャン タカオ版 ケースセット【SG90用】(黄色)
- スタックチャンを物理的に動作するためのケースです
- ○○版など、ケースにはいろいろありますが。今回はタカオ版にしました
- 猫ちゃんに見せてあげたいので、理解しやすい黄色に
Stack-chan_Takao_Base(完成
- タカオ版で動作させるための基盤です
- 足などを動作させるために利用します
FEETECH FS90MG デジタルマイクロPWMサーボ 3.3~6V/180°/2.2kg
- 足を動作させるためのサーボモーター
- タカオ版ケースセットと合った形式にしています参考
- 足に使うので、2個購入しています
microSDカード
- APIキーなどの格納しておく記録媒体です
- 16GBが最大じゃないと正常に動作しないので、そこの基準を守ります
事前購入したもの(工具)
精密ドライバー
六角レンチ
マイクロニッパー
追記
追加で必要になったもの
- セロハンテープ
- ピンセット
- 無水エタノール
スタックチャン自身を作成していく
まずスタックチャンにしゃべらせる部分の開発から始まります
詳しい開発方法を動画で解説してくださってる方がいるので
こちらを参考にして作っていきます
ドライバーをダウンロード
のサイトに移動して、開発に使うドライバーをインストールします
- 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で作りたいですね、ただタカオ版にしたのでできないかも
-
ソースはこちら。いずれ自分で内容を作成してみたいと思います
- AIスタックチャン2 PLUSをダウンロード
APIキーの準備
の解説を参考に、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の兼ね合いを考えないといけないかも
- 動画は返しの秒数長すぎたので、話しているところだけ
- ただし返しが遅すぎるので、ここはなんとかしたいですね
ケースを組み立てていく
今回は気合いれて分解ありの方式で組み立ててみます
ただバッテリーを分解するときの懸念点があるそうなので気を付けます
①M5Stackを外す
まずM5Stackを外します。ねじは後でつけるので横においておきます
購入した六角を利用
長さが違うので注意
こんな風に外れます
②バッテリーを外す
次に既存でくっついてるバッテリーを外して、セロハンテープでくっつけます
この小さいネジも後で使います
横から開けます
バッテリーは強力な粘着でくっついてるので、無水エタノールをバッテリーにかけて
端が削れてる割りばしなどを使い、てこの原理で引き出します
このとき 必ずピンセットなどを使わないように
バッテリーを傷つけると、最悪爆発します。
ここだけ手先の器用な嫁に頼りました
金属部分に触れないように、セロハンで止めてます
裏はこんな感じ
③ 基盤をシェルにくっつける
②ではずした小さいネジをつかって、ケースに止めます
ミス発生
後で気づいたのですが、タカオ版の完成基盤を使う場合
ここに付属ケーブルを使うのは間違いでした。
皆さんはマネしないように
④ サーボポーンを固定
サーボ部品に入ってる十字のホーンをニッパーで切ります
ここはきっちりきらなくていいですが、穴二つは残しておかないと
ネジで止められないので注意してください。
これは頭の駆動部部になります
切らないと、こんな感じでぶつかっちゃいます
切るとパーツは吹っ飛ぶので注意を
赤のねじ回しで、セットに入ってたネジを使いとめます
⑤M5Stackを固定
次に①で外したネジを使い、ケースに本体を止めます
上からかぶせて
ネジをはめます
とめられました
⑥もうひとつのサーボホーンを固定
ここは足の駆動部分
そんなに見えるわけでもないので、2つ穴さえ残せば
適当でもいいかも
こちらもカット
固定
⑦ ブラケットを調整(Stack-chan_Takao_Base)
駆動を制御する基盤を設置します
向きを合わせて
付属のネジでとめます
アクシデント
購入したレンチでは最小サイズでも穴より大きく
きっちり止めることはできませんでした。
皆さんは4mmの穴になる六角レンチを用意したほうがいいです
こんな風に斜めになっちゃいました。このあとある程度微調整はしました
⑧サーボモーターを設置
次にサーボモーターを巻きながら設置します
外側からはめ込みます
公式を参考に、穴から二回ケーブルを通してください
これを二個のサーボ分やります
ピンセットつかうとやりやすいです、実はこれは一回間違えたときの写真
一個目のサーボをサーボについていたネジでとめる
このとき、こちらのサーボのケーブル先に目印をつけておいてください
二個目はこんな感じ
⑨サーボのコネクタを基板に固定
一個目で目印つけたほうがした
二個目が上になります。
こんな感じで左を茶色にしてケーブルをとめます、気持ちしっかりははめにくい
⑩ シェルとブランケットを合わせる
仕上げです
一個目のサーボと足部分を合わせます
写真の順序は違いますが、間違えてたつなぎ先を正しい場所にしてます
穴から通して、タカオ基盤にもつなげる。左が黒になります
頭サーボもシェルにはめこみ
サーボについてたネジを頭のホーンの固定に使い
足のほうも固定して完了です
完成動画
足は駆動していることを確認できたのですが
頭がなぜか動きませんでした、、
しばらくしたら動くかもしれませんが
もし原因など分かれば報告したいと思います