DX(デジタルトランスフォーメーション)やIoT(Internet of Things;モノのインターネット)という言葉が多くのメディア等でも注目されるようになった昨今。センサなどを使ってマイコンの制御を手掛けるのはハードウェア系のエンジニアのみに限らず、Web・アプリケーション開発のエンジニアや趣味で電子工作を楽しんでいる人など、ソフトとハードなどの境界なく興味のある人が誰でも着手できるような時代になってきました。
この記事では、電子工作・ロボット制御・IoT機器開発など多様な分野で人気急上昇のマイコンモジュール「M5Stack(エムファイブスタック)」についてご紹介していきます。
目次
- M5Stackとは
- M5Stackの基本機能
- 開発環境(Arduino IDE / UIFlow)
- M5Stackの使い方をどうやって身につけていくか
- M5シリーズの代表的な製品と特徴
- M5拡張モジュール
- こんなことができるM5Stack
- M5Stackでアイデアをカタチにしてみよう
1. M5Stackとは
M5Stack(エムファイブスタック)は、約5cm×5cmの正方形のケースの中にWi-FiとBluetoothによる無線通信機能を備えたCPU(ESP32)をはじめ、カラー液晶ディスプレイ・プッシュボタン・スピーカ・microSDカードスロット・バッテリーなどの周辺部品がひとつのモジュールにまとまっている、小型のマイコンモジュールです。
IoT機器を開発する際に頻繁に使われる機能が上述のように標準搭載されているため、液晶ディスプレイやmicroSDカードスロットなどを使うためにわざわざ配線をする必要がありません。ハードウェア開発の手間が大幅に削減され、ソフトウェア開発に専念することができる汎用性の高さから人気が高まっています。
「M5Stack」は「M5シリーズ」と呼ばれる製品群の代表的なモデルとされており、M5Stack以外にもM5StickC・M5Camera・M5StickVなど、名前の先頭に「M5(エムファイブ)」とついたモジュールがラインナップされています。これらのモジュールの詳細については後述します。
2. M5Stackの基本機能
M5シリーズの多くはプラスチックケースの中にマイコンや周辺部品が組み込まれており、はんだ付けやブレッドボードでの配線をしなくても使えるようになっています。M5シリーズは機種ごとに標準装備されている機能が異なりますが、ここでは例として最も基本的な機種である「M5Stack Basic」の機能について説明します。
CPU
M5StackにはESP32(Espressif Systems製マイコン)が搭載されており、GPIO(汎用入出力)・A/Dコンバータ・シリアル通信ポートなどをはじめとしたワンチップマイコンの一般的な機能に加え、Wi-FiとBluetoothによる無線通信の機能も搭載されています。
これらの機能を使って、センサによる監視を行ったり、LEDやモータの制御、無線通信によって他のデバイスやアプリケーションと連携したりすることができます。
無線通信(Wi-Fi, Bluetooth)
内蔵CPUのESP32の機能によって、Wi-Fi(2.4GHz帯)とBluetoothによる無線通信をおこなうことができます。無線通信機能を使う場面の例としては、ロボットを遠隔操作するとき、IoTシステムでセンサの監視をするとき、PC・タブレットなどのデバイスとデータを送受信するとき、M5シリーズのデバイス同士でデータを送受信するときなど、複数デバイスで通信を行う場面でよく用いられます。
ディスプレイ
本体表面には320×240カラーTFT液晶ディスプレイ(2インチ)が搭載されており、文字や数値などの情報表示や、グラフィックの描画などができます。プログラム開発中のデバッグ作業で数値や状態を表示させるのにとても便利に使うことができ、フルカラーでの描画も可能なため、きれいなグラフィックで情報表示をさせたり、顔のイラストを表示させてロボットの顔にしたりと、多様な使い方に利用できます。
ボタン
本体表面のディスプレイ下部に、プッシュボタンが3つ備え付けられています。ボタンが押されたときに何かの動作を実行させるプログラムの作成は、マイコンを使ってみるときに必ずと言っていいほど通る道ですが、M5Stackではボタンや抵抗器をわざわざブレッドボードで配線することなくボタンを使えるのでとても便利です。
microSDカードスロット
本体側面にmicroSDカードスロットが搭載されており、microSDカード内のデータを読み込んだり、データを書き込んだりできます。
※M5StackでmicroSDカードを使用する際は、容量16GBまでのカードしか使うことができません。32GB以上は使用不可のため、microSDカードを購入する際にはご注意ください。
Grove拡張ポート
Seeed Technology社から製造・販売されている「Grove」と呼ばれる製品群はすべて4ピンの同じ規格のコネクタとケーブルによって接続できるようになっています。CPU側のコネクタと周辺モジュール側(センサやモータードライバなど)のコネクタがどちらもGrove対応であれば、Grove対応のケーブルによって(ケーブルを自作しなくても)簡単に接続することが可能です。
※Seeed公式サイトではGroveについて「Grove is an open-source, modulated, and ready-to-use toolset.(訳:Groveはオープンソースで、モジュール化された、すぐに使うことができるツールセットのこと)」と説明されています。
ただし、Grove対応コネクタの形状になっている端子でも「I2C通信対応のポート」「汎用入出力対応のポート」「UART通信対応のポート」と用途が異なる複数の通信ポートを持っているM5シリーズの機種や、周辺モジュール側でどの通信方式に対応できるかが限られているものもあるので、ケーブルで接続する際には注意が必要です。
例として、「M5GO」や「M5Stack Fire」では「ポートA:I2C用」「ポートB:I/O用」「ポートC:UART用」と決められており、端子の色がそれぞれ異なる色になっています。Grove対応コネクタの電源ピンの配置は統一されているので、接続場所を間違えても致命的な故障になりにくいようになっていますが、接続の際はよく確認しましょう。
バッテリ
M5Stackの筐体内にはリチウムイオンポリマーバッテリ(3.7V, 150mAh)が内蔵されており、外部給電なしでも内蔵バッテリによって動作させることもできます。長時間動作をさせたい場合は、M5StackのUSB端子(Type-C)にUSBケーブルを挿入すれば給電することができます。
その他入出力(スピーカ・マイク・IMU等)
M5StackにはI2Sスピーカが搭載されているため、任意の周波数のビープ音や、音楽ファイル(MP3, WAV形式)を再生させることができます。また、M5Stack Basicには搭載されていませんが、マイクや9軸IMU(加速度・ジャイロ・地磁気)、LEDバーなどが搭載されている機種(M5Stack M5GO, M5Stack Fireなど)もラインナップされているので、購入を検討する際にはこれらの機能の有無を考慮して機種選定をするのも良いでしょう。
3. 開発環境(Arduino IDE / UIFlow)
M5Stackのプログラミングをする際に、多くの人が利用している開発環境としては「Arduino IDE」と「UIFlow」のどちらかを選んで使う場合が多いです。
「Arduino IDE」は、C/C++をベースとして開発できるプログラミング環境です。C言語に慣れている人や、Arduino UNOなどのマイコンボードを使った経験がある人はこちらで無理なくM5Stackのプログラミングをすることができると思います。
「UIFlow」は、M5Stack社が開発したブロックを組み合わせることで、プログラミングできる開発環境で、Webブラウザを使ってプログラムを作成し、Wi-Fi経由の通信によるプログラムが実行されます。C言語でのコーディングに慣れていない人でも、このブロックによるプログラミングであれば抵抗感なく使ってみることもできるかもしれません。
ただし、UIFlowでプログラミングをするには、M5Stack本体とPC間でWi-Fi接続するためのファームウェアを書き込む必要があることから、(Arduino IDEと比べると)最初の環境構築が少々難しいです。そのため、筆者の主観にはなりますが、UIFlowは初心者向けの授業やワークショップを実施するときに、参加者の方にM5Stackでプログラミングに親しんでもらうことを目的として使うことをおすすめします。環境構築は講師が事前に行い、プログラミングの部分を参加者に体験してもらうといった運用をすれば、参加者に難しい操作をさせることなくワークショップを実施することができるでしょう。
なお、UIFlowを使う際のマニュアルは英語・中国語・日本語で配布されているため、はじめての環境設定も安心して取り組むことができます。
UIFLow – M5Stack
https://m5stack.com/uiflow
4. M5Stackの使い方をどうやって身につけていくか
周りにM5Stackを使ったことのある人がいる場合は、その人に聞いて勘所をつかむのがよいですが、実際はひとりで始めてみる方が多いと思いますので、ここではひとりで学習を進められる方法を紹介いたします。
①書籍を購入して、その内容に沿って進める
②WEB記事を参考に、その内容に沿って進める
①書籍を参考にする場合
開発環境のセットアップなど環境設定に不安を感じる場合は、書籍を書店やネットショップから購入して読み進めることをおすすめします。もちろんインターネットで検索すれば多くの情報は得られますが、初学者にとっては読み進めるだけで知識を的確に得ることができるのはとてもありがたいことです。教科書を買うような気持ちで1冊は持っておくと、勉強のモチベーションも上がってきます。
例として、M5Stackの使い方が解説されている書籍をピックアップしました。「ロボット」や「IoT」などのキーワードがタイトルや目次などからも見られますので、ここで紹介したものに限らず、気になった書籍は買ってみると良いかもしれません。
②WEB記事を参考にする場合
DevicePlusでは、M5Stackを使った工作例として、観葉植物育成デバイスやリモコンカーの製作行程を紹介しています。ソースコードなども掲載されていますので、M5Stackを使って何か作るときはぜひ参考にしてみてください。
M5Stackで手軽に作る観葉植物育成デバイス 第1回:植物育成デバイス制作の準備
Arduino互換機(M5Stack)とセンサで作るミニリモコンカー! 第1回:小型Arduino互換機(M5Stack)で電子工作を楽しむ
Arduino互換機(M5Stick-C)とセンサを使った衝突回避機能付きリモコンカーを作ろう!
5. M5シリーズの代表的な製品と特徴
M5シリーズの製品群の中には「STACKシリーズ」「STICKシリーズ」「ATOMシリーズ」「CAMERAシリーズ」などがあり、それぞれマイコンモジュールや周辺モジュールの形状やサイズなどの規格がシリーズごとに決められています。
STACKシリーズ
STACKシリーズは約5cm×5cmの正方形のケースの中に各種機能が収められている、M5シリーズの最もスタンダードなシリーズです。先に解説した「M5Stack Basic」はSTACKシリーズの機種のひとつです。
他のシリーズと比べたときの最大の特徴が、320×240ピクセルのカラー液晶ディスプレイで、文字やグラフィックを視覚的に見せることができます。
STACKシリーズの主な機種としては「M5Stack Basic」「M5Stack Gray」「M5Stack M5GO」「M5Stack FIRE」「M5Stack Core2」などがありますが、製造中止となり販売代理店の在庫限りとなっている場合もありますので、入手できる機種を選びましょう。
STICKシリーズ
STICKシリーズはSTACKシリーズと比べてコンパクトなボディになっています。STICKシリーズの「M5StickC Plus」は、1.14インチの液晶ディスプレイやボタン、Wi-Fi・Bluetoothなどが搭載されている点はSTACKシリーズと似ていますが、赤外線トランスミッタやI2Sマイク、6軸IMUなどが搭載されているため、家電を操作するなどの用途や、コンパクトな機器を製作したいときなどによく利用されます。STACKシリーズより安価であることも魅力的です。
ATOMシリーズ
ATOMシリーズはM5StickCよりも更に小さいサイズ(24mm×24mm)の機種で、「ATOM Lite」と「ATOM Matrix」がラインナップされています。STACKシリーズと同様にWi-Fi・Bluetoothによる通信ができますが、本体表面はとてもシンプルな構造です。なお、どちらの機種もバッテリは内蔵されていないため、USBケーブルか本体裏面のピンから電源供給をする必要があります。
「ATOM Lite」は、表面の中央にLEDが1個と、プログラム可能なボタンが1個搭載されています。「ATOM Matrix」は、本体表面にLEDマトリックス(RGB, 5×5)が配置されており、この下にプログラム可能なボタンが配置されています。
CAMERAシリーズ
CAMERAシリーズは他のシリーズと比べて特徴的な製品群で、本体にカメラが搭載。一言でカメラが搭載されているといっても、用途によっていくつかの機種がラインナップされています。ここではCAMERAシリーズの代表例として「M5StickV」をご紹介します。
「M5StickV」はESP32が搭載されていないため、Wi-Fi・Bluetoothによる無線通信機能は備えていない機種ですが、代わりにKendryte K210というESP32よりもパワフルなCPUを搭載したAIカメラです。高性能なニューラルネットワークプロセッサ(KPU)とデュアルコア64 bit RISC-V CPUが搭載されており、効率的な画像処理を行うことができます。
その他
M5シリーズでは上記のシリーズ以外にもユニークな機種がラインナップされています。ここでは「M5Paper」と「M5Stamp Pico Mate」をご紹介します。
「M5Paper」は、タッチ操作可能な電子ペーパーを搭載した機種です。本体表面に16階調グレースケールに対応した4.7インチ電子ペーパーと、静電容量タッチスクリーンが搭載されています。IoT機器や制御装置の操作パネルとしての利用が想定されています。
「M5Stamp Pico Mate」は、他のシリーズとは大きく異なり本体がプラスチックケースで囲われている構造でなく、一般的なマイコンボードのような最小構成での製品です。また、USBシリアル変換の機能がないため、別途USBシリアル変換の基板・ケーブル等が必要となります。基板にはピンヘッダをはんだ付けできるため、ブレッドボードやプリント基板への実装がしやすい仕様となっていす。
6. M5拡張モジュール
M5シリーズはマイコンモジュールのサイズがシリーズごとに決められており、それに接続できる拡張モジュールもピン配置やケースの大きさがシリーズごとに規格化されています。
例えばSTACKシリーズの場合、拡張モジュールはM5Stackの本体と同じ約5cm×5cmのサイズになっており、M5Stackの底面カバーを取り外して、その下に拡張モジュールを積み重ねるように接続することで、ケーブルなしで本体と接続することができるでしょう。
M5StickC用の拡張モジュールは「Hat(ハット)」と呼ばれ、M5StickC本体のピンソケットにHatのピンヘッダを挿すだけで接続できます。
ATOMシリーズの拡張モジュールも同様にATOM本体のピンソケットに拡張モジュールのピンヘッダを挿すだけで接続できます。ATOMシリーズの拡張モジュールは、一部のモジュールでDINレールへの取り付けに対応した商品もあることから、産業用機器周辺の現場への設置も想定されていることがわかります。
7. こんなことができるM5Stack
M5シリーズは趣味の電子工作として使うことはもちろん、実用的なシステムもアイデア次第で開発することができます。ここではYouTubeに投稿されている工作例を見てみましょう。
Smart Plant Watering System Using M5Stack CORE2 ESP32 Controller
M5Stack Core2と環境センサユニット(温湿度センサ)と電動ポンプを使って、植物への水やりを自動化するシステムを製作しています。このシステムのプログラムはUIFlowでつくられています。
Smart Library System
M5Stack FIRE(2台)とRFIDリーダーとサーマルプリンタ(レシート紙用プリンタ)を使って、図書館の書籍貸し出し管理システムを製作しています。RFIDタグが入っている本と会員カードを使って貸し出しの処理を行うことができます。
※RFIDリーダーは日本国内で使用する際は技適の認証を取得している機器に限られますので、国内の代理店で販売されている認証済みのモジュールをご利用ください。
Industrial applications with the M5
M5Stackを使って自作の工作機械を製作しています。この工作機械はアルミフレームを設置して切断位置や穴あけ位置を指定(コードを入力)すると、自動的に加工することができます。
8. M5Stackでアイデアをカタチにしてみよう
M5シリーズを使うことにより、電気的なシステムやロボットを製作する際の配線やはんだ付けの手間が削減されるため、「アイデアを思いついたらすぐに作る」ことのハードルがグッと下げられるようになりました。
Twitterでも #M5Stack のハッシュタグで検索をかけると、M5Stackを使った作品が多く見られます。皆さんもM5Stackを使って作品を製作した際には、ぜひこのハッシュタグをつけてツイートしてみてください。
※本記事に掲載している製品の画像はM5Stack社より許可を得て掲載しています。
https://m5stack.com/