M5Stack

比べれば分かる!ラズパイ・Arduino・M5Stackの特徴と使い分け【第3回】

M5Stackの強みと特徴をラズパイ、Arduinoと比べてみた

 

第1回:Raspberry Pi(ラズパイ)の強みと特徴をArduino、M5Stackと比べてみた
第2回:Arduinoの強みと特徴をラズパイ、M5Stackと比べてみた

 

「電子工作を始めてみようかな…M5Stackっていうのがあるみたいだけど、他にもラズパイとかArduinoとかもある…?」と、“初心者のわたしがどれから始めればいいのだろう問題”で悩んでいる方も多いのではないでしょうか。

一方、電子工作に慣れている方がそういった悩みを初心者の方に聞かれても、「テキトーに好きなのから始めたらいいよ!」「その作品のアイデアなら…どれ使っても”技術的には可能”だね」としか返答ができないこともありがちで、どのようにすれば次のステップへ進める手段を考えるのが難しいというのもまた事実です。

 

今回連載では、電子工作の分野でさまざまなボードがある中で「こんなときはRaspberry Pi(以下、ラズパイ)を、こんな時はArduinoを、こんな時はM5Stackを使おう」とその使い分けを3つのマイコンを比較しながら紹介していきたいと思います。

最終回となる第3回は「M5Stack」について、ラズパイやArduinoと比較して見ていきながら、使用する際のオススメできる場面も含め、M5Stackの強みや特徴についてご紹介していきたいと思います。

 

目次

  1. M5Stackとは
  2. こんなときはM5Stackから始めよう
  3. M5Stackの強みや特徴
  4. 他のボードのほうがいい”かもしれない”ケース
  5. まとめ

 

1. M5Stackとは

M5Stack(エムファイブスタック)は約5cm×5cmの正方形のケースの中にWi-FiとBluetoothによる無線通信機能を備えたCPU(ESP32)をはじめ、カラー液晶ディスプレイ・プッシュボタン・スピーカ・microSDカードスロット・バッテリーなどの周辺部品がひとつのモジュールにまとまっている、小型のマイコンモジュールです。

M5Stack BASICの外観

「M5Stack」は「M5シリーズ」と呼ばれる製品群の代表的なモデルとされており、M5Stack以外にもM5StickC・M5Stamp・M5StickVなど、名前の先頭に「M5(エムファイブ)」とついたモジュールがラインナップされています。

 

【M5Stackについての詳細はこちら】

人気急上昇中のマイコンモジュール「M5Stack」とは?特徴や使い方をわかりやすく紹介!

 

2. こんなときはM5Stackから始めよう

「最近はM5Stackを使った電子工作が盛り上がっているみたい。でも、初心者向けの書籍はラズパイやArduinoが多いようにも見えるけど…」と、どのボードから入門すればいいか迷ってしまう方は、ご自身がどんなものを作りたいのか、どんな作業が得意かを考えながら、以下の情報をたよりに検討してみるとよいでしょう。

 

①    Wi-FiやBluetoothでの無線通信をやってみたい

②    Web系やアプリのプログラミングをしたことがある

③    IoTにチャレンジしてみたい

④    回路や配線で悩まずに進めたい

 

①Wi-FiやBluetoothでの無線通信をやってみたい

M5Stackは、内蔵CPUのESP32の機能としてWi-FiとBluetoothによる無線通信機能が標準搭載されています。Arduinoボードを使って無線通信をするときは対応する無線モジュールを別途接続する必要がありますが、M5Stackは無線通信機能が標準搭載されているため比較的簡単に導入することができます。

 

②Webやアプリのプログラミングをしたことがある

M5StackのプログラミングにはArduino IDEやUIFlowなどの開発環境を使います。Arduino IDEを使う場合はC/C++をベースとした言語、UIFlowを使う場合はGUIによるビジュアルプログラミングによって開発することができます。Webやアプリ等でプログラミングの経験がある方でしたら、条件分岐や変数などの考え方は身についていると思いますので、高いハードルは無く進められるでしょう。もちろん、プログラミング未経験の方でも資料を読み進めながら学ぶことはできますので、興味がある方はぜひチャレンジしてみてください。

 

③IoTにチャレンジしてみたい

