新しいものづくりがわかるメディア

RSS


マイコンボードをはじめませんか?

液晶ディスプレイがポイント 初心者向け M5Stack(エムファイブスタック)の使い方とオススメキット

小中学生のとき、「工作」や「技術家庭」の授業がありましたよね。自分のアイデアを形にすることを楽しんだ人も多いのではないでしょうか? 大人の趣味としてあの楽しみをもう一度味わってみませんか? どうせなら「動く作品」作りはどうでしょう? 今なら工作に使える安くて小型のコンピューター=マイコンボードが簡単に手に入ります。

初めてチャレンジする人にとって、マイコンボード選びは大変です。
「自分のやりたいことに合ってるのはどれ?」
「なんとなくマイコンボードって聞いたことがあるけど、何ができるの?」
このように、初心者にとっては悩みが多いのが電子工作。
「適当にマイコンボードを買ったけど、思っていたのと違った……」

ということがないように、人気のマイコンボード、「Arduino(アルドゥイーノ)」「Raspberry Pi(ラズベリーパイ)」「micro:bit(マイクロビット)」「M5Stack(エムファイブスタック)」について紹介します。

今回はM5Stack編。使い方や必要な付属品など、M5Stackを使って電子工作をするときに知っておきたいことをお話ししましょう。

M5Stack Basic。筐体と液晶ディスプレイ、3つのボタンが特徴。 M5Stack Basic。筐体と液晶ディスプレイ、3つのボタンが特徴。

<M5Stackとは?>
2017年に中国・深圳でリリースされたM5Stackは、他のマイコンボードと見た目が大きく異なります。電子基板むき出しではなく、名前の由来ともなっている5×5cmの筐体を持っています。その最大の特徴は筐体についている液晶ディスプレイ (LCD*)でしょう。データのやり取りも視覚的に分かるので、「ビギナーフレンドリー」な印象を与えます。その割にCPUの処理速度が速く、簡単に機能を付け加えられるモジュールやセンサーユニットが充実しています。「初心者だけどちょっと背伸びをして高度なこともやってみたい」という欲張りな人にオススメです。

基板には何が載っているの?

M5Stackにはさまざまな種類があります。ここでは最初に登場した「M5Stack Basic」をとりあげましょう。 心臓部は「ESP32」というデュアルコア32bitのMPU*です。デュアルコアとは見た目は1つのチップですがその中に2つの(デュアル)演算処理区画(コア)を持っているということです。2つの処理を同時に行えるので高速です。

「ESP32」はBluetoothとWi-Fiの機能を内蔵しており、簡単にネットとつながります。

他に

  • 30本の入出力端子(オス15本、メス15本)
  • 16本のバス*端子(オス8本、メス8本)
  • USBポート
  • GROVE*互換コネクター
  • 電源/リセットボタン
  • microSDスロット
  • カラー液晶ディスプレイ(LCD*)
  • 内蔵スピーカー
  • 3つのプログラム登録可能なボタン

が主な構成部品です。電源は内蔵しているバッテリーから供給されます。筐体はコア(MPUのコアは別物)と呼ぶ本体部分とボトムと呼ぶ電源&端子部分に分かれます。

筐体はコアとボトムに分かれます。 筐体はコアとボトムに分かれます。
コアには電子基板と液晶ディスプレイが入っています。電子基板にはMPUやピン、スピーカー、各種入出力ポート、スロットなどがあります。 コアには電子基板と液晶ディスプレイが入っています。電子基板にはMPUやピン、スピーカー、各種入出力ポート、スロットなどがあります。
ボトムを分解したところ。中にバッテリーと、M5Stackを冷蔵庫などに貼り付けられる磁石が入っています。 ボトムを分解したところ。中にバッテリーと、M5Stackを冷蔵庫などに貼り付けられる磁石が入っています。
M5Stackの基本的な概要。通信機能、ボタン、スピーカーなどを内蔵しています。プログラミングはパソコンから行います。 M5Stackの基本的な概要。通信機能、ボタン、スピーカーなどを内蔵しています。プログラミングはパソコンから行います。

LCD:Liquid Crystal Displayの略。液晶ディスプレイのことです。
MPU:Micro Processing Unitの略。CPU、メモリー、通信機能などを1つにまとめたチップです。
バス:データをやりとりする方法のひとつ。複数の装置や機器、回路で1つの信号線を共有し、相互にデータをやりとりできる構造を持ちます。
GROVE:Seeedのコネクター規格。専用のコネクターを介してマイコンボードとモジュールをつなぐため、はんだ付け不要で試作することが可能です。M5Stackでも採用しており、センサーなどのモジュールをつなぐために使います。

