【エッジコンピューティングであそぼう】M5Stack① M5GO届きました

  • このエントリーをはてなブックマークに追加
  • LINEで送る
M5Stack

 M5Stackをご存知でしょうか。M5Stackとは、最近人気のポケットサイズのマイコンモジュールです。このM5Stackを気軽に利用できるIoTスターター向けキット「M5GO」を使って、いろいろなおもちゃセンサー・IoT機器をつくり、楽しくエッジコンピューティングを学んでいきましょう。

M5Stackの概要

 M5Stackとは、約5センチ四方という小型ボディの中にESP32というマイコン(超小型コンピュータ)、ディスプレイ、スピーカー、ボタン、Groveポート、タイプC USBポート、SDカードスロット、バッテリーなどを搭載した新しいタイプのマイコンモジュールです。Wi-FiやBluetoothが標準で利用できるのも人気の理由の一つです。UIFlowを利用して誰でも気軽に開発をすることができ、プログラミングやIoTアプリケーションの学習にも利用されています。

M5Stackの種類

 M5Stackにはいくつか種類があります。ここでは、それぞれの特徴をまとめていきます。

M5Stack Basic

 最も基本的なM5Stackで、ディスプレイ、microSDカードスロット、スピーカーを装備しています。タイプC USBポート以外にはピンソケットとGroveポートが1つあり、外付けのセンサーと接続することができます。

M5Stack Gray

 M5Stack Basicに、加速度、ジャイロ、磁気を計測可能な9軸センサ(MPU9250)を搭載したモデルです。その他の仕様はM5Stack Basicと同様です。

M5GO IoTスターターキット

 M5Stack Basic、M5Stack GrayにあったピンソケットがGroveに変更されているほか、環境(温湿度・気圧)センサ、角度センサ、モーションセンサなど各種センサーモジュールが同梱されています。その他にも、9軸センサ(MPU9250)やRGB LEDライトが内蔵されています。

 また、M5GOはLEGOブロックと接続できるようになっていて、キットにはLEGOとの互換パーツも含まれています。さらに、スマートフォンからのビジュアル開発も可能という、なんとなく遊び心を感じる仕様です。どうやら教育シーンでの利用を考慮してのつくりのようです。

M5Stack FIRE

 M5Stack FIREはBasicやGrayよりもM5GOに近い仕様です。M5GOと比較すると、PSRAMが追加され、9軸センサがMPU9250からSH200Q + BMM150に変更されています(次期モデルにてMPU6886 + BMM150搭載となる予定)。M5Stack FIREにはM5GO IoTスターターキットに付属していたモジュール類は付属しません。

 その他に、M5Stickというシリーズもありますが、こちらはまた別の機会にご紹介したいと思います。今回は、初心者らしく「M5GO IoTスターターキット」を使用していきます。

M5GOキット内容

 スイッチサイエンスさんのECサイトでM5GOをポチッと。次の日には自宅の玄関前に届いていました。ありがとう、スイッチサイエンスさん。ありがとう、ヤ○トのお兄さん。置き配ってなんとなく時節を感じます。

玄関前に置き配されたM5GO

 さて、早速開封していきましょう。

M5GOの外観

 ポップな外カバーを取り外すと、持ち運びにも便利そうなプラスチックケース。その中にM5Stackと付属品が入っていました。

M5GOキットの中身

M5GOチートシート

PRODUCT LIST(製品仕様)

 ●本体

    • CORE(本体)

M5Stack本体面面

M5Stack本体です。

内部にESP32を搭載しているだけでなく、フルカラーの液晶ディスプレイやボタンを装備しているあたり、ArduinoやRaspberry Pi、Jetsonなどのマイコンボードとは異なり、かなり初心者向けの作りになっていると感じます。
各部の名称とはたらきは下に詳細を載せておきます。(公式ガイドブックより抜粋)

M5Stack各部の説明と働き

    • CHARGING BASE(充電器)
    • USBケーブル
    • ジャンパワイヤ(短×2、長×2)

 ●Unit(付属モジュール)

M5Stackに接続して、いろいろな機能を拡張できるアイテムです。M5GOキットには接続用のジャンパワイヤが4本付属しています。

ANGLE SENSOR(角度センサ)

青いつまみの角度を取得します。

 

ENV SENSOR(環境センサ)

温湿度、気圧をセンシングします。

 

PIR(MOTION) SENSOR(近接センサ)

センサーの前に手をかざすと反応します。

 

GROVE HUB

GROVE端子のハブユニットです。

 

IR REMOTE(赤外線リモコン)

