M5Stack StackChan hats

Push-on cap for the K151 head, 35 plug-in decoration sets, 4 one-piece cap variants, 6 food drapes that dress the head itself as tofu, pudding or onigiri, and 11 house and food shells; support-free; clear of body and base over the full pitch range (shells: up to a per-shell look-up angle).

Prototype CadQuery 1 printed part from 1 STL file, 56 optional or reference Source files

Preview of M5Stack StackChan hats

Drag to rotate, scroll or pinch to zoom, right-drag or two-finger drag to pan. Units: mm.

Files

STLQtyDescriptionSize
cap.stl 1Push-on cap with decoration slots 87 KiB
cap-bat-wings.stl –Cap variant: folded bat wings; replaces the cap 143 KiB
cap-lop-ears.stl –Cap variant: lop ears; replaces the cap 104 KiB
cap-lion-mane.stl –Cap variant: lion mane; replaces the cap 144 KiB
cap-petal-frame.stl –Cap variant: petal frame; replaces the cap 133 KiB
drape-soy-sauce.stl –Drape: Soy sauce, head as tofu; replaces the cap 216 KiB
drape-caramel.stl –Drape: Caramel, head as pudding; replaces the cap 241 KiB
drape-nori-band.stl –Drape: Nori band, head as onigiri; replaces the cap 101 KiB
drape-nori-wrap.stl –Drape: Nori wrap, head as norimaki; replaces the cap 101 KiB
drape-sakura-leaf.stl –Drape: Cherry leaf, head as sakuramochi; replaces the cap 104 KiB
drape-crust.stl –Drape: Crust, head as sliced bread; replaces the cap 100 KiB
cat-ears.stl –Decoration: Cat ears, 2 pieces 103 KiB
dog-ears.stl –Decoration: Dog ears (drooping), 2 pieces 239 KiB
rabbit-ears.stl –Decoration: Rabbit ears, 2 pieces 250 KiB
bear-ears.stl –Decoration: Bear ears, 2 pieces 228 KiB
fox-ears.stl –Decoration: Fox ears, 2 pieces 106 KiB
mouse-ears.stl –Decoration: Mouse ears, 2 pieces 229 KiB
panda-ears.stl –Decoration: Panda ears, 2 pieces 291 KiB
frog-eyes.stl –Decoration: Frog eyes, 2 pieces 315 KiB
pig-ears.stl –Decoration: Pig ears, 2 pieces 146 KiB
sheep-horns.stl –Decoration: Sheep horns, 2 pieces 235 KiB
devil-horns.stl –Decoration: Devil horns, 2 pieces 206 KiB
heart-antennae.stl –Decoration: Heart antennae, 2 pieces 379 KiB
ball-antennae.stl –Decoration: Ball antennae, 2 pieces 278 KiB
angel-wings.stl –Decoration: Angel wings, 2 pieces 299 KiB
ribbon.stl –Decoration: Ribbon 228 KiB
crown.stl –Decoration: Crown 304 KiB
flower.stl –Decoration: Flower 321 KiB
sprout.stl –Decoration: Sprout 210 KiB
ahoge.stl –Decoration: Ahoge (single hair strand) 224 KiB
star-wand.stl –Decoration: Star antenna 340 KiB
witch-hat.stl –Decoration: Witch hat 159 KiB
santa-hat.stl –Decoration: Santa hat 261 KiB
chick.stl –Decoration: Chick 310 KiB
unicorn-horn.stl –Decoration: Unicorn horn 91 KiB
halo.stl –Decoration: Halo 204 KiB
yakumi.stl –Decoration: Ginger and spring onion 233 KiB
cherry.stl –Decoration: Cherry 254 KiB
umeboshi.stl –Decoration: Umeboshi 98 KiB
palm-tree.stl –Decoration: Palm tree 562 KiB
large-angel-wings.stl –Decoration: Large angel wings, 2 pieces 844 KiB
dragon-wings.stl –Decoration: Dragon wings, 2 pieces 517 KiB
cat-tail.stl –Decoration: Cat tail 215 KiB
fox-tail.stl –Decoration: Fox tail 133 KiB
devil-tail.stl –Decoration: Devil tail 207 KiB
dragon-tail.stl –Decoration: Dragon tail 303 KiB
shell-house.stl –Shell: House; replaces the cap, no decorations 224 KiB
shell-house-roof.stl –Shell: House roof, head as house; replaces the cap, no decorations 137 KiB
shell-tofu.stl –Shell: Tofu with soy sauce; replaces the cap, no decorations 219 KiB
shell-pudding.stl –Shell: Pudding; replaces the cap, no decorations 273 KiB
shell-norimaki.stl –Shell: Norimaki; replaces the cap, no decorations 199 KiB
shell-sakuramochi.stl –Shell: Sakuramochi; replaces the cap, no decorations 87 KiB
shell-omurice.stl –Shell: Omurice; replaces the cap, no decorations 143 KiB
shell-onigiri-triangle.stl –Shell: Triangle onigiri; replaces the cap, no decorations 83 KiB
shell-onigiri-round.stl –Shell: Round onigiri; replaces the cap, no decorations 81 KiB
shell-shumai.stl –Shell: Shumai; replaces the cap, no decorations 284 KiB
shell-bread.stl –Shell: Sliced bread; replaces the cap, no decorations 134 KiB