ほかに何が必要なの?

M5Stackはケースに入っています。今回取り上げる「M5Stack Basic」は 同じケースに、Type-CのUSBケーブル、ジャンパワイヤー(オス〜メス)10本、マニュアル、シールが入っているので、プログラミングのためのパソコンがあれば最低限必要なものはそろいます。

M5Stackのケースに入っているもの。本体、Type-CのUSBコード、ジャンパワイヤー(オス〜メス)10本、マニュアル、シール。 M5Stackのケースに入っているもの。本体、Type-CのUSBコード、ジャンパワイヤー(オス〜メス)10本、マニュアル、シール。

どうやってプログラミングするの?

プログラミングに使用するパソコンにIDE*という専用のアプリをダウンロードして使います(UIFlowにはwebベースのIDEもあります)。IDEには「プログラムを書く」、「プログラムを、検証する・送り込む・保存する」、「作例を呼び出す」、といった開発のための環境がセットになっています。

M5StackはArduinoのIDEでもあるArduino IDE*がそのまま使えます。開発元であるArduinoのWebサイトからメインのパソコンに日本語版をインストールして使います。Arduinoに慣れた人なら、これでプログラミングするのが近道でしょう。ただし、Arduino IDE に、Arduino ではなくM5Stackを使うことを教えてあげなければなりません。そのため、M5Stack用にUSBシリアルドライバーをインストールし、MPUであるESP32の情報のボードマネージャーへの登録とボードやシリアルポートの指定、M5Stackのライブラリのインストールといった手順を踏む必要があります。

その他、UIFlow*というM5Stack用のIDEもあります。UIFlowはビジュアルプログラミング言語Google Blockly*を使うものと、MicroPython*を使うものがあります。Python*に慣れている人ならUIFlowのMicroPython版に切り替えて使うといいでしょう。

M5StackのプログラミングにはArduino IDEが使えます。 M5StackのプログラミングにはArduino IDEが使えます。
M5Stack用のIDE、UIFlow。写真はビジュアルプログラミング言語Google Blocklyの画面。MicroPython と切り替えて使うこともできます。 M5Stack用のIDE、UIFlow。写真はビジュアルプログラミング言語Google Blocklyの画面。MicroPython と切り替えて使うこともできます。

Arduino IDE:Arduinoの開発元が提供している開発環境。C/C++言語*を基にしており、慣れれば初心者でもわかりやすいでしょう。豊富なライブラリも魅力です。
C/C++言語: C言語は、OSや家電などでよく使われエンジニアにはおなじみです。1970年代に開発されました。C++はCの機能を拡張した言語です。
UIFlow:M5Stackが提供するWebベースの開発環境。Googleのビジュアルプログラミング言語Google Blocklyや、MicroPythonが使えます。
Google Blockly:ブロックプログラミング環境をJavaScriptで作れるライブラリ“Blockly”を使ったビジュアルプログラミング言語です。
Python:1990年に登場したプログラミング言語です。シンプルで読みやすいコードが書けます。比較的初心者にやさしい言語といえるでしょう。M5Stackだけでなく、WindowsやMacで作成したプログラムがRaspberry Piなど他のプラットフォームでも同じように動作するのも魅力です。数値計算に強く、AIを扱うときなどに便利なので、今、注目を浴びています。

どんなものを作るのに合っているの?

2017年にリリースされたM5Stackは、これまで紹介したマイコンボードの中では最後発になります。ArduinoやRaspberry Piで作れる作品はだいたい作れます。その上で、先行するそれらのボードが苦手とする分野の作品もカバーしています。

  • Arduinoにはない通信機能(BluetoothやWi-Fi)があるので、ネットワークにつないで使う作品作りに対応できます。
  • Raspberry Piには標準では付いていない小型の液晶ディスプレイやプログラミング可能なボタンが付いているので、画面表示が必要な作品に組み込んで使うことができます。

これらの特徴を生かしてネットワークにつないで何かを表示するような作品(メッセージボードや環境測定器など)を作りたい人にオススメです。

fabcrossでも過去にM5Stackを使ったいろいろな作品を取り上げてきたので、参考にしてみたらいかがでしょうか?

どんな機種があるの? 機能を追加することはできないの?

M5Stackのコアにはいくつかの種類がありますが、初心者ならBasic、Grayがオススメです。