IoT(Internet of Things;モノのインターネット)という言葉が多くのメディアでも注目されるようになり、物流や農業などをはじめ多くの分野でセンサや無線通信の技術が活用され始めました。読者の皆様の中にも、IoTに興味を持って何か作ってみたいと思っている人もいらっしゃるのではないでしょうか。

M5Stackはそんな「ちょっとIoTデバイス作ってみたい」というときに便利です。M5Stackに簡単に接続することができるモジュールは多くラインナップされており、センサを使うためのライブラリも豊富に公開されているため、電子工作未経験の方でも取り組みやすい仕様となっています。

 

④回路や配線で悩まずに進めたい

ラズパイやArduinoを使うときにブレッドボードなどを使ってLEDやスイッチなどの電子部品を配線することがありますが、ブレッドボードの使い方や電子部品の極性(プラスマイナスの向き)を気にしなければならないこともあって、電気や配線などの工作をしたことがない人にとっては難しいと感じることもあるかもしれません。

一方、M5Stackは「Grove」と呼ばれる製品群で規格が統一されているケーブルを使ってCPU側と周辺モジュール側(センサやモータドライバなど)を接続することができるため、専用のケーブルを使えば簡単に接続することができます。

 

3.  M5Stackの強みや特徴

豊富な拡張モジュールのラインナップ

M5シリーズでは、本体となるコントローラモジュールの他、センサやドライバなどの拡張モジュールが豊富にラインナップされております。

例えばM5Stack用のステッピングモータドライバモジュールは、3軸のステッピングモータドライバと、外部リミットスイッチやPWR485インターフェース(RS485と電源端子)などの端子が設けられており、3DプリンタやCNC切削加工機の自作にも対応した仕様で作られています。

M5Stack用 ステッピングモータードライバモジュール

 

UIFlowによるビジュアルプログラミング

ビジュアルプログラミングの開発環境の良いところは、「テキストコーティング無しでもプログラミングできる」だけではありません。M5Stackには本体表面に2インチの液晶ディスプレイが搭載されておりていますが、この画面に画像などのグラフィカルな情報を表示する際にはゼロからテキストコーディングするよりも、最初からGUIで開発を進められたほうが画像ファイルの処理が簡潔に済むという見方もあります。

 

また、UIFlowは実行する命令をマウスのドラッグ&ドロップによって組み立ててプログラミングするため、開発環境の画面を眺めるだけでもおおまかにどのような機能が使えるかを知ることができます。これまで知らなかった機能を眺めながら「IMUってなんだろう?」「MQTTってなんだろう?」と知らない単語が出てきたら調べるきっかけにもなりますので、M5Stackの基本機能を知るためにUIFlowを使うことも良い使い方かもしれません。

「こういうのが使えるんだな」という気付きから調べるきっかけにも繋がります

 

4. ラズパイやArduinoのほうがいい”かもしれない”ケース

何か作品やシステムを作ろうとしたときに「それならM5Stackでも作れるけど、ラズパイやArduinoでも作れそうだね」となって、どのボードを使うべきなのか判断に迷ってしまうこともあるかもしれません。

M5Stackと他のボード、どっちを使えばいいだろう?

 

M5StackはUIFlowでのビジュアルプログラミングができることや、拡張モジュールとの配線が簡単にできることから、初心者にとって使いやすく作られていますが、状況によっては他のボードのほうが適していることもあるかもしれません。

以下、ラズパイやArduinoのほうがいい“かもしれない”ケースについて述べます。

①    開発環境の準備で失敗したくないとき

②    練習のためにプログラムの書き込みをサクサクと進めたいとき

③    LEDやスイッチなどの電子部品を接続する練習をしたいとき

④    USB接続で使える機器を導入したいとき

 

①開発環境の準備で失敗したくないとき

M5Stackのプログラミングを行うときは「Arduino IDE」と「UIFlow」のどちらかを使うことが多いです。「Arduino IDE」を使うときは、Arduino IDEそのもののインストールに加えて、以下の作業をおこなう必要があります。

 

  • USBドライバのインストール(CP210x_VCP等)
  • ESP32ボードマネージャのインストール
  • M5Stackライブラリのインストール

 

M5Stackを初めて使うとき、これらの作業を一通りおこなって初めてプログラムのコンパイル・書き込みができるようになります。丁寧に進めれば問題なくできるものではありますが、手順が少し複雑であることからインストール忘れや(UIFlowの場合は)Wi-Fi接続などの見落としが発生することもあり、初心者にとってつまずきやすいポイントです。

 

