はじめに
M5Stackアドベントカレンダー2021 19日目の記事です。
ふと見てみたら19日が空いていたのでお邪魔します(現在12/20 01:23)。
前日の記事はこちら:
スタックチャン をArduinoFrameworkでスムーズに動かす[PWMサーボ版] | ラズパイ好きの日記
100均グッズを使ってスタックチャンをつくってみた記事です。
M5Stackを顔に使った手乗りサイズのコミュニケーションロボットプロジェクト「スタックチャン」。
github.com
protopedia.net
ボディは3Dプリンタでつくるのが定番なのですが、段ボールでつくってみたり、100均グッズでつくれないか模索してみたりしていました。
fluorite36.hatenablog.com
fluorite36.hatenablog.com
スタックチャン くつした整理カップS 作り方
先日見つけた「くつした整理カップS 4個セット」でスタックチャンをつくってみました。
製作過程の写真とともに紹介します。
(追記 2021/12/22)
サーボの電源供給線が足りていなかった件、オプションのジョイスティックで顔を動かす方法について追記しました。
サーボモータは、手持ちのものを使用しました。今回はグルーガンで固定したので、近い大きさのサーボモータなら代替可能だと思います。
穴をあける為にドライバセット付属のキリを、カップを切るためにカッターを、切る線を下書きするのにホワイトボードマーカーを使用しました。
カップに切り込みを入れる際はつよめのハサミを併用しました。
足をつくる
切る場所をホワイトボードマーカでざっくり下書き。カップの底を足にします。駿馬さんのアイデアをいただきました。
顔を左右に動かす(ヨー軸)サーボホーンの取り付け
足をつくります。サーボホーン(サーボモータの軸に取り付けるための部品)を付けます。固定用ねじを通す穴をキリで開けて、グルーガンで付けました。
サーボモータのコネクタを挿せる位置にカップの穴を合わせます。この面を側面としました。カップがピッタリすぎてちょっと怖い。
顔上下用(ピッチ軸)のサーボホーン取り付け
ボディにサーボホーン固定用の穴をあけました。穴を開けたい場所の両脇に縦に傷を入れておくと、亀裂が走ることなく穴を開けられるということに気づきました。
サーボホーンは内側にグルーガンで取り付けました。カップは底に向かって小さくなっています(金型から抜きやすくするための抜き勾配でしょうか)。顔をまっすぐ上下できるように、勾配をキャンセルするように少し傾けて"まっすぐ"取り付けました。
その脇に、サーボモータのケーブルを引き回すための穴を開けました。四角を描くように開けました。穴の大きさは、サーボモータのコネクタ2つ分ほどです。少なくともコネクタの厚み+ケーブルの太さの幅を設けないと2本のケーブルを通せませんでした。
工夫せずにごり押しして亀裂が入ってしまった写真です。
顔を上下に動かす際に、左右に回すサーボとボディ下面がぶつかります。そのため、サーボモータの厚み+α大き目の幅でスロットを開けました。ここもカップの底に向かって亀裂が走りやすいため、縦(カップの底方向と垂直)に切りこんでから横(カップの底方向)へ切りました。
切りすぎるとボディの剛性が下がると思い、下面をできるだけ残す方向にしてみました。
グルーガンで2つのサーボモータを、フィレットを付けるように固定しました。このユニットでボディ全体を支えるので、グルーは多めに盛りました。
写真上が顔を左右に動かすモータ、下が顔を上下に動かすモータです。
M5Stack電源ボタン、USBコネクタ部の切り欠き
M5Stackに被る部分を削りました。
追記
オプション:I2Cポートの切り欠き
色々つなげられるI2Cポートの部分も削りました。
サーボモジュール電源コネクタ部の切り欠き
コネクタとぶつかる出っ張りを切除しました。切り欠きの切れ込みは、つよいハサミで切りました。
追記終わり
配線
サーボモータのケーブルを内側から穴を通して外へ出しました。サーボモータのコネクタは、サーボモジュールの端子につなぎました。この穴はもともとカップに空いていた穴を流用します。
[追記]つなぎ方
サーボモジュール
2ch:顔左右サーボ
4ch:顔上下サーボ
→プログラミング
ケーブルをつないだら、サーボホーンに固定する前にサーボモータをプログラムでホームポジションに合わせます。それぞれ90度に指定しました。
組み立て
組み立てていきます。写真の向きでサーボモータをサーボホーンに挿し込み、固定用ねじでとめます。
完成
顔を表示して完成です。
[追記]
オプション:ジョイスティックで顔を動かす
I2Cポートにジョイスティックをつないで、ジョイスティックの
X軸(左右)はスタックチャンを左右方向に、Y軸(上下)は上下方向に動かすよう割り当ててみました。
→プログラミング
足が滑ってしまうので、滑り止めを敷く、足を重くする等の対策が必要そうです。
スタックチャン くつした整理カップS プログラミング(UIFlow)
ブロックを並べてプログラミングするUIFlowを使ってみました。
※スタックチャンのディスプレイのお顔は動きません。
導入方法はドキュメントへ UIFlow · UIFlow Use
プログラミングするページ M5Flow
つなぎ方
サーボモジュール
2ch:顔左右サーボ
4ch:顔上下サーボ
stackchan_uiflow.m5f をダウンロードして、M5Flowのページで開いて、書き込んでみてください。
それぞれのサーボを90度(ホームポジション)にするプログラム(M5Basic用)
GitHub - 36kyo/stackchan_uiflow at febe200faa39ac3b77aa3efd4bc174e4376b6c61
ジョイスティックでサーボを動かすプログラム(M5Basic用)
GitHub - 36kyo/stackchan_uiflow at 6f51d1d4ab8f556ebda173c2c959f4ac3a3bdb7b
[追記終わり]
振り返り
なんとかスタックチャンを一体作り上げられました。100均グッズでスタックチャンをつくれるということが示せました。
加工が意外と難しかったです。3Dプリンタで刷ってしまったほうが楽かもしれません。ヒートカッターとか使うとサクサク進むかもしれません。
一作例として何か参考になれば幸いです。作ってみた方、加工方法など教えていただけると嬉しいです。