違いは、9軸センサー*(3軸加速度センサー、3軸ジャイロセンサー、3軸磁気センサー)です。これらのセンサーが使いたい人はGrayがよいでしょう。どちらのコアにもGrove端子があるので、光センサー、距離センサー、土壌水分センサーなどといったセンサーユニットをつないで機能を追加することができます。

(左から)光センサー、距離センサー、土壌水分センサーの各ユニット。 (左から)光センサー、距離センサー、土壌水分センサーの各ユニット。

初心者用としては、「M5Stick C」という商品もあります。内容はM5Stack Basicとほぼ同じですが、小型である分、安価です。ただし、M5Stack Basicと比べ、液晶ディスプレイが小さい、重ねて使うことができない、という弱点もあります。同じく初心者用には各種センサーがセットになった「M5GO」もあります。IoTを始めるのにうってつけです(そのほか、初心者向けではありませんが、全面タッチスクリーンの「M5Stack Core2」という最新モデルもあります)。

M5Stackを初心者が使う場合、注意しなければならない点があります。作例はなるべく最新のものを参考にしましょう。同じ商品でも仕様がよく変わるので、ブログなどにある作例はそのままでは作れない場合があります。なるべく公式Webサイトに上がっている作例を参考にするといいでしょう。また、UIFlowならメニューの「DEMO」に作例があるので、それを利用してもいいですね。何をどこにつなげばいいか書いてありますし、IDE上で表示の確認までできるので、とても便利です。

(左から)M5Stack Basic、M5Stack Gray、M5Stick C、M5Stack Core2。 (左から)M5Stack Basic、M5Stack Gray、M5Stick C、M5Stack Core2。

「Lチカ」してみませんか?

LED を短い時間で点けたり、消したりして点滅させることを「Lチカ」といいます。「LED をチカチカさせる」の略ですね。

「マイコンボードで Lチカなんて大げさじゃない?」
確かにそうですが、外付けの LED を一から Lチカさせるとなると意外に手間がかかります。必要な電子部品をそろえ、IDE等をインストールして、プログラミング。実際に回路を組んで光らせます。実は一連の作業に、マイコンボードを使う電子工作の流れがすべて含まれています。Lチカができれば基本は分かったも同然でしょう。あなたもやってみませんか?

◆部品をそろえましょう
プログラミングに使用するパソコン、M5Stack 本体(ここでは M5Stack Basicを使います)、 ケースに入っているUSBケーブル、ジャンパワイヤー(オス〜メス)のほかに、LED、抵抗、ブレッドボードを準備しましょう。

LED、抵抗、ブレッドボード。 LED、抵抗、ブレッドボード。

◆部品を配置しましょう
まずは部品を配置するために、回路を考えてみましょう。「『回路』って言われても…」 こう思う人もいるかもしれませんが、難しく考える必要はありません。
回路は単なる電気の通り道のことです。小学生の時に習った豆電球の実験を思い出していただければ、分かりやすいのではないでしょうか? プラスからマイナス(GND*)へと電気の通り道を考え、間に電子部品を配置すれば回路のできあがりです。 複雑な回路の場合、さらに図を描くと分かりやすくなります。特殊な記号を使って描く回路図や具体的な実体配線図があると便利です。検索すればまったく同じではなくとも似たような図がネット上にあることも多いので、それらを参考にしてみたらどうでしょう。

LEDを点灯させる回路図の例。一定のルールに基づいて描かれています。電子回路の設計図ですね。 LEDを点灯させる回路図の例。一定のルールに基づいて描かれています。電子回路の設計図ですね。
Lチカのために電子部品をブレッドボードに配置し、M5Stackにつなげた時の実体配線図。回路をより実体に近い形でとらえるための図です。 Lチカのために電子部品をブレッドボードに配置し、M5Stackにつなげた時の実体配線図。回路をより実体に近い形でとらえるための図です。

コラム:『ブレッドボード』って何?

一般になじみのないブレッドボードですが、電子工作をするときには大変便利です。はんだ付けすることなく、ソケット(穴)に電子部品の脚やワイヤーの先端を挿しこむだけで、確実に電子部品を接続できるからです。両側の2列は縦に、真ん中は5列ごとに横に配線されています。配線されていない列をまたぐときは、ジャンパワイヤーを挿して、電気の通り道を作ります。

ブレッドボードの配線図。両側の2列は縦に、真ん中は5列ごとに横に配線されています(ピンク部分のソケットはつながっています) ブレッドボードの配線図。両側の2列は縦に、真ん中は5列ごとに横に配線されています(ピンク部分のソケットはつながっています)

コラム: LEDを使うときのコツ