赤外線信号を送受信することができるユニットです。このユニットを介してM5Stack同士を通信させることも可能です。

 

RGB LED

RGBライトのユニットです。延長して他のセンサーと接続することができ、センサーからの情報をもとにライトの点灯・消灯などをカスタマイズできます。

 

 ●アクセサリ

    • LEGO互換パーツ
      M5GOにはLEGOブロックとつなげるためのパーツがいくつか入っています。また、本体裏面もLEGO互換となっています。

M5Stackのセットアップ

 M5GOキットの外カバーには「60秒で初めてのIoTアプリケーションが作成できます」というコピーが書かれています。それでは60秒でさくっとIoT体験してやろうではないか。早速本体の電源を入れてみます。

 本体の電源は、側面の電源ボタンでON/OFFを切り替えられます。M5Stackの電源ON/OFF

デモプログラムを体験する

 本体の電源をONにして数秒間放置するとデモプログラムが起動し、全部で10個のデモを体験することができます。3つ並んだボタンのうち右のボタンを押下すると次のデモに進むことができます。左のボタンを押すと、1つ前のデモに戻ることができます。

M5GOのデモプログラム

デモ① スピーカー

 中央のボタンを押下すると音楽が流れ、スピーカーのテストを行うことができます。

デモ② マイク

 M5GOにはマイクも内蔵されています。M5GOに向かって話すと、画面に波形が表示されます。

デモ③ ジャイロセンサ(重力センサ)

 M5GOに搭載されている9軸センサのデモです。本体を傾けると画面内のボールが傾きに合わせて動きます。

デモ④ LEDライト

 M5GO両サイドのLEDランプが点滅します。

デモ⑤ 拡張ポートの説明
デモ⑥ 環境センサ

 環境センサを接続すると、温度・湿度・気圧が表示されます。センサに息を吹きかけたり、手で温めたりすると変化を確認できます。

デモ⑦ モーションセンサ(近接センサ)

 モーションセンサを接続し、センサに手をかざすと画面に表示された丸が赤く変化します。

デモ⑧ LEDライト

 LEDユニットをM5GOに接続するとLEDライトが点灯します。接続端子はユニットに2箇所ありますが、下面の端子に接続しないと点灯しませんので、注意しましょう。

デモ⑨ 赤外線信号送受信ユニット

 赤外線送受信ユニットを接続し、中央のボタンを押下すると赤外線信号が出力されます。もちろん赤外線なので目には見えませんが、画面に表示された四角いオブジェクトが赤く点灯するので多分信号は出ているはず…。

デモ⑩ アングルセンサ(角度センサ)

 アングルセンサを接続してつまみを回すと、本体のLEDライトの明るさが変化します。画面には明るさの%(パーセント)表示もされます。

M5GOをWiFiに接続する

 無事にデモプログラムを実行し終わったので、早速セットアップの続きです。まずは、電源ボタンを1回押してM5GOを再起動します。

M5GOセットアップ(WiFi接続①)

 左のボタンを押下し「Setup」メニューを起動したら、「Switch to Internet mode」を選択して中央のボタンを押します。(セットアップのメニューはバージョンやシリーズによって若干異なるようです。)

M5GOのセットアップ(WiFi接続②)

 ここではスマートフォンを使って設定を進めます。スマホのWi-Fi接続設定画面を開き、M5GOの画面に表示されているSSIDに接続します。

M5GOセットアップ(WiFiの接続③)

 正常に接続されると、M5GOの画面にQRコードが表示されます。QRコードを読み取るとM5FLOWのWiFiセットアップ画面が開きます。うまく読み取れない場合はIP: 192.168.4.1 へ直接アクセスしても同様の画面が表示されます。セットアップ画面が開いたら、開発を行うPCまたはスマートフォンが接続するのと同じWiFiへの接続情報を入力します。

 正常に接続が完了すると、「^_^ WiFi connection success」と表示され、M5G0の画面にはAPIキーが表示されます。このAPIキーは、次に説明する、M5GOの開発プラットフォーム「UiFlow」とM5GOを同期させるために必要です。UiFlowの詳しい説明は後にして、一旦UiFlowとM5GOを同期させていきましょう。

M5GOとUiFlow(開発環境)を接続する

M5GOセットアップ(UiFlowに接続①)

 M5GOがネットワークに接続していることを確認して、UiFlow画面を開きます。

M5GOセットアップ(UiFlowに接続②) 画面右上の「」からAPI Keyなどの各種設定を行います。

    • Api Key: M5GOに表示されたAPI Keyを入力します
    • Language: UiFlowの画面上で使用する言語を選択します(日本語もあります)
    • Device: Core を選択します
    • Theme: UiFlowのテーマカラーを変更できます(デフォルトはブルー)