Qty is the number of prints for the configuration described in the notes; “–” marks optional or reference-only files.

Design notes

M5Stack 社製 StackChan (SKU K151) の頭部に被せるキャップと、キャップ上面のスロットに差し込む装飾 35 セットです。動物の耳 (ねこ・いぬ・うさぎ・くま・きつね・ねずみ・パンダ・かえる・ぶた・ひつじ)、角・触角・羽・リボン・王冠・花・帽子などの小型の装飾に加え、大きな翼と尻尾を付け替えられます。翼・垂れ耳・たてがみ・花びらをキャップと一体にした変形キャップも 4 種あります。頭部そのものを豆腐・プリン・おにぎりなどに見立て、醤油・カラメル・海苔・葉などの上に乗る部分だけを被せる被せ物が 6 種あります。ほかに、家や食べ物の形をした大型の被り物 (シェル) が 11 種あり、キャップの代わりに頭部全体を覆います。

すべて単色の FDM 印刷を前提とし、サポートは不要です。キャップは頭部へはめ込み、側面の LEGO 互換穴に入る突起で保持します。首振りとうなずきの全可動範囲で、胴体・台座・机に当たらないことを検証しています。シェルは重いため、うなずきの上向き角度に部品ごとの上限があります。

実機での印刷・装着は未確認です。 寸法は M5Stack 公開の筐体データから求めた設計値です。未検証事項は後述します。

装着状態のカタログ

構成

部品ファイル数印刷向き
キャップstl/cap.stl1上面を下にして印刷
変形キャップstl/cap-<名前>.stl1上面を下にして印刷。キャップの代わりに使う
被せ物stl/drape-<名前>.stl1上面を下にして印刷。キャップの代わりに使い、装飾を併用できる
装飾stl/<セット名>.stlセットごと平置き。1 ファイルに左右分を配置済み
シェルstl/shell-<名前>.stl1背面を下にして印刷。キャップの代わりに使い、装飾は付けない

キャップは共通で、装飾だけを差し替えます。変形キャップにも同じスロットがあり、装飾を併用できます。装飾は厚さ 3.2 mm (大きな翼は 2.0〜2.4 mm、尻尾は 4.8 mm) の板で、下端のタブ (12 × 3.2 × 2.7 mm) をキャップのスロットへ差し込みます。タブ両端の 0.25 mm の突起が圧入代になります。印刷時に上を向く面が、装着時には前を向きます。この面に浮き彫りまたは彫り込みの模様があります。

キャップ: 装着状態、印刷状態、内側

装飾の印刷形状

装飾の一覧

位置は「列-スロット」で表します。質量は PLA (1.24 g/cm³) を 100% 充填した場合の値です。

列yスロット
前列12 mm左右 x = ±16 mm、中央 x = 0
後列32 mm左右 x = ±16 mm、中央 x = 0
翼44 mm左右 x = ±16 mm
尻尾40.7 mmx = 0。y 方向に長いスロット
セットファイル部品位置質量
ねこ耳cat-ears.stl2前列左右1.5 g
いぬ耳 (垂れ耳)dog-ears.stl2前列左右2.7 g
うさぎ耳rabbit-ears.stl2前列左右3.4 g
くま耳bear-ears.stl2前列左右2.0 g
きつね耳fox-ears.stl2前列左右1.9 g
ねずみ耳mouse-ears.stl2前列左右3.2 g
パンダ耳panda-ears.stl2前列左右1.8 g
かえるの目frog-eyes.stl2前列左右2.3 g
ぶた耳pig-ears.stl2前列左右1.2 g
ひつじの角sheep-horns.stl2前列左右2.3 g
あくまの角devil-horns.stl2前列左右1.0 g
ハートの触角heart-antennae.stl2前列左右1.5 g
まるい触角ball-antennae.stl2前列左右1.4 g
天使の羽angel-wings.stl2後列左右2.1 g
リボンribbon.stl1前列中央1.6 g
王冠crown.stl1前列中央1.7 g
花flower.stl1前列中央1.8 g
双葉sprout.stl1前列中央1.0 g
アホ毛ahoge.stl1前列中央0.7 g
星の触角star-wand.stl1前列中央1.0 g
魔女の帽子witch-hat.stl1前列中央1.5 g
サンタ帽santa-hat.stl1前列中央2.4 g
ひよこchick.stl1前列中央1.6 g
ユニコーンの角unicorn-horn.stl1前列中央0.7 g
薬味 (しょうがとネギ)yakumi.stl1前列中央1.1 g
さくらんぼcherry.stl1前列中央1.0 g
梅干しumeboshi.stl1前列中央0.9 g
天使の輪halo.stl1後列中央1.0 g