LEDの扱いに関してはコツが2つあります。ひとつはLEDにはプラスとマイナスがあるということ。脚の短い方がマイナスで長い方がプラスです。また流せる電流の適正値が決まっているので、それを超えると簡単に壊れてしまいます。それを防ぐためにLEDを使った回路には適正な抵抗を組み込みましょう。

LEDと抵抗。LEDの脚にはプラスとマイナスがあります。抵抗に描かれている色の帯(カラーコード)は抵抗値を示しています。 LEDと抵抗。LEDの脚にはプラスとマイナスがあります。抵抗に描かれている色の帯(カラーコード)は抵抗値を示しています。
電子部品をブレッドボード上に配置。 電子部品をブレッドボード上に配置。

GND: Ground「地面」の略です。回路の場合は「動作の基準となる電位」を意味します。「電極のマイナス」と考えればよいでしょう。

◆プログラミングのための準備をしましょう
プログラミングはパソコンで行います。今回はIDEとしてArduino IDEを使いましょう。

IDEのインストールの際、注意していただきたいことがあります。セキュリティソフトがインストールを邪魔する(あるいは結果としてインストールされない)ことがあるのです。あらかじめ機能を外しておきましょう。 Macの場合はシステム環境の「セキュリテイとプライバシー」の許可ボタン(鍵マーク)を押しておきましょう(パスワードを求められます)。

それでは以下の手順でインストールしましょう。手間はかかりますが、最初に1回だけやれば以後は必要ありません。がんばりましょう。

1.Arduino IDE、USBシリアルドライバー(CP2104 Driver)のインストール
M5Stackの公式Webサイトのダウンロードページにアクセスし、OSに合ったArduino IDEとUSBシリアルドライバーソフト*(CP2104 Driver)をインストールしましょう。(画面1)

(画面1)M5Stackの公式Webサイトのダウンロードページ。 (画面1)M5Stackの公式Webサイトのダウンロードページ。

2.ボード情報が置かれたURLを環境設定画面から指定
1の手順が終わったら、Type-C USBケーブルでM5Stackをプログラミングするパソコンにつなぎましょう。次に、マイコンボードの情報をArduinoIDEに入力する作業に入ります。Arduino IDEを開き、メニューから「環境設定(Preference)」画面を開きます。設定画面の「追加のボードマネージャのURL」の横のマークをクリックして、出てきたウインドウに以下のURLを入力し、「OK」をクリックしましょう(画面2)。設定が終わったら「OK」をクリックして環境設定を完了します。
ボード情報URL<https://dl.espressif.com/dl/package_esp32_index.json

*画面はお使いのパソコン、OSによって異なります。

(画面2)Arduino IDEの環境設定の画面。 (画面2)Arduino IDEの環境設定の画面。

3.ボードマネージャからボード情報をインストール
Arduino IDEから「ツール」→「ボード」→「ボードマネージャ」と開き、ボードマネージャを起ち上げます。開いたウインドウの検索画面に「esp32」(M5StackのMPU)と入力するとボード情報が表示されるので、インストールをクリックしましょう。(画面3)インストールが終わったら、ボードマネージャを閉じます。これでボード情報が入力できました。

(画面3)ボードマネージャでボード情報を入力します。 (画面3)ボードマネージャでボード情報を入力します。

4.CPU、ボード等の設定
入力したボード「ESP32」をArduino IDEで使うボードとして指定します。「ツール」→「ボード」と開き、「M5Stack-Core-ESP32」(開いた画面の下の方にあります)を選択しましょう。選択したらツールにもどり、ボードが「”M5Stack-Core-ESP32”」になっていること、Upload Speedが「”921600”」になっていることを確認しましょう。最後に「シリアルポート」から「/deu/cu.Bluetooth-Incoming-Port」を選択すれば終了です(画面4)。

(画面4)M5StackのボードをArduino IDEから選び、設定を確認しましょう。 (画面4)M5StackのボードをArduino IDEから選び、設定を確認しましょう。

5.M5Stackライブラリのインストール
M5StackのライブラリをArduino IDEにインストールしておけば液晶ディスプレイやボタンなどが簡単に使えます。Arduino IDEから「スケッチ」→「ライブラリをインクルード」→「ライブラリを管理」と開くと、ウインドウが開きます。検索画面に「m5stack」と入力すると「M5Stack by M5Stack」という表示が出るので最新バージョンをインストールしましょう。(画面5)終了したらウインドウを閉じます。ライブラリを使うときは、「ファイル」→「スケッチ例」→「M5Stack」(開いた画面の下の方にあります)と選択すれば、いろいろなスケッチ例が呼び出せます(画面6)

