SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

SORACOMでIoTをもっと楽しく、手軽に

「M5Stack」と3G拡張ボードでお手軽IoT「雨雲レーダーの表示デバイス」を作ろう

SORACOMでIoTをもっと楽しく、手軽に 第2回


  • X ポスト
  • このエントリーをはてなブックマークに追加

 IoTデバイスの製作と聞くと「基板むき出し」「ハンダ付け」こんなイメージをお持ちではないでしょうか?「M5Stack」は、5cm四方のケースの中に、マイコンやカラー液晶ディスプレイなどが詰め込まれたIoTプロトタイピング(試作)向けデバイスで、ハンダ付けをすることなく、モジュールを「積み上げる」ことで機能拡張を実現できます。また、Wi-Fi/BLE(Bluetooth)といった通信機能が内蔵されているので、IoTデバイスの製作によく用いられる人気のデバイスです。先日ソラコムから発表された「M5Stack用 3G拡張ボード」を利用することで、セルラー通信機能を搭載できるようになり、利用シーンがさらに大きく広がりました。今回は、このM5Stackと3G拡張ボードを組み合わせて「いつでも・どこでも・だれでも使える、雨雲レーダー表示デバイス」を作ってみます。

  • X ポスト
  • このエントリーをはてなブックマークに追加

 本記事の内容を動画でも解説しています! 併せてご覧ください。

M5Stackで雨雲レーダーを表示している様子
M5Stackで雨雲レーダーを表示している様子

 本稿ではM5Stack本体M5Stack用3G拡張ボードといったハードウェア費用の他、「SORACOM Air for セルラー」や「SORACOM Beam」といったSORACOMの各種サービス費用が必要となります。各サービスの料金表をご確認の上、かかる費用についてご留意ください。

M5Stackとは?

 M5Stackは複数のモデルが販売されてますが、今回は一番の基本モデルである「Basic」を中心に紹介していきます。

 中身はマイコン(ESP32)を中心に、ボタン(3つ)、スピーカー、320×240サイズのTFTカラー液晶ディスプレイ、さらにはSDカードスロットが搭載されています。また、Basicの機能に加えて9軸IMU(加速度、ジャイロ、磁気センサー)を搭載した「Grey」というモデルもありますが、コンセプトとして共通しているのは「ケースに入っている」ということです。

M5Stack Basic 外観
M5Stack Basic 外観

 また、M5Stackは側面に出ているGroveコネクタに挿せるセンサーモジュールや、M5Stackと同じ形状をした拡張ボードを「積み上げる」ことで、ハンダ付けをすることなく機能を拡張していくことができます。Groveコネクタに挿せるセンサーモジュールには温湿度・気圧センサーや、非接触温度センサーといったものが販売されています。また、拡張ボードにはGPSやリチウムバッテリーなどがあり、本稿で紹介しているM5Stack用 3G拡張ボードもこの仲間です。

 動作環境確認はBasicおよびGreyの2モデルで行っております。

M5Stackの開発環境

 M5Stackは、主に以下2種類の開発環境が準備されています。

 Arduino IDEは、「Arduino Uno」といったマイコン向けの開発環境ですが、M5Stack用のボード定義を追加することで利用することができます。また、M5FlowはWebブラウザもしくはデスクトップアプリ上で動くグラフィカルな開発環境です。内部的にはMicroPythonで動くようになっています。

Arduino IDEを用いた開発画面
Arduino IDEを用いた開発画面
M5Flowを用いた開発画面
M5Flowを用いた開発画面

 M5Flowを用いた開発にはM5Stack内のファームウェアをM5Flowに対応したものに更新する必要がありますが、書き換えをするためのツール(M5Burner)が公式から公開されているため、最小限の手間で開発環境を選べるとことも特徴的です。

 本稿ではM5Stackのファームウェアの書き換えがなくとも開発が可能な、Arduino IDEを用いていきます。

Arduino IDEを用いた開発環境のセットアップ

 Arduino IDEを用いた開発環境は、PCに以下のソフトウェアやドライバをインストールします(Windows、macOS共に対応)。

  • Arduino IDE
    • ESP32用ボード定義
    • M5Stack用ライブラリ
  • CP210X Driver(仮想シリアルポートドライバ)

