はじめに
M5Stackアドベントカレンダー2021 19日目の記事です。
ふと見てみたら19日が空いていたのでお邪魔します(現在12/20 01:23)。
前日の記事はこちら:
スタックチャン をArduinoFrameworkでスムーズに動かす[PWMサーボ版] | ラズパイ好きの日記
100均グッズを使ってスタックチャンをつくってみた記事です。
M5Stackを顔に使った手乗りサイズのコミュニケーションロボットプロジェクト「スタックチャン」。
ボディは3Dプリンタでつくるのが定番なのですが、段ボールでつくってみたり、100均グッズでつくれないか模索してみたりしていました。
スタックチャン くつした整理カップS 作り方
先日見つけた「くつした整理カップS 4個セット」でスタックチャンをつくってみました。
ダイソーのくつした整理カップ S 4個セット、ぴったりかも #M5Stack #スタックチャン pic.twitter.com/NCvpubEFk1
— ふるおらいと (@36kyo) 2021年12月8日
製作過程の写真とともに紹介します。
(追記 2021/12/22)
サーボの電源供給線が足りていなかった件、オプションのジョイスティックで顔を動かす方法について追記しました。
必要なもの | 個数 |
---|---|
M5Stack Basic - スイッチサイエンス | 1 |
M5Stack用12チャンネル サーボドライバモジュール - スイッチサイエンス | 1 |
サーボ用電源、電源ケーブル(DCジャック)[追記] | 各1 |
マイクロサーボ MG90S: パーツ一般 秋月電子通商-電子部品・ネット通販 | 2 |
くつした整理カップS(ダイソー、セリア他) | 1 |
オプションパーツ | 個数 |
---|---|
M5Stack用ジョイスティックユニット - スイッチサイエンス [追記] | 1 |
サーボモータは、手持ちのものを使用しました。今回はグルーガンで固定したので、近い大きさのサーボモータなら代替可能だと思います。
穴をあける為にドライバセット付属のキリを、カップを切るためにカッターを、切る線を下書きするのにホワイトボードマーカーを使用しました。
足をつくる
切る場所をホワイトボードマーカでざっくり下書き。カップの底を足にします。駿馬さんのアイデアをいただきました。
カップの底を切って足にしてみた
— 駿馬 (@syumme01) 2021年12月18日
ネジなくなったのでテープ仮止め#100均スタックチャン #スタックチャン #M5Stack pic.twitter.com/xPAqL7ZoCg
でん。゚(゚´ω`゚)゚。
— ふるおらいと (@36kyo) 2021年12月18日
カッターでちびちび切れ目入れて、3周目くらいで刃をぶち込んでざくざく pic.twitter.com/vBifuUeHHU
顔を左右に動かす(ヨー軸)サーボホーンの取り付け
足をつくります。サーボホーン(サーボモータの軸に取り付けるための部品)を付けます。固定用ねじを通す穴をキリで開けて、グルーガンで付けました。
真ん中に穴を開けて、蓋の外側にサーボホーンをのせて縁をグルーで(仮で位置を見たかった(小ねじの穴あけ大変そう pic.twitter.com/2uMUIxnCX7
— ふるおらいと (@36kyo) 2021年12月18日
サーボモータのコネクタを挿せる位置にカップの穴を合わせます。この面を側面としました。カップがピッタリすぎてちょっと怖い。
にしてもぴったり過ぎますね…何なんだこれ。゚(゚´ω`゚)゚。
— ふるおらいと (@36kyo) 2021年12月18日
加工無しでこのフィット感 pic.twitter.com/baNOMu2hHg
顔上下用(ピッチ軸)のサーボホーン取り付け
ボディにサーボホーン固定用の穴をあけました。穴を開けたい場所の両脇に縦に傷を入れておくと、亀裂が走ることなく穴を開けられるということに気づきました。
サーボホーンは内側にグルーガンで取り付けました。カップは底に向かって小さくなっています(金型から抜きやすくするための抜き勾配でしょうか)。顔をまっすぐ上下できるように、勾配をキャンセルするように少し傾けて"まっすぐ"取り付けました。
その脇に、サーボモータのケーブルを引き回すための穴を開けました。四角を描くように開けました。穴の大きさは、サーボモータのコネクタ2つ分ほどです。少なくともコネクタの厚み+ケーブルの太さの幅を設けないと2本のケーブルを通せませんでした。
反対側でリベンジ
— ふるおらいと (@36kyo) 2021年12月18日
これ以上亀裂が走ってほしくないところに傷を入れておくとうまくいくのではと思いついた謎理論でやってみたらうまく行ってしまった。゚(゚´ω`゚)゚。
内側にサーボホーン pic.twitter.com/W4iViAsDuK
工夫せずにごり押しして亀裂が入ってしまった写真です。
横に穴開けようとして、ビシッとなってしまった。゚(゚´ω`゚)゚。 pic.twitter.com/gknqFxJNjU
— ふるおらいと (@36kyo) 2021年12月18日
顔上下時のサーボモータ干渉部の穴開け
顔を上下に動かす際に、左右に回すサーボとボディ下面がぶつかります。そのため、サーボモータの厚み+α大き目の幅でスロットを開けました。ここもカップの底に向かって亀裂が走りやすいため、縦(カップの底方向と垂直)に切りこんでから横(カップの底方向)へ切りました。
切りすぎるとボディの剛性が下がると思い、下面をできるだけ残す方向にしてみました。
一旦ざっくり(4個入りで失敗できることを思い出した pic.twitter.com/H5IwwN398K
— ふるおらいと (@36kyo) 2021年12月18日
サーボモータユニット組み立て
グルーガンで2つのサーボモータを、フィレットを付けるように固定しました。このユニットでボディ全体を支えるので、グルーは多めに盛りました。
写真上が顔を左右に動かすモータ、下が顔を上下に動かすモータです。
溶接みたいですね(いいのかこれで pic.twitter.com/bJVyRGL1Qm
— ふるおらいと (@36kyo) 2021年12月18日
M5Stack電源ボタン、USBコネクタ部の切り欠き
M5Stackに被る部分を削りました。
形が見えてきた…!
— ふるおらいと (@36kyo) 2021年12月18日
USBと電源ボタンの切り欠きを忘れていた。゚(゚´ω`゚)゚。 pic.twitter.com/nqGcAC9tiX
追記
オプション:I2Cポートの切り欠き
色々つなげられるI2Cポートの部分も削りました。
同様にして、ついでにI2Cポートも
— ふるおらいと (@36kyo) 2021年12月21日
(写真撮るときM5Stackが傾いてずれたけど、サーボの穴はこれでぴったり pic.twitter.com/dng8gBwJsm
サーボモジュール電源コネクタ部の切り欠き
コネクタとぶつかる出っ張りを切除しました。切り欠きの切れ込みは、つよいハサミで切りました。
サーボモジュール電源コネクタ部
— ふるおらいと (@36kyo) 2021年12月21日
出っ張りをカッターを寝かせてゆっくり切除、(ちょっと楽したかったので)エンジニアの強いハサミで横に切り込み入れて、カッターで縦に傷を入れて、ペンチで挟んで折り曲げて切り取り
最後縁をカッターできれいに pic.twitter.com/0W4gDtTLCi
追記終わり
配線
サーボモータのケーブルを内側から穴を通して外へ出しました。サーボモータのコネクタは、サーボモジュールの端子につなぎました。この穴はもともとカップに空いていた穴を流用します。
[追記]つなぎ方
サーボモジュール
2ch:顔左右サーボ
4ch:顔上下サーボ
ケーブルをつないだら、サーボホーンに固定する前にサーボモータをプログラムでホームポジションに合わせます。それぞれ90度に指定しました。
組み立て
組み立てていきます。写真の向きでサーボモータをサーボホーンに挿し込み、固定用ねじでとめます。
後ろはこんな感じです pic.twitter.com/DnxfNT8J0B
— ふるおらいと (@36kyo) 2021年12月19日
完成
顔を表示して完成です。
できた。゚(゚´ω`゚)゚。 #スタックチャン #M5Stack https://t.co/wz1GtAzWgw pic.twitter.com/6iWZ0Bel6V
— ふるおらいと (@36kyo) 2021年12月18日
[追記]
オプション:ジョイスティックで顔を動かす
I2Cポートにジョイスティックをつないで、ジョイスティックの
X軸(左右)はスタックチャンを左右方向に、Y軸(上下)は上下方向に動かすよう割り当ててみました。
— ふるおらいと (@36kyo) 2021年12月21日
無事動作確認できました。ウンウン pic.twitter.com/OnuZZBJOSY
— ふるおらいと (@36kyo) 2021年12月21日
足が滑ってしまうので、滑り止めを敷く、足を重くする等の対策が必要そうです。
足が滑る/軽すぎるのは対策が必要そう pic.twitter.com/EOBEttWgGX
— ふるおらいと (@36kyo) 2021年12月21日
スタックチャン くつした整理カップ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プリンタで刷ってしまったほうが楽かもしれません。ヒートカッターとか使うとサクサク進むかもしれません。
一作例として何か参考になれば幸いです。作ってみた方、加工方法など教えていただけると嬉しいです。