一方、Arduinoボード(Arduino UNOなど)は「Arduino IDE」をインストールすれば必要なUSBドライバもIDEのインストール時にすべて入っているため、迷いなく環境を整えることができます。

入門してすぐにつまずいてしまうと気持ちが続かないこともありますので、プログラミング環境の設定をしたことがない方はまずArduinoボードからの入門で始めて、少し慣れてきたらM5Stackも触ってみるという順序で進めることをオススメします。

 

②練習のためにプログラムの書き込みをサクサクと進めたいとき

M5Stackのプログラミングを「Arduino IDE」でおこなう場合、Arduinoボードと比べるとM5Stackはプログラムのコンパイル・書き込み1回に多くの時間がかかります。サンプルプログラムを動かすだけなら多少時間がかかっても問題ありませんが、オリジナルの作品を作るときなど試行錯誤が多くおこなわれるときは煩わしく感じることもあるかもしれません。

C言語などのコーディングに慣れていない場合は、「UIFlow」を用いたビジュアルプログラミングに取り組むか、慣れるまでArduinoボードを使って練習すると良いでしょう。

 

③LEDやスイッチなどの電子部品を接続する練習をしたいとき

M5StackはGroveコネクタに対応したセンサやモータドライバのモジュールを使えば、配線に迷うこと無く簡単に接続することができます。この機能は大変便利である一方、電気回路・電子回路のしくみを理論として学ぶ機会をスキップしているとも言えます。

これはどちらが良い・悪いという話ではありませんが、例えば「すぐに接続して使うラピッドプロトタイピングを優先したい」場合はM5Stackを使い、「電子工作を通して電子回路のしくみについて学ぶことを優先したい」場合はArduinoボードを使うといった、目的による使い分けを意識して選ぶことでそれぞれの長所を活かすことができるかもしれません。

 

④USB接続で使える機器を導入したいとき

連載第1回でご紹介したように、ウェブカメラや測域センサなどのUSB機器を使いたい場合は、ラズパイなどのシングルボードコンピュータを使うことが多いです。使用する機器のインターフェースを考慮して、ラズパイを使うか、M5StackやArduinoなどのマイコンを使用するかを考えるのはとても大事なポイントです。

 

ただし、M5シリーズには「M5StickV」などカメラやマイクを搭載したユニットもラインナップされており、ラズパイなどのコンピュータを使わずに顔認識や物体検出などの画像処理の機能を持つシステムの開発することもできます。システムのサイズや処理能力に応じてこれらのボードを使ってみることも面白いかもしれません。

M5StickVの外観

 

5. まとめ

本記事では、M5Stackの強みや特徴の解説を中心とし、装置やロボットを開発するとき、または最初に着手して練習するためのボードの選択肢として、ラズパイやArduinoもあるときに何を基準として選べばいいのかを紹介してきました。

ボードを選ぶときには「どれが初心者にやさしいか」を基準に選ぶことは多いですが、「環境構築が難しいけど使い始めてみればやさしいもの」や「環境構築は簡単だけど使いこなすのは難しいもの」など、目的や使用者のスキルによって適切なものが変わってくる場合があります。

 

M5Stackはプログラミング環境の準備で少し難しいところがあるかもしれませんが、使い始めることができればとても機能が豊富にあるためとても拡張性が高いデバイスです。試作品を短時間で製作するラピッドプロトタイピングにも適しているので、すぐに何かを作りたいときは、ぜひM5Stackを活用してみましょう!

 

 

今回の連載の流れ

第1回:Raspberry Pi(ラズパイ)の強みと特徴をArduino、M5Stackと比べてみた
第2回:Arduinoの強みと特徴をラズパイ、M5Stackと比べてみた
第3回:M5Stackの強みと特徴をラズパイ、Arduinoと比べてみた(今回)

アバター画像

1991年、福岡県北九州市生まれ。九州工業大学大学院を卒業後、電子工作キットの開発、ロボット競技会の運営、デジタルアート作品の制作などを手掛けてきた。現在はデジタルものづくりコミュニティ『薬院Make部』を運営し、福岡県福岡市内でものづくり活動にも取り組んでいる。ロボット競技会・作品コンテストに多数参加。代表作は『論文まもるくん』『アトゴフンダケ』など。

学生ロボコン2017 出場ロボット解剖計画