キャップは 12.5 g です。

前列と後列の 6 か所は同じ寸法で、小型の装飾はどれにも差せます。表の位置は、カタログ画像と検証で用いた標準配置です。左右の部品は鏡像なので、模様を前に向けると左右が決まります。

大型の装飾と変形キャップ

変形キャップと大型の装飾

うなずき 0°、45°、87° でのドラゴンの翼と尻尾

名前ファイル方式位置質量大きさ
こうもりの翼 (畳んだ形)cap-bat-wings.stl変形キャップ側面27.5 g側面に垂れる膜、下端 z = -50
ロップイヤーcap-lop-ears.stl変形キャップ側面17.7 g長さ約 48 mm
ライオンのたてがみcap-lion-mane.stl変形キャップ顔の左右23.0 g全幅 105 mm
花びらの縁取りcap-petal-frame.stl変形キャップ顔の左右23.3 g全幅 105 mm
大きな天使の翼large-angel-wings.stl装飾 2 枚、厚さ 2.0 mm翼左右7.9 g全幅約 135 mm、キャップ上 37 mm
ドラゴンの翼dragon-wings.stl装飾 2 枚、厚さ 2.4 mm翼左右7.5 g全幅約 137 mm、キャップ上 36 mm
ねこの尻尾cat-tail.stl装飾、厚さ 4.8 mm尻尾1.7 gキャップ上 32 mm
きつねの尻尾fox-tail.stl装飾、厚さ 4.8 mm尻尾4.0 gキャップ上 42 mm
あくまの尻尾devil-tail.stl装飾、厚さ 4.8 mm尻尾1.5 gキャップ上 33 mm
ドラゴンの尻尾dragon-tail.stl装飾、厚さ 4.8 mm尻尾2.1 gキャップ上 32 mm
ヤシの木palm-tree.stl装飾、厚さ 2.0 mm前列中央2.1 g全幅 41 mm、キャップ上 50 mm

形状は次の制約から決めています。

頭部を食べ物に見立てる被せ物

被せ物と、組み合わせる装飾。右下は家の屋根のシェル

白い頭部を豆腐・プリン・おにぎりなどに見立て、上に乗る部分だけを被せます。構造はキャップに部品を足した変形キャップで、保持用の突起、LED の窓、装飾用のスロットはキャップと同じです。上面は全面がキャップの天板なので、上面全体が醤油や海苔などで覆われた形になります。単色で印刷し、醤油なら茶色、海苔なら黒の材料を使う想定です。

名前ファイル見立て形状組み合わせる装飾最下端質量
醤油drape-soy-sauce.stl豆腐側面に長さの異なる垂れ 8 本薬味z = -3415.2 g
カラメルdrape-caramel.stlプリン側面にそろった短い垂れ 10 本さくらんぼz = -1614.6 g
海苔の帯drape-nori-band.stlおにぎり上面から左右へ巻く幅 26 mm の帯梅干しz = -4018.6 g
巻き海苔drape-nori-wrap.stl海苔巻き (画面が切り口)側面全体を覆う海苔—z = -5225.1 g
桜の葉drape-sakura-leaf.stl桜餅右側面を包む葉。葉脈は V 溝—z = -4716.7 g
パンの耳drape-crust.stl食パン (画面が断面)顔の上と左右を囲む耳—z = -5516.5 g

質量は 100% 充填の値です。家は、頭部を壁に見立てて屋根だけを被せる形にしました。屋根は天板より上に張り出すため、上面を下にする印刷向きでは造形できません。そこで、シェルと同じ構造で作っています (次節の shell-house-roof)。

形状は次の制約から決めています。

家と食べ物のシェル

家と食べ物のシェル。題名の角度はうなずきの上向き許容角