M5GOセットアップ(UiFlowに接続③)

 うまく接続できたら、画面右下に使用中のM5GOの情報が表示されます。[接続済み]の状態になっていれば、開発を行う準備は完了です。

UiFlowで簡単開発

UiFlowとは?

ブラウザベースのブロック型ビジュアルプログラミング開発環境です。あらかじめ準備されているブロックを組み合わせることでプログラミングすることができます。〜中略〜 Pythonコードに切り替えることができ、より深いプログラミング学習を行うことも可能です。

 UiFlowで作成したプログラムをM5GOへアップロードして、簡単なIoTアプリを実行することができます。M5GOとUiFlowは先に説明したように、ネットワークを介してリンクすることができるため、ケーブル等を利用する必要はありません。コードがごちゃごちゃになるストレスがないだけでも、かな〜り快適に開発を楽しむことができますね。それでは実際の画面をみてみましょう。

UiFlow画面構成

UiFlowの画面構成

プロジェクト名

 作成したプログラムは、ここに設定したプロジェクト名で「.m5f」ファイルとしてが保存されます。M5GO内に保存されるアプリ名もこの名前になります。

Blockly/Python

 開発はブロック型言語Blockly、またはPythonで行います。デフォルトではBlocklyモードでの編集となっていますが、ここでPythonモードに切り替えてコーディングすることもできます。

メニューバー

 UiFlowのバージョン変更、ユーザーフォーラム、各種ドキュメントの参照、例題(サンプル)アプリの読込み、Undo(取り消し)やRedo(やり直し)、M5GOへの書き込みと実行、その他各種設定を行うことができます。

UIシュミレータ

 画面左上のオブジェクトをドラッグ&ドロップで画面に配置してUI設計を行います。この画面上にオブジェクトを配置すると自動的にPythonコードが作成されます。配置したオブジェクトはクリックすることで、各種プロパティを変更することもできます。

Unit追加・設定

 センサなどのUnitを追加できます。

プログラミング画面

 ここでブロックを組み合わせてプログラミングできます。Pythonモードの場合は、コードが表示されます。

プログラミング・ブロック

 プログラミングで使用するブロックの一覧です。イベントやUIオブジェクト、変数、各種ロジックのブロックが含まれます。

サンプルアプリを動かしてみる

 UiFlowを使用して実際にプログラミングを行う前に、一度サンプルアプリを動かしてみましょう。メニューバーの「DEMO」アイコンをクリックすると、サンプルアプリの一覧が表示されます。ここでは、Unitを使用せず単体で起動できるバッテリー残量表示アプリ(Battery Animation)を選択し、「Load」ボタンを押下します。UiFlowのサンプルアプリを実行する①

UiFlowのサンプルアプリを実行する②

 アプリをロードすると、UI設計画面にバッテリーのオブジェクト、プログラミング画面にプログラミング・ブロックが表示されます。設定を変更することも可能ですが、今回はそのまま実行してみましょう。

 メニューバーの「▶︎(再生)」を押下すると、M5GOにプログラミング中のアプリが転送され、起動します。

UiFlowのサンプルアプリを実行する③

 無事にバッテリー残量を確認することができました!!ものすごく光ってます!!ちょっと嬉しいです。笑


 さて、今回は人気のマイコンモジュール、M5Stack(M5GO)の導入を行なっていきました。マイコンビギナーのわたしですが、M5Stack公式サイトで公開されているガイドブックを参照しながらスムーズに進めることができました。所感としては、ラズパイよりも簡単にはじめられ、できることはUnit追加次第で未知数、という感じでしょうか。次回は、UiFlow画面を使用しブロック型言語Blocklyに触れていきたいと思います。

 今後、M5GOを使用していろいろなIoT体験をしていきたいと思いますので、続編もご覧いただけると幸いです。

※サンプルアプリの実行時にM5GOのファームウェアが最新でない場合、エラーとなってしまうことがあります。ファームウェアのアップデートについてはスイッチサイエンスさんのブログ「M5Stack UIFlowのファームウェア更新手順」を参考にさせていただきました。

※今回[︎©︎m5stack (www.M5Stack.com)]の表記がある画像は、M5Stackさんのご好意により、公式サイトで公開されているガイドブックから引用させていただきました。
Dear M5Stack support, Thank you for your kindness and support.

SNSでもご購読できます。

コメント

Comments are closed.