マイコンボードをはじめませんか?
液晶ディスプレイがポイント 初心者向け M5Stack(エムファイブスタック)の使い方とオススメキット
小中学生のとき、「工作」や「技術家庭」の授業がありましたよね。自分のアイデアを形にすることを楽しんだ人も多いのではないでしょうか? 大人の趣味としてあの楽しみをもう一度味わってみませんか? どうせなら「動く作品」作りはどうでしょう? 今なら工作に使える安くて小型のコンピューター=マイコンボードが簡単に手に入ります。
初めてチャレンジする人にとって、マイコンボード選びは大変です。
「自分のやりたいことに合ってるのはどれ?」
「なんとなくマイコンボードって聞いたことがあるけど、何ができるの?」
このように、初心者にとっては悩みが多いのが電子工作。
「適当にマイコンボードを買ったけど、思っていたのと違った……」
ということがないように、人気のマイコンボード、「Arduino(アルドゥイーノ)」「Raspberry Pi(ラズベリーパイ)」「micro:bit(マイクロビット)」「M5Stack(エムファイブスタック)」について紹介します。
今回はM5Stack編。使い方や必要な付属品など、M5Stackを使って電子工作をするときに知っておきたいことをお話ししましょう。
<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のコアは別物)と呼ぶ本体部分とボトムと呼ぶ電源&端子部分に分かれます。
LCD:Liquid Crystal Displayの略。液晶ディスプレイのことです。
MPU:Micro Processing Unitの略。CPU、メモリー、通信機能などを1つにまとめたチップです。
バス:データをやりとりする方法のひとつ。複数の装置や機器、回路で1つの信号線を共有し、相互にデータをやりとりできる構造を持ちます。
GROVE:Seeedのコネクター規格。専用のコネクターを介してマイコンボードとモジュールをつなぐため、はんだ付け不要で試作することが可能です。M5Stackでも採用しており、センサーなどのモジュールをつなぐために使います。
ほかに何が必要なの?
M5Stackはケースに入っています。今回取り上げる「M5Stack Basic」は 同じケースに、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版に切り替えて使うといいでしょう。
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上で表示の確認までできるので、とても便利です。
「Lチカ」してみませんか?
LED を短い時間で点けたり、消したりして点滅させることを「Lチカ」といいます。「LED をチカチカさせる」の略ですね。
「マイコンボードで Lチカなんて大げさじゃない?」
確かにそうですが、外付けの LED を一から Lチカさせるとなると意外に手間がかかります。必要な電子部品をそろえ、IDE等をインストールして、プログラミング。実際に回路を組んで光らせます。実は一連の作業に、マイコンボードを使う電子工作の流れがすべて含まれています。Lチカができれば基本は分かったも同然でしょう。あなたもやってみませんか?
◆部品をそろえましょう
プログラミングに使用するパソコン、M5Stack 本体(ここでは M5Stack Basicを使います)、 ケースに入っているUSBケーブル、ジャンパワイヤー(オス〜メス)のほかに、LED、抵抗、ブレッドボードを準備しましょう。
◆部品を配置しましょう
まずは部品を配置するために、回路を考えてみましょう。「『回路』って言われても…」 こう思う人もいるかもしれませんが、難しく考える必要はありません。
回路は単なる電気の通り道のことです。小学生の時に習った豆電球の実験を思い出していただければ、分かりやすいのではないでしょうか? プラスからマイナス(GND*)へと電気の通り道を考え、間に電子部品を配置すれば回路のできあがりです。 複雑な回路の場合、さらに図を描くと分かりやすくなります。特殊な記号を使って描く回路図や具体的な実体配線図があると便利です。検索すればまったく同じではなくとも似たような図がネット上にあることも多いので、それらを参考にしてみたらどうでしょう。
コラム:『ブレッドボード』って何?
一般になじみのないブレッドボードですが、電子工作をするときには大変便利です。はんだ付けすることなく、ソケット(穴)に電子部品の脚やワイヤーの先端を挿しこむだけで、確実に電子部品を接続できるからです。両側の2列は縦に、真ん中は5列ごとに横に配線されています。配線されていない列をまたぐときは、ジャンパワイヤーを挿して、電気の通り道を作ります。
コラム: LEDを使うときのコツ
LEDの扱いに関してはコツが2つあります。ひとつは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)
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によって異なります。
3.ボードマネージャからボード情報をインストール
Arduino IDEから「ツール」→「ボード」→「ボードマネージャ」と開き、ボードマネージャを起ち上げます。開いたウインドウの検索画面に「esp32」(M5StackのMPU)と入力するとボード情報が表示されるので、インストールをクリックしましょう。(画面3)インストールが終わったら、ボードマネージャを閉じます。これでボード情報が入力できました。
4.CPU、ボード等の設定
入力したボード「ESP32」をArduino IDEで使うボードとして指定します。「ツール」→「ボード」と開き、「M5Stack-Core-ESP32」(開いた画面の下の方にあります)を選択しましょう。選択したらツールにもどり、ボードが「”M5Stack-Core-ESP32”」になっていること、Upload Speedが「”921600”」になっていることを確認しましょう。最後に「シリアルポート」から「/deu/cu.Bluetooth-Incoming-Port」を選択すれば終了です(画面4)。
5.M5Stackライブラリのインストール
M5StackのライブラリをArduino IDEにインストールしておけば液晶ディスプレイやボタンなどが簡単に使えます。Arduino IDEから「スケッチ」→「ライブラリをインクルード」→「ライブラリを管理」と開くと、ウインドウが開きます。検索画面に「m5stack」と入力すると「M5Stack by M5Stack」という表示が出るので最新バージョンをインストールしましょう。(画面5)終了したらウインドウを閉じます。ライブラリを使うときは、「ファイル」→「スケッチ例」→「M5Stack」(開いた画面の下の方にあります)と選択すれば、いろいろなスケッチ例が呼び出せます(画面6)
ドライバーソフト:プリンターなどの周辺機器やマイコンボードをOS上で使えるようにするためのソフトウェア。
最後に「ファイル」→「環境設定」と開いて(Macの場合、上部のメニューバーから「Arduino」→「Preferences」と開く)、「行番号を表示する」にチェック(✓)を入れておきましょう。行番号が表示されていると、プログラムでエラーが出た時など、どの行でエラーが出たかすぐにわかって便利です。(画面7)
◆プログラミングしましょう
以下のスケッチ(Arduino IDEではプログラムのこと)を書きましょう。(画面9)ポイントはLEDにつながっているピン番号を最初に指定することと、出力(OUTPUT)の最高値(HIGH)と最低値(LOW)を多少時間(delay)を付けて交互に繰り返すことの2点です。出力の最高値ではLEDが点灯し、最低値では消えるので、時間差を付けて交互に行うと結果として点滅します。時間差がないと点灯したままにしか見えないので注意しましょう。
◆実行してみましょう
プログラムを書き終えたら、➡︎をクリックしてM5Stackに書き込みましょう。書き込んだら、LEDと抵抗を配置したブレッドボードをジャンパワイヤーでつなぎましょう。LEDのマイナスにつながったジャンパワイヤーをGNDに、抵抗につながったジャンパワイヤーをデジタル入出力(GPIO)ピンの2番に挿します。LEDが点滅したらLチカ大成功です。
◆作ったプログラムを保存しましょう
作ったプログラムは保存しておきましょう。「ファイル」→「名前をつけて保存」をクリックします。名前を付けるときは、半角アルファベットを使いましょう(ひらがな、カタカナ、漢字は使えません)。保存したスケッチを呼び出すときは、「ファイル」→「スケッチブック」と開き、選択します。削除するときは、パソコンの「マイフォルダ」(Macの場合は「ホーム」→「書類」)の中のスケッチのフォルダを削除してください。
M5Stackを使った外付けのLチカにかかった費用
*価格はいずれもスイッチサイエンスでの税込価格。
- M5Stack Basic 3575円
- ブレッドボード 275円
- 抵抗コンデンサLED詰め合わせパック(計20種) 693円
そもそもマイコンボードって何?
「マイコンボード」でググれば、いろいろな説明が出てきます。「マイクロコントローラー」「マイコン」等々。
細かい定義はともかく、一言で言えば、「CPUと入出力用のピンやポートなどがついた電子基板」といった感じです。
電子工作をするとき、「センサーと組み合わせて何かを測りたい」、「音や光を出したい」、「モーターと組み合わせて何かを動かしたい」と思うとことがよくあります。そんなとき、マイコンボードが便利です。プログラミングができて、独立して動かせるからです。
加速度、光、温度などの各種センサー、アクチュエーター(動くもの)として働くLED、スピーカー、モーターなどを使った工作を作りたいなら、マイコンボードは欠かせない道具でしょう。
<写真=SHIGS/スイッチサイエンス>
<監修>
牧井 佑樹︎ 1988 年生まれ。大学生の時にスイッチサイエンス︎でアルバイトを始め、その後同社に就職する。カスタマーサポート、マーケティングを経て、現在はWebショップ店長として電子部品の仕入れ・販売を担当。