M5Stack入門|はんだ付け不要で始めるIoT電子工作
M5Stack入門|はんだ付け不要で始めるIoT電子工作
M5Stackは、約5cm四方のケースにESP32マイコン、カラー液晶、3ボタン、スピーカー、Wi-Fi/Bluetoothまで詰め込んだ小型開発デバイスです。電子工作で最初に立ちはだかるはんだ付けとブレッドボード配線を飛ばせるので、ArduinoやRaspberry Piのように部品を自分でつなぐ前提から、
M5Stackは、約5cm四方のケースにESP32マイコン、カラー液晶、3ボタン、スピーカー、Wi-Fi/Bluetoothまで詰め込んだ小型開発デバイスです。
電子工作で最初に立ちはだかるはんだ付けとブレッドボード配線を飛ばせるので、ArduinoやRaspberry Piのように部品を自分でつなぐ前提から、そのまま画面に何かを表示するところまで一気に進めます。
初心者が迷いやすい「どれを買えばいいか」という点も、この記事ではCore系、Stick系、Atom系の3系統を作りたいもの別に1分で選べるように整理します。
迷ったらBasicを基準に考えればよく、買ってその日に温湿度を画面へ出すところまで、機種選び、開発環境のセットアップ、Hello Worldの書き込み、Grove接続の4段階で進められます。
筆者が電子工作ワークショップで最初にM5Stackを渡すのは、はんだごてを使わなくても30分ほどで温湿度計が動き、「これなら続けられそう」と受講者の表情が変わる瞬間を何度も見てきたからです。
Groveコネクタ(HY2.0-4P)にケーブル1本でセンサーを挿せるので、極性やピンアサインに悩まずに済み、入門のつまずきがかなり減ります。
最初の書き込みで起こりやすい認識不良、書き込みエラー、MD5不一致も、PCが見失う順番から切り分けて潰していけば止まりません。
途中で挫折しないための道筋を最初に見せてから、最後はセンサーをつないで動かすところまで通しましょう。
M5Stackとは?はんだ付け不要でIoTが作れる理由
M5Stackは、約5×5cmの正方形ケースにWi-FiとBluetoothを内蔵したESP32マイコンを中心として、カラー液晶、3つのボタン、スピーカー、USB Type-C、バッテリーまで最初から詰め込んだ「全部入り」の小型開発デバイスです。
電子工作で最初につまずきやすい、部品を買い揃えて配線を組み立てる工程をほぼ飛ばせるので、画面に文字を出すところまでの距離が短い。
ワークショップでは、Arduinoのブレッドボード配線で手が止まっていた初心者ほど、M5Stackに持ち替えた瞬間に作業のテンポが上がる場面を何度も見てきました。
5cm四方に全部入り:液晶・ボタン・Wi-Fiが最初から付いている
見た目は小さいのに、できることはかなり多いのがM5Stackの面白さです。
ESP32が無線通信と制御の中心を担い、表示、入力、音、電源までが一体化しているため、単なる「マイコン基板」ではなく、最初から完成品に近い感覚で扱えます。
出張先のセミナー会場ではんだごてを持ち込めない場面でも、本体とケーブルだけで温湿度デモを成立させられたのは、この一体設計のおかげでした。
なぜはんだ付けがいらないのか:Groveコネクタの仕組み
はんだ付けが不要なのは、周辺部品がすでに基板上に実装されているうえ、外付けセンサーをHY2.0-4PのGroveコネクタにケーブル1本で挿すだけで接続できるからです。
一般的なArduino入門では、センサーやLEDをブレッドボードとジャンパー線でつなぎ、配線が増えるほど接触不良やピンの見間違いが起きやすくなります。
M5StackではI2C接続のセンサーを差し込むだけでよく、配線図とにらめっこする時間がほぼ消えるので、初心者は「動かす」ことに集中できます。
筆者の経験でも、配線に悩んでいた人ほどここで一気に理解が進みます。
ArduinoやRaspberry Piとどう違う?住み分けの考え方
Arduinoは、自分で回路を組む自由度が高く、LEDやモーターを一から設計したい人に向いていますが、配線知識が要ります。
Raspberry Piは小型PCとして強力で、OS管理やソフトの幅広さが魅力です。
これに対してM5Stackは、その中間にある存在で、マイコンの軽さに画面、電源、通信を足した「すぐ動く完成品寄り」の立ち位置になります。
だからこそ、最初の1台として扱いやすく、温湿度を表示するミニ気象計、ボタンを押すとスマホやチャットに通知が飛ぶ呼び出しボタン、Wi-Fi経由で家電状態を見える化するモニターのような用途にぴったりです。
Arduinoで基礎を学ぶのもおすすめですし、Raspberry Piでソフト寄りに広げるのもおすすめですが、M5Stackはその前段で「まず動く」を体験するのに向いています。
どの機種を選ぶ?作りたいもの別おすすめ早見表
M5Stackは見た目が似ていても、向いている使い方がかなりはっきり分かれます。
まずは「何を作りたいか」を先に決めると、買ったあとに迷いません。
画面の有無、バッテリーの有無、持ち歩くか据え置くかを軸に見ると、選ぶ基準が一気に整理されます。
迷ったらこれ:用途別おすすめ早見表
作りたいものがまだ固まっていないなら、最初の1台はM5Stack Basicがいちばん扱いやすいです。
画面で結果がすぐ見えて、情報量も多く、電子工作入門でつまずきやすい「何が起きているか分からない」を減らせます。
逆に、タッチ操作や音声まで使いたいならCore2、身につける小型デバイスならM5StickC Plus2、部屋に置く通信ノードやセンサーならAtom系が合います。
ワークショップでも、まず作りたいものを3つ挙げてもらってから機種を選ぶ流れにすると、「思っていたのと違った」という後悔がほとんど消えます。
| こんな人 / 作りたいもの | おすすめ機種 | 理由 |
|---|---|---|
| とりあえず何か作りたい初心者 | Basic | 画面付きの標準機で、用途を選ばず最初の1台にしやすいから |
| タッチ操作や音声を使いたい | Core2 | タッチスクリーン、振動モーター、マイクを足した上位機だから |
| 身につける / 持ち歩く小型デバイスを作りたい | M5StickC Plus2 | スティック型でバッテリー内蔵、携帯前提の設計だから |
| センサーを部屋に設置する通信ノードを作りたい | Atom系 | 超小型で据え置き向き、多くはバッテリーなしで使うから |
Core系・Stick系・Atom系の違いを一覧で比較
M5Stackの機種選びは、Core系・Stick系・Atom系の3系統で考えると分かりやすくなります。
Basicは横5cm角ほどの画面付き標準機で、Wi-Fi/Bluetooth内蔵のESP32、カラー液晶、3つのボタン、スピーカー、USB Type-C、バッテリーまでそろった「全部入り」です。
Core2はそこにタッチスクリーン、振動モーター、マイクを追加した上位機で、操作性や入出力の幅を広げたい場面に向きます。
| 系統 | 画面の有無 | バッテリーの有無 | サイズ感 | 主な用途 |
|---|---|---|---|---|
| Core系 Basic | あり | あり | 横5cm角の標準サイズ | 最初の1台、幅広い実験、表示付きの試作 |
| Core系 Core2 | あり | あり | 標準サイズ | タッチ操作、音声入力、通知や反応のある試作 |
| Stick系 M5StickC Plus2 | あり | あり | スティック型の小型 | 身につける機器、持ち歩くデバイス |
| Atom系 | なしまたは最小構成 | 多くはなし | Coreより一回り小さい超小型 | 通信ノード、室内センサー、据え置き設置 |
Stick系は、ポケットやストラップに収まるサイズ感が魅力です。
M5StickC Plus2のようにバッテリーを内蔵したモデルは、身につけて使う前提と相性がよく、操作部も最小限なので用途を絞った小型端末に向きます。
Atom系はさらに小さく、多くはバッテリーを持たず、机の上や壁際に置いたまま動かす設計です。
配線やスペースを増やしたくない通信ノード、部屋の片隅に置くセンサーにはこちらが素直でしょう。
初めての1台に最適なのはどれか
作りたいものがまだ決まっていないなら、Basicを選ぶのが自然です。
画面があるので動作確認がしやすく、配線も最小限で済み、トラブル対応の手がかりが多いからです。
初心者向けに10台以上まとめて教材をそろえる場面でも、情報の探しやすさと扱いやすさからBasicを基準機にしてきました。
まず結果が見える、という安心感があります。
目的が先にあるなら分岐は明快です。
小型・モバイル前提で作るならStick、設置型のセンサーネットワークを組むならAtomを選びましょう。
Core2は、画面操作や音声入力まで含めて「ひとつ上の体験」を作りたいときに向いています。
迷ったときはBasic、狙いが定まっているならStickかAtom、この切り分けで十分です。
開発環境の選び方:UIFlow・Arduino IDE・MicroPython
M5Stackの開発環境は大きく3つあり、最初は「どこまで自分でコードを書きたいか」で選ぶのが近道です。
UIFlowはブロックをつないで動かす入口として最もやさしく、Arduino IDEは作例の多さで壁を越えやすく、MicroPythonはPythonに慣れた人が学習コストを抑えて入れる選択肢になります。
順番を間違える必要はなく、動かす楽しさを先に取ってから移る考え方で十分です。
プログラミングが初めてなら:UIFlow
UIFlowは、画面上でブロックを組み合わせてプログラムを作るビジュアル開発環境です。
ブラウザで動くオンライン版と、PCに入れて使うデスクトップ版があり、内部ではMicroPythonが動いています。
コードを一文字も打たずにLEDを点けたりセンサー値を読んだりできるので、最初の30分で「自分で作ったものが動いた」という感覚をつかみやすいのが強みです。
ワークショップでは、あえて最初にUIFlowを使ってもらいます。
タイプミスで止まる前に結果が見えると、電子工作そのものへの苦手意識が薄れ、その後にArduino IDEへ移るときの離脱率が下がるからです。
最初の入口は、理解の深さよりも手を動かす勢いを優先したほうが進みやすいでしょう。
本格的に作りたいなら:Arduino IDE
Arduino IDEは、C++でコードを書く定番の開発環境です。
世界中に作例と解説が最も多く、本格的に作り込みたい人ほど恩恵を受けやすくなります。
ドライバを導入し、ボードマネージャーにM5Stackを追加して使う流れになりますが、この準備を越えると情報の海にアクセスできるのが最大の武器です。
筆者のワークショップでも、最初にドライバとボード追加でつまずく受講者は毎回一定数います。
そこで環境構築だけを別の手順書に切り出して配っています。
ここを一度越えると、行き詰まっても検索で解決策を拾いやすくなり、試作から改造までの自由度が一気に上がります。
自由に作り込みたいなら、Arduino IDEはおすすめです。
Python派なら:MicroPython
MicroPythonは、Pythonで書きたい人に向いた開発環境です。
VSCodeの拡張機能を入れて開発するため、普段からPythonを書いている人なら、文法や考え方の移植がしやすく、学習コストを低く抑えられます。
C++にいきなり飛び込むよりも、手元の知識をそのまま使えるのが扱いやすさにつながります。
Pythonでの試作に慣れているなら、M5Stackでもその感覚のまま進めてみてください。
UIFlowほど抽象化されず、Arduino IDEほど重くもないため、ちょうど中間の位置づけとして選びやすいはずです。
普段の仕事や学習でPythonを使っている人には、とてもおすすめの入り口になります。
完全未経験ならUIFlowで「動く楽しさ」を先に味わい、もっと自由に作りたくなったらArduino IDEへ移る流れが自然です。
Pythonに慣れているならMicroPythonを選べば、既存の知識を活かしながら進められます。
最初から完璧な環境を選ぶ必要はありません。
まず動かして、次に深めていきましょう。
Arduino IDEで最初の書き込み:画面に文字を出すまで
Arduino IDEで最初にやることは、画面に文字を出すところまで一気に進めることです。
ここでは失敗しにくい順番で、USBドライバとボード設定、M5Unifiedの導入、書き込みまでを3段階でつなげます。
最初のゴールは液晶にHello Worldが出ること。
この一歩を早く踏むほど、次にコードを変える意味がはっきりします。
Step1:USBドライバとボード設定を入れる
Arduino IDEでつまずく場面の大半は、この段階に集まります。
ポートが出てこないなら、まずUSBケーブルとドライバを疑うのが近道です。
たとえばBasic V2.7はCH9102Fを搭載しているため、そのドライバを入れてから、Arduino IDEのボードマネージャーにM5Stackを追加します。
ここを通しておくと、後の作業は「見つけるべき場所」が揃うので、書き込み時の迷いが減ります。
UIFlow、Arduino IDE、MicroPythonの3つを比べると、入り口の性格がはっきり分かれます。
UIFlowはブロックを組むビジュアル開発環境で、ブラウザ版とデスクトップ版があり、内部はMicroPythonで動きます。
Arduino IDEはC++で書く定番環境で情報量が最も多く、MicroPythonはVSCodeの拡張機能を入れて進める方法です。
プログラミング未経験ならUIFlowから始めるのがし、最初から制御の幅を広く持ちたいならArduino IDEが向いています。
コードを読み書きする感覚を早く育てたいなら、MicroPythonも選びやすいでしょう。
Step2:M5Unifiedライブラリを入れてサンプルを開く
Arduino IDEで今の標準的な始め方は、ライブラリマネージャーでM5Unifiedを検索して入れることです。
以前は機種ごとに別ライブラリを使い分けていましたが、M5Unifiedは複数機種を共通のコードで扱えるので、機種が変わっても学び直しが少なくて済みます。
最初からこれで覚えておくと、後で別のM5Stack系ボードに触れたときも書き方が崩れません。
サンプルも豊富で、入門の摩擦が低いのが強みです。
コードは自分でゼロから書かなくて構いません。
ファイル→スケッチ例→M5Stack→Basics→HelloWorldから呼び出せるので、まずは既製の動く例をそのまま使ってみてください。
ここで見るべきなのは、どんな命令を書くかより、サンプルがちゃんと開けるか、編集画面に読み込めるかです。
動くひな形を先に持つと、後から一行ずつ意味を確かめやすくなります。
Step3:ポートを選んで書き込み、Hello Worldを表示
本体をUSBで接続したら、ツール→ポートで正しいCOMポート(COMx)を選びます。
選択できたら、左上の書き込みボタンで転送しましょう。
接続が安定していれば、書き込みが終わった時点で液晶にHello Worldが表示されます。
筆者は新しい機種を触るたびに、まずこの最小の成功だけを書き込みます。
導通と書き込み経路が先に確認できるので、複雑なコードで止まったときも原因を切り分けやすいからです。
ここまで来れば、仕組みはほぼ同じです。
表示する文字を変え、色を変え、ボタン入力を足していけば、画面の向こうで何が起きているかを少しずつ理解できます。
最初のHello Worldは終点ではなく、差し替えの起点です。
ここで流れをつかんでおくと、次の応用もおすすめしやすくなります。
センサーをつなぐ:温湿度を画面に表示してみる
Groveケーブルを1本挿すだけで温湿度センサーがつながると、電子工作のハードルは一気に下がります。
ENV III相当のユニットなら、付属のHY2.0-4P Groveケーブルを本体のPORT A(I2C)へ差し込むだけで配線が終わり、極性やピンアサインを気にする場面がありません。
ワークショップでも、この瞬間に「え、これだけ?」と声が上がるのが定番です。
ENV III相当ユニットはSHT30が温湿度を、QMP6988が気圧を担当し、I2Cでやり取りします。
温度は-40〜120℃、0〜60℃では±0.2℃前後の精度、湿度は10〜90%RHまで扱えるので、机の上に置くミニ気象計として十分に使えます。
筆者も自宅の机に置きっぱなしで常時表示させていますが、はんだ付けゼロで作ったものが毎日役に立つ、という事実ほど初心者を納得させる材料はありません。
Groveケーブルを挿すだけ:配線はこれで終わり
配線は本当に単純で、別売りで揃えるものもほとんど増えません。
必要なのはM5本体、ENV III相当ユニット、そして付属のHY2.0-4P Groveケーブルだけです。
PORT A(I2C)に挿した時点でバス接続まで終わるので、ブレッドボードもジャンパワイヤも要りません。
配線に身構えていた受講者ほど拍子抜けしますが、その軽さこそがM5Stackの入口として強い理由でしょう。
温湿度センサーから値を読み取るコードの考え方
画面に数値を出す流れは、細かな文法より型で覚えるほうが早いです。
まずセンサー用ライブラリを入れ、次に初期化して値を読み取り、最後にM5の画面表示関数で温度と湿度を描画します。
この3段階を押さえておけば、コードが変わっても考え方はそのまま使えます。
センサーを挿す→値を読む→画面に出す、という順番です。
もっとも、最初から完璧な表示を作る必要はありません。
温度だけ出す、湿度だけ出す、次に気圧を足す、というふうに1項目ずつ増やしていけば、どこでつまずいたかも見つけやすくなります。
次に試したいセンサーユニットの選び方
最初の温湿度表示が動いたら、同じPORTに別のGroveユニットを差し替えてみましょう。
M5Stackには明るさ、人感、距離、CO2などのユニットがあり、いずれも挿すだけで使えるのが魅力です。
ここで学ぶべきなのは個別のセンサー名ではなく、共通の接続と読み取りの流れです。
同じ手順を繰り返すだけで、部屋の明るさを見たり、人の動きを検出したり、空気の状態を見たりと、作品の方向性が一気に広がります。
別のユニットに差し替えても、やることはほぼ変わりません。
ライブラリを選び、初期化し、値を読み、画面へ出す。
この共通化が効くので、次に何を作るかを考える時間が楽しくなります。
まずは温湿度から始めて、慣れたら別のセンサーにも触ってみてください。
おすすめの進め方です。
初心者がつまずく3大トラブルと対処法
M5Stackの初期セットアップでつまずくのは、配線そのものよりも「PCに見えているか」「書き込みが始まるか」「途中で落ちるか」の切り分けです。
ここを順番に確認すると、原因がケーブル、ドライバ、ポート設定、あるいはフラッシュの状態なのかを短時間で絞れます。
動かないと焦りますが、初心者が通る道でもあります。
ひとつずつ潰していきましょう。
PCがM5Stackを認識しないとき
ワークショップで「動かない」と相談されたとき、まず聞くのはポートに機種名が出ているかです。
ここが見えないなら、原因の半分はケーブルかドライバにあります。
特にUSB-C to USB-Cケーブルは充電だけでデータ通信できない製品が混じりやすく、USB-A変換やUSB2.0ハブ経由に変えるだけで認識することがあります。
筆者も新品の安価なUSB-Cケーブルで書き込めず、小一時間ほど原因探しに費やしたことがあり、それ以来データ通信対応ケーブルを先に選ぶようにしています。
まずはケーブル、次にドライバ、最後にポートの順で確認しましょう。
書き込みが途中で止まる・エラーになるとき
書き込みが始まるのに途中で止まる場合は、Type-Cコネクタの上下を逆に挿していないかを見直します。
接触はしていても通信が不安定になり、書き込みエラーだけが出ることがあるからです。
失敗した直後は電源ボタンを2秒以上長押しして一度状態を落ち着かせ、もう一度書き込みを試してください。
M5GoやFireではボトム部分を外すと通るケースもあるので、筐体が邪魔していないかも確認するとよいでしょう。
慌てず再実行するだけで通る場面は少なくありません。
『MD5 does not match』が出たとき
A fatal error occurred: MD5 of file does not match data in flash が出ると、フラッシュメモリの内容が壊れている状態を疑います。
書き込みデータ自体は送れていても、Flash側の古い内容と整合しないために止まるので、単純な再書き込みでは抜けないことがあります。
この場合はesptoolでFlashを初期化、つまり消去してからやり直すと復旧できます。
エラー文言をそのまま検索すると、同じ症状で解決した例にたどり着きやすいのも救いです。
表示された文をそのまま手がかりにしましょう。
まずPCが認識しているかを見て、次に書き込みが始まるかを確認し、最後に途中で落ちるかを追うと、原因は自然に絞れます。
見えていないなら接続まわり、始まらないなら選択や設定、途中で落ちるなら接触やFlashの状態、と順に切り分ければ十分です。
エラーは初心者なら誰でも通る道で、恥ずかしいことではありません。
落ち着いて進めてみてください。
大手メーカーで組込みシステムの開発に15年従事。Arduino・Raspberry Piを活用した自作IoTデバイスの制作実績多数。電子工作の基礎から応用まで、実務経験に基づいた解説を得意とする。
関連記事
Raspberry Pi 5でできること15選と旧機種の性能差
Raspberry Pi 5は、Cortex-A72 1.5GHzからCortex-A76 2.4GHzへ刷新され、Pi 4では「一応動く」止まりだったブラウジングや常用デスクトップを、実用域へ押し上げた世代です。
ESP32を電池で長く動かすDeep Sleep設定
ESP32は、Wi-Fi送信で80〜250mAを消費する一方、Deep Sleepでは10μA前後まで落とせる、電池駆動の伸びしろが極端に大きいマイコンです。2016年に登場して以降、屋外センサーや小型IoTでよく使われてきましたが、寿命を決めるのは瞬間の電流ではなく平均電流であり、
Matterとは|対応デバイスの選び方と始め方
Matterは、Apple・Google・Amazon・Samsungなど280社以上が参加するCSA(Connectivity Standards Alliance)が2022年秋にMatter 1.0として公開したスマートホーム機器の共通言語です。
はんだ付けのコツ 初心者向け|失敗しない7つのポイント
はんだ付けは、はんだを盛れば付く作業ではなく、ランドとリードの両方を3〜4秒だけ同時に温め、接合部にはんだを流してすっと離すところで仕上がりが決まります。温度の目安は鉛入りでは316〜343℃、鉛フリーでは343〜371℃で、長く当てるより短時間で終えるほうが失敗が減ります。