M5Stack(エムファイブスタック)でHello World

#はじめに
Raspberry PiやArduino UNOなどは電子工作など様々な用途で使用されているマイコンとして、非常に有名ですが、これらよりもはるかに使いやすいM5Stackというマイコン端末があることを知り、触れてみることにしました。
#M5Stackとは
M5Stack(エムファイブスタック）とは、マイコン（ESP32）と、SDカードスロット、ボタン、USBやGroveのコネクタを5cm四方の基板に搭載し、ディスプレイや電源までを樹脂のケースに詰め込んであるマイコン端末です。
ESP32だけで、Wi-FiとBluetoothをつかった無線通信ができるので、IoTデバイスとしても人気です。

#スペック・内容物
私が購入した以下のサイトにM5Stackの詳細なスペックが記載されています。
https://www.switch-science.com/catalog/3647/

処理能力だとRaspberry Pi　＞ M5Stack ＞Arduino UNOといった感じです。

内容物はこんな感じで、梱包されていた箱に一言メッセージが入っていました！
![img1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/367782/6e1b71d3-4a4e-ea42-0fea-91626bcf8f74.jpeg)
本体＋専用の樹脂ケースに、USBケーブルやジャンパワイヤ（オス～メス）、ステッカー、説明書が同梱されています。
本体
![img2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/367782/dcde619d-82d7-db12-3669-caba06cb0e0d.png)
#ディスプレイにHello Worldを表示させる。
###Hello Worldを表示するまでの手順
１．Arduino IDEをPCにインストール
２．USBシリアルドライバのインストール
３．ESP32ボードマネージャのインストール
４．ボードの設定
５．M5Stackライブラリのインストール
６．「Hello World」のスケッチ（プログラム）を記述
７．ビルド＆マイコンボードへの書き込み処理

以上の手順でM5Stackの画面に任意の文字を表示することができます。

###１．Arduino IDEをPCにインストール
Arduino IDEでは効率よく開発できるよう、マイコン用のコンパイラ、アップローダ、ライブラリマネージャー、ボードマネージャなどの機能が入っているのでこちらを使用します。

まずは、Arduino公式サイトよりIDEをダウロードします。
https://www.arduino.cc/en/Main/Software
自分の環境にあったOSのリンクをクリックし、ダウンロード。今回はWindowd10で行います。（自宅PC）

auduino-1.8.33-Windows.exeをダウンロードし、インストールします。
※インストールは初期値のままで画面に従い、インストール。

インストールできたら、デスクトップに表示されるArudino IDEデスクトップアイコンをクリックしてIDEを起動。
###２．USBシリアルドライバのインストール
以下にアクセス
https://docs.m5stack.com/#/en/related_documents/Arduino_IDE


「4.Install USB Driver」をクリックし、Windows、Mac、Linuxいずれかのドライバをダウンロードし、PCにインストール。（私の場合はCP210x_VCP_Windows.zip）

これでUSBシリアルドライバのインストールは完了。
###３．ESP32ボードマネージャのインストール
IDEのファイルメニュー　→　環境変数を開き以下のURLを設定。
https://dl.espressif.com/dl/package_esp32_index.json
![img4.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/367782/d2a48191-2213-77b2-6471-dfbc4d60a8c6.jpeg)

OKをクリックし、次にツール　→　ボード:Arduino/Genuino UNO →　ボードマネージャに表示されたESP32 by Espressif Systems　をインストール。

ボードマネージャは閉じておきます。
###４．ボードの設定
ツールに以下が表示されていることを確認。（なければ選択）
・ボード:M5Stack-Core-ESP32
・Upload Speed:921600
・シリアルポート:COM7
###５．M5Stackライブラリのインストール
ツール　→　ライブラリをインクルード　→　ライブラリマネージャー
検索窓に「M5Stack」と入力し、検索　→　M5Stack by M5Stackをインストール

これでM5Stackを使う準備は完了になります。

###６．「Hello World」のスケッチ（プログラム）を記述
ファイル　→　スケッチ例　→　M5Stack　→　Basics　→　HelloWorld
または、以下をエディタに貼り付け。

```HelloWorld.ino
#include <M5Stack.h>

// the setup routine runs once when M5Stack starts up
void setup(){

  // Initialize the M5Stack object
  M5.begin();
  
  M5.Power.begin();
  
  // LCD display
  M5.Lcd.print("Hello World");
}

// the loop routine runs over and over again forever
void loop() {
}
```
###７．ビルド＆マイコンボードへの書き込み処理
コードがかけたら、M5StackとPCをケーブルで接続し、
画面左上の「→」ボタンをクリックすれば、ビルドされた実行形式のファイルが、マイコンボードに書き込まれ、PGが実行される。![img3.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/367782/e7da3563-64ff-50bf-f100-afc1485ee2cf.jpeg)
実行後
![img7.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/367782/e1019e46-ff33-e837-f5da-d182d48f7724.jpeg)


###まとめ
初期設定は意外とやることが多く、Raspberry Piなどと作業量は変わらないが、設定さえすれば、ハードケース、内蔵バッテリー、液晶やスピーカー、ボタンなどが既についているため、付属の部品を買わなくてもある程度遊ぶことができる。IoTや、電子工作で扱いやすいのがわかる気がしました。
個人的にはビルドに数分かかるので、設定を見直し、改善していきたいのと、他にも様々なライブラリがあるので色々触ってみようと思う。