Arduino IDEのインストール

 Arduino IDEはArduinoのサイトからダウンロードし、インストールを行います。

 Windowsの場合はWindows Installer版、Windows app版の2つがありますが、Windows Installer版での動作を確認しています。

ESP32用ボード定義のインストール

 M5StackはマイコンにESP32を使用しています。Arduino IDEは標準ではESP32の開発環境が入っていませんが、環境設定から追加することができるため、その設定を行います。

 まず、Arduino IDEのメニューから[ファイル]>[環境設定]で表示されるダイアログ上で追加のボードマネージャのURLに、以下のURLを記載します。

 Arduino IDEのメニューから[ツール]>[ボード: ...]>[ボードマネージャ]で表示されるダイアログ上でesp32 by Espressif Systemsをインストールします(esp32で検索すると見つけやすいです)。

M5Stack用ライブラリ

 M5Stack用のライブラリをインストールします。

 Arduino IDEのメニューから[ツール]>[ライブラリを管理]で表示されるダイアログ上でM5Stack by M5Stackをインストールします(m5stackで検索すると見つけやすいです)。

CP210X Driver(仮想シリアルポートドライバ)

 M5Stackへスケッチ(Arduino IDEではプログラムを「スケッチ」と称しています)を転送したり、M5Stackのデバッグ出力を受け取ったりするための仮想シリアルポートドライバをインストールします。

 M5Stack公式サイトのDownloadページCP210X Driverをお使いのOSに合わせてダウンロード、インストールします。

 Arduino IDEの書き込みの際、macOSの方で「シリアルポートが見つからない」旨のエラーが発生した場合は、仮想シリアルポートドライバをこちらからダウンロードしてインストールした後、macOSの[システム環境設定]>[セキュリティとプライバシー]で「システムソフトウェアの読み込みがブロックされました」に許可を与えてください。

Hello world

 準備が整ったところで、定番の「Hello World」を動かしてみましょう!

 M5StackとPCをUSB Type-Cで接続します。自動的にM5Stackの電源が入り、ロゴと共にサウンドが再生されますが、これは出荷時検査用のスケッチである「FactoryTest」です。この中身を「HelloWorld」に書き換えたいと思います。

 まず、Arduino IDEのメニューから[ツール]>[ボード: ...]で、M5Stack-Core-ESP32を選択します。

ボードの選択
ボードの選択

 Arduino IDEのメニューから[ツール]>[シリアルポート: ...]で、M5Stackが接続されているポートを選択します。

シリアルポートの選択
シリアルポートの選択

 Arduino IDEのメニューから[ファイル]>[スケッチ例]>[M5Stack]>[Basics]>[HelloWorld]を選択します。

HelloWorldの選択
HelloWorldの選択

 最後に、Arduino IDEで「書き込み」を行います。

書き込み
書き込み

 書き込みが正常に完了すれば自動的に再起動して書き込まれたスケッチが実行され、以下のように液晶ディスプレイへ「Hello World」と表示されます。

Hello World を実行している様子
Hello World を実行している様子

トラブルシュート

[ボード: ...]で「M5Stack-Core-ESP32」が一覧に表示されない

 Arduino IDEで、ESP32用ボード定義をインストールしてください。

シリアルポートでM5Stackが接続されているポートが見当たらない

 CP210X Driverをインストールしてください(OSの再起動が必要になるケースもあります)。

スケッチ例が見当たらない

  • M5Stack用ライブラリをインストールしてください。
  • ボード定義M5Stack-Core-ESP32を選択してから、再度スケッチ例を確認してください(対応していないボードのスケッチ例は「互換性なし」というスケッチ例になっています)。

次のページ
M5Stack用3G拡張ボード

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
SORACOMでIoTをもっと楽しく、手軽に連載記事一覧

もっと読む

この記事の著者

松下 享平(株式会社ソラコム)(マツシタ コウヘイ)

 株式会社ソラコムの事業開発マネージャーとして主にデバイスの企画を担当しながら、エバンジェリストとして、SORACOMサービスを企業・開発者により理解、活用いただくための講演活動を担当。90年代半ばの地方ISPの立ち上げをキャリアスタートとし、主にインターネットを取り扱ったシステムインテグレーターを...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/11689 2019/09/10 11:51

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング