はじめに
M5StackとLEGOを組み合わせて何か作ることがよくあるのですが、マイコンをLEGO作品に組み込もうとすると置き場所や組み込み方に地味に困ります。
普通の開発ボードだとLEGO作品の外側に固定したり、無理やり内部にスペースを作ったりする必要がでてきます。
LEGO向けの電子パーツも色々ありますが、「いつも使っているM5Stackを、そのままLEGOブロックとして使えたら便利なのでは?」と思い、M5Stack NanoC6を2x4 / 2x3ブロックサイズに収めた 「M5Brick」 を作ってみました。
完成したもの
できたものがこちらの写真の真ん中2つです。
NanoC6を入れた状態でも、
- USB Type-C
- Groveコネクタ
- RGB LED
がそのまま使えます。
なのでUSBから給電・プログラム書き込みをしつつ、Groveからセンサーやサーボなどを接続できます。
またNanoC6自体がWi-FiやBLEに加え、Thread、Zigbeeと様々な無線規格に対応しているので、LEGO作品の中にかなり小さな無線対応マイコンを仕込めます。
実際に動かしている様子も含めた紹介動画がこちらです。
どうやって作ったか
M5Brickは、ざっくり以下の流れで作りました。
- LEGOブロックとNanoC6の実寸を測る
- Bambu Studioで3Dモデルを作る
- 3Dプリントして、実物に合わせて微調整する
特に3番目は一度では全然決まらず、最終的にはかなり細かい寸法調整を繰り返しました。
まずは実寸を測る
最初に、手元にあるLEGOブロックと分解したNanoC6をダイソーのデジタルノギスで測りました。
測り方や記録のお作法も良く分からなかったので、パワポに写真と数字をペタペタしました。
NanoC6については、
- 基板サイズ
- USB Type-Cコネクタの位置
- Groveコネクタの位置
- 基板上の部品が干渉しそうな箇所
などを実物から測りました。
3Dモデルを作る
次に測ったデータをもとに3Dモデルを作るのですが、私は3Dモデリング経験がほとんどありませんでした。
FusionなどのCADをちゃんと覚えてから作ることも考えましたが、今回形状自体はシンプルだったので、Bambu Studio上でオブジェクトを組み合わせながら直接作りました。
これが正しい使い方なのかは分かりません…
基本的には、
- 箱を作る
- 内側をくり抜く
- スタッドを付ける
- 下側もいい感じにする
- USB / Grove用の開口部を作る
- NanoC6が収まるように内部を調整する
という感じで作りました。
複雑な曲面等がないので、Bambu Studioだけでも意外となんとかなりました。
むしろ今回は「少し変える → スライス → 印刷 → 確認」を何度も繰り返したので、Bambu Studio上ですぐ修正してそのまま印刷できるのは便利でした。
NanoC6を入れるだけでも結構ギリギリ
外側をLEGO互換サイズにする一方で、内側にはNanoC6を収める必要があります。
単純に基板が入ればいいわけではなく、
- NanoC6本体が入る
- USB Type-Cケーブルが挿せる
- Groveケーブルが挿せる
- RGB LEDが見える
- ケースとして最低限の強度を残す
- 上下にはLEGOを接続できる
- NanoC6を無理なく出し入れできる
という条件を同時に満たす必要があります。
特に2x3サイズはかなりギリギリ、というかドンピシャなサイズで、作っている途中で「NanoC6、これを見越して設計されたのでは?」と思うくらいでした。
3Dプリントして調整する
モデルができたら3Dプリントします。
ここまでは「LEGOと同じ寸法で作れば普通にはまるだろう」と思っていたのですが、実際にはここからが一番大変でした。
3Dプリンターでは、設計データ上で同じ寸法にしても、
- フィラメント
- 印刷速度
- 冷却
- 流量
- 底面の膨らみ
- プリンター自体の寸法精度
などによって実際の仕上がりが微妙に変わります。
LEGOの場合、この微妙な差がそのままはまり具合に影響します。
少し小さいと固すぎて入らず、逆に少し大きいと簡単に外れてしまいます。
そのため、
モデルを修正
↓
3Dプリント / 組み立て
↓
LEGOに付けてみる
↓
はまり具合を確認
↓
またモデルを修正
を何度も繰り返しました。
最終的には、モデル上の寸法を部分的に0.01mm単位で変更しながら調整しています。
0.01mmというと誤差みたいな数字に見えますが、実際には0.05mmくらい変えるだけでもはまり具合が結構変わりました。
こうなってくると普段はまず意識しないような「0.1mmでかすぎ」という感覚になってきます。
幸いM5Brick自体が小さいので、一回の試作で使うフィラメントはそれほど多くありません。
失敗しては印刷、少し直してまた印刷、というのをかなり繰り返しましたが、材料を大量に消費せず試せたのは助かりました。
STEM教育と相性が良い
今年の夏休みの自由研究として、子どもがM5Brickを使ってLEGOカーを作りました。
実際に使ってみて、M5BrickはSTEM教育との相性もとても良いと感じました。
LEGOなので、車体自体は普段遊んでいるのと同じ感覚で自由に組み立てられます。
そこにM5Brickとサーボなどを追加すると、自分で作ったものをそのままプログラムで動かせるようになります。
特に良かったのがタブレット + UIFlow 2.0の組み合わせです。
UIFlow 2.0はブラウザ上で動くブロックプログラミング環境なので、コードをキーボードで入力しなくても、タブレットでのタッチ操作でブロックを並べながらNanoC6のプログラムを作れます。
NanoC6をWi-Fiに接続しておけば、UIFlowから無線でプログラムを実行できるので、
LEGOを組み立てる
↓
タブレットでプログラムを変更する
↓
実際に車を動かしてみる
↓
思った動きと違ったらLEGOやプログラムを直す
↓
また動かす
というサイクルをかなり自然に繰り返せました。
これが個人的にはとても良い開発体験だと思いました。
「プログラミングを勉強する」というよりも、「車をこう動かしたいから、ブロックをこう変えてみる」という形で、作りたいものが先にあって、そのためにプログラムを試行錯誤できます。
しかも結果が画面の中だけではなく、自分で組み立てたLEGOが実際に動くので、変更したプログラムと現実の動きの関係も分かりやすいです。
今回、実際に子どもが自由研究としてLEGOカーを作る様子を見ていて、「作る → プログラムする → 動かす → 考えて直す」という一連の流れをひとつの遊びの中で体験できるのは、M5Brickの良い使い道だと感じました。
GitHub (STL / 3MF Download)
M5BrickのSTL / 3MFファイルはGitHubで公開しています。
2x4 / 2x3、それぞれX軸カット / Y軸カットのデータを置いてあります。
印刷時はプリンターによって嵌合具合が変わる可能性があるため、その場合はスライサー側で微調整してみてください。
制作過程や作例についてはHacksterにもまとめてます。
M5Stackコンテストにも応募してみた
このM5Brickを M5Stack Global Innovation Contest 2026 というM5Stackの作品コンテストに応募してみたところ、Special Mentions - Creative Innovation Awardをいただきました🎉
(エントリーしたときは、作品としては電子工作もプログラムもないSTLデータだけのものだったので、そもそもエントリー要項満たせてるのか…?という感じでしたが…)
最初は自分で使うLEGO用ケースくらいの感覚で作り始めたものだったので、こういう形で評価してもらえたのは嬉しかったです。