正面の輪郭を、頭部の後端から顔の直前まで奥行方向へ押し出した被り物です。キャップの代わりに頭部へはめ込みます。正面の模様は浮き彫り (0.8 mm) と彫り込み (0.8 mm) です。

名前ファイル正面の模様全幅頭頂からの高さ質量 (印刷設定)上向き許容角
家shell-house.stl屋根の縁、丸窓、煙突76 mm44 mm40.5 g66°
家の屋根 (頭部が壁)shell-house-roof.stl屋根の縁、妻の通気口76 mm39 mm32.5 g87°
醤油をかけた豆腐shell-tofu.stl上面から垂れる醤油、気泡72 mm26 mm37.4 g87°
プリンshell-pudding.stl垂れたカラメル、さくらんぼ、皿92 mm39 mm43.3 g70°
海苔巻きshell-norimaki.stl海苔の縁、米粒84 mm34 mm41.5 g82°
桜餅shell-sakuramochi.stl桜の葉と葉脈80 mm37 mm41.4 g74°
オムライスshell-omurice.stlケチャップの線、皿95 mm28 mm41.8 g87°
三角おにぎりshell-onigiri-triangle.stl海苔88 mm49 mm39.3 g87°
丸おにぎりshell-onigiri-round.stl海苔80 mm44 mm48.2 g49°
シュウマイshell-shumai.stl上の具、皮のひだ72 mm32 mm35.5 g87°
食パンshell-bread.stlパンの耳76 mm43 mm50.9 g44°

奥行はいずれも 64.4 mm (y = -15.4〜49.0) です。質量は後述の印刷設定 (外周 2 本、充填率 10%) での推定値です。

上向き許容角

シェルは 32〜51 g あり、上を向くと重心がうなずき軸の後方へ移ります。generate.py は、0° から 1° ずつ上へ回し、胴体・台座・机から 1.0 mm 以上離れていることと、重力モーメントが上限 150 g·cm 以下であることを確かめます。両方を満たす最大の角度を許容角として validation.json の allowed_pitch_deg に記録し、30° 未満の場合は異常終了します。許容角が 87° 未満のものはすべてモーメントで制限されており、干渉はうなずきの全範囲で生じません。

許容角が 87° 未満のシェルを使う場合は、公式ファームウェアの pitch の上限 (hal_servo.cpp の angleLimit の上限値 870、0.1° 単位) を許容角の 10 倍以下に下げてください。上限は設計上の目安であり、超えてもただちに故障するわけではありませんが、サーボの負荷と発熱が増えます。

可動範囲と干渉

うなずき軸は x 方向で、頭部座標の y = 18.4 mm、z = -27.0 mm にあります。頭部シェル左右の側壁内側にあるアーム受け座の円弧から求めました (当てはめ誤差 0.003 mm)。うなずきの範囲は、正面を水平に見る姿勢を 0° として上向きに 0〜87° です。首振りは ±128° です。範囲は公式ファームウェアの設定値です (m5stack/StackChan firmware/main/hal/hal_servo.cpp、pitch angleLimit 30〜870 (0.1° 単位)、yaw angleLimit ±1280)。0 点は校正画面の「StackChan looking straight forward.」の姿勢です。

generate.py は、各部品と、キャップに装着した各セットの表面を 1 mm 以下の間隔で点に分けます。うなずきを 1° 刻みで回し、次の障害物から 1.0 mm 以上離れていることを確かめます。

いずれも M5_Hardware の StackChan-ServoBody.stl、StackChan-ServoCover.stl、StackChan-ServoSideCover.stl、StackChan-Base.stl から計測しました。これらの部品は互いに共通の組立座標で収録されていますが、頭部シェル (MainBody) とは y 方向の位置がずれています。z は組立位置のままで、ServoBody のピンの高さは受け座から求めたうなずき軸と 0.4 mm 以内で一致しました。y はピンをうなずき軸に合わせて決め、首振り軸は台座の軸受け中心から y = 19.2 mm としました。

公式 STL を用いたローカルの照合も行いました。

公式 STL を含めないため、この照合は CI では実行しません。

サーボの負荷

うなずき用サーボは Feetech の SCS 系です。ファームウェアは SCSCL ドライバを使い、販売店の仕様では SCS0009 の定格トルクは 0.7 kg·cm (ストール 2.3 kg·cm) です。キャップと装飾がうなずき軸まわりに加える重力モーメントの上限を、定格の約 2 割の 150 g·cm としました。

頭部と CoreS3 自体の負荷は含みません。上限は設計上の目安であり、実機での負荷は測定していません。

組み合わせ