(画面5)ライブラリマネジャでM5Stackのライブラリをインストール。 (画面5)ライブラリマネジャでM5Stackのライブラリをインストール。
(画面6)M5Stackのライブラリをインストールしておけば、スケッチ例から呼び出せる。 (画面6)M5Stackのライブラリをインストールしておけば、スケッチ例から呼び出せる。

ドライバーソフト:プリンターなどの周辺機器やマイコンボードをOS上で使えるようにするためのソフトウェア。

最後に「ファイル」→「環境設定」と開いて(Macの場合、上部のメニューバーから「Arduino」→「Preferences」と開く)、「行番号を表示する」にチェック(✓)を入れておきましょう。行番号が表示されていると、プログラムでエラーが出た時など、どの行でエラーが出たかすぐにわかって便利です。(画面7)

(画面7)行番号を表示できるようにしておくと便利です。環境設定画面から設定します。 (画面7)行番号を表示できるようにしておくと便利です。環境設定画面から設定します。

◆プログラミングしましょう
以下のスケッチ(Arduino IDEではプログラムのこと)を書きましょう。(画面9)ポイントはLEDにつながっているピン番号を最初に指定することと、出力(OUTPUT)の最高値(HIGH)と最低値(LOW)を多少時間(delay)を付けて交互に繰り返すことの2点です。出力の最高値ではLEDが点灯し、最低値では消えるので、時間差を付けて交互に行うと結果として点滅します。時間差がないと点灯したままにしか見えないので注意しましょう。

Lチカのプログラム。出力の最高値と最低値を、時間差を付けて繰り返すのがポイントです。 Lチカのプログラム。出力の最高値と最低値を、時間差を付けて繰り返すのがポイントです。

◆実行してみましょう
プログラムを書き終えたら、➡︎をクリックしてM5Stackに書き込みましょう。書き込んだら、LEDと抵抗を配置したブレッドボードをジャンパワイヤーでつなぎましょう。LEDのマイナスにつながったジャンパワイヤーをGNDに、抵抗につながったジャンパワイヤーをデジタル入出力(GPIO)ピンの2番に挿します。LEDが点滅したらLチカ大成功です。

プログラム済みのM5Stackをブレッドボードと接続すると、LEDが点滅します。 プログラム済みのM5Stackをブレッドボードと接続すると、LEDが点滅します。

◆作ったプログラムを保存しましょう
作ったプログラムは保存しておきましょう。「ファイル」→「名前をつけて保存」をクリックします。名前を付けるときは、半角アルファベットを使いましょう(ひらがな、カタカナ、漢字は使えません)。保存したスケッチを呼び出すときは、「ファイル」→「スケッチブック」と開き、選択します。削除するときは、パソコンの「マイフォルダ」(Macの場合は「ホーム」→「書類」)の中のスケッチのフォルダを削除してください。

M5Stackを使った外付けのLチカにかかった費用
*価格はいずれもスイッチサイエンスでの税込価格。

  • M5Stack Basic 3575円
  • ブレッドボード 275円
  • 抵抗コンデンサLED詰め合わせパック(計20種) 693円
合計 4543円

 

そもそもマイコンボードって何?

「マイコンボード」でググれば、いろいろな説明が出てきます。「マイクロコントローラー」「マイコン」等々。

細かい定義はともかく、一言で言えば、「CPUと入出力用のピンやポートなどがついた電子基板」といった感じです。

電子工作をするとき、「センサーと組み合わせて何かを測りたい」、「音や光を出したい」、「モーターと組み合わせて何かを動かしたい」と思うとことがよくあります。そんなとき、マイコンボードが便利です。プログラミングができて、独立して動かせるからです。

加速度、光、温度などの各種センサー、アクチュエーター(動くもの)として働くLED、スピーカー、モーターなどを使った工作を作りたいなら、マイコンボードは欠かせない道具でしょう。

マイコンボードとパソコン、センサー、アクチュエーターの関係。コンピューターを使って何かを動かそうとしたときの基本構成です。 マイコンボードとパソコン、センサー、アクチュエーターの関係。コンピューターを使って何かを動かそうとしたときの基本構成です。

<写真=SHIGS/スイッチサイエンス>

<監修>
牧井 佑樹︎ 1988 年生まれ。大学生の時にスイッチサイエンス︎でアルバイトを始め、その後同社に就職する。カスタマーサポート、マーケティングを経て、現在はWebショップ店長として電子部品の仕入れ・販売を担当。

ニュース

編集部のおすすめ

連載・シリーズ

注目のキーワード

もっと見る