耳と中央の装飾は同時に付けられます。中央の装飾を後列中央に差せば、どの耳とも干渉しません。前列中央に並べたときに干渉しない組み合わせは次のとおりです。validation.json の conflicting_pairs は、別々のスロットに差したときに重なる組を自動判定した結果です。同じスロットを使う組は同時に付けられないため、一覧には含めていません。

耳など前列中央に併用できる装飾
ねこ耳王冠、双葉、アホ毛、ユニコーンの角
いぬ耳、パンダ耳、ぶた耳、ひつじの角、あくまの角双葉、アホ毛、星の触角、ユニコーンの角、ヤシの木、さくらんぼ、梅干し
ハートの触角、まるい触角双葉、アホ毛、星の触角、ユニコーンの角、さくらんぼ、梅干し
きつね耳双葉、アホ毛、ユニコーンの角
くま耳双葉、星の触角、ユニコーンの角、ヤシの木、さくらんぼ、梅干し
うさぎ耳星の触角、ユニコーンの角、梅干し
ねずみ耳星の触角、ユニコーンの角、さくらんぼ、梅干し
かえるの目ユニコーンの角
天使の羽 (後列)前列中央の全装飾

薬味は幅が広く、前列中央ではどの耳とも重なります。耳と併用する場合は後列中央に差します。

そのほかに、次の組は重なります。

取り付け

  1. キャップの前縁 (左右の側壁がない側) を CoreS3 の画面側に向けます。
  2. 頭部の上から真下へ押し込みます。側壁内側の突起 (高さ 0.6 mm) が、側面中央の LEGO 互換穴に入って止まります。突起は側壁のスリットで区切った舌片の上にあり、舌片が外側へたわみます。
  3. 後縁のリップ (幅 32 mm、高さ 3.8 mm) が頭部の後端にかかり、前方向へのずれを止めます。
  4. 装飾のタブをスロットへ差し込みます。外すときは装飾の根元をつまんで真上に引きます。

キャップ上面の左右の細長い窓は、頭部上面の LED 導光バーの位置に合わせてあります。LED の光は装着後も見えます。

寸法

単位は mm です。座標は頭部中心を x = 0、頭部シェル (MainBody) の前面を y = 0、頭部上面を z = 0 とします。

項目値出典
頭部の幅・高さ54.0 × 54.0MainBody の実測
頭部シェルの奥行46.7 (側壁は 44.7 まで)MainBody の実測
CoreS3 前面の位置y = -14.8製品奥行 61.5 から算出
上面と側面の稜の半径約 4.5MainBody 断面の実測
側面の LEGO 互換穴片側 3 個、y = 11.8 / 19.8 / 27.8、z = -10.0、直径 6.4MainBody の実測
上面の LED 導光スロットx = ±25.5、y = 5.5〜35.0、幅 1.6MainBody の実測
キャップ外形57.8 × 59.6 × 16.3設計値
頭部とのすき間0.3 (CoreS3 上面は 0.9)設計値
天板 / 側壁の厚さ3.0 / 1.6設計値
側壁の下端z = -13.0設計値
スロット12.3 × 3.4、深さ 3.0 (貫通)設計値
装飾の厚さ3.2、模様を含めて 4.0設計値

出典

印刷

検証

generate.py は次を検査し、1 つでも満たさない場合は異常終了します。結果は validation.json に記録します。

加えて、公式の StackChan-MainBody.stl をローカルで点群として照合しました。キャップ材料の内部に入る点は 76,747 点中 0、頭部上面とキャップ下面の最小距離は 0.3 mm でした。公式 STL を含めないため、この照合は CI では実行しません。

画像はすべて render.py が CAD モデルから描画します。頭部と台座は文脈を示すための簡略形状で、印刷用ではありません。

未検証事項

再生成

リポジトリの README の Nix またはコンテナの手順で、他の設計と同時に再生成・検査できます。この設計だけを再生成する場合は次を実行します。

nix develop --command .venv/bin/python stackchan-hats/generate.py
nix develop --command .venv/bin/python stackchan-hats/render.py

STL は三角形の順序を正規化して書き出すため、同じ環境ではバイト単位で同一になります。

ファイル内容
head.py頭部の計測値と包絡形状、可動範囲と障害物、掃引検査
cap.pyキャップの形状、スロットとタブの寸法
toppers.py装飾の 2D 輪郭と模様の定義
integral.py変形キャップの一体部分
generate.pySTL 出力と検査
render.py画像の描画

License: CC BY-SA 4.0。本設計は独立したアクセサリーであり、M5Stack の公式製品ではありません。M5Stack および StackChan は各権利者の商標または製品名です。