🔥

【電子工作】Arduino IDE を使って M5Stack に「Hello World」を表示する

2024/06/12に公開

はじめに

本記事では、Arduino IDE を使用して M5Stack に「Hello World」を表示する手順をまとめます。

M5Stack とは、液晶画面やボタンが付属しているマイコン端末です。Raspberry Pi などのマイコンとは異なり基板むき出しでないことが特徴です。はんだ付けなしで簡単にセンサを繋げたりインターネットへの接続ができます。

今回は、M5Stack Fire コアを使用しました。M5Stack であれば手順は同じなので、ぜひ参考にしてください。
https://www.switch-science.com/products/9009

Arduino IDE のインストール

Arduino IDE とは、Arduino の開発環境のことで、エディタやコンパイラ、アップローダなどの機能がまとめられたアプリケーションです。

まず、以下のページで開発環境のインストールをします。

https://www.arduino.cc/en/software

Arduino IDE は日本語対応もしているので必要な方は、上メニューの「Arduino IDE」 -> 「Preferences」から言語選択をしてください。

ESP32 ボードを追加

次に、マイコンボードの情報を追加します。
M5Stack には、ESP32 という Wi-Fi や Bluetooth の通信機能を持つボードが搭載されています。

左メニューの上から 2 番目のマークからボードマネージャを開きます。
「esp32」と検索し、「esp32 by Espressif Systems」をインストールします。

インストールが完了したら、上メニューの「ツール」 -> 「ボード」 -> 「ボードマネージャ」 -> 「esp32」から自分に必要なボードを選択してください。

今回は、M5Stack Fire を使用するのでM5Stack-FIREを選択しました。

どのボードを選択すれば良いかわからない方は、pc にデバイスを接続し、その接続ポートを「ツール」 -> 「ポート」で選択後に「ツール」 -> 「ボード情報を取得」で設定することもできます。

M5Stack ライブラリを追加

次に、ライブラリを追加します。
ライブラリを追加することで、M5Stack のディスプレイ、ボタン、センサーなどのハードウェアを制御できるようになります。

左メニューの上から 3 番目のマークからライブラリマネージャーを開きます。
「M5Stack」と検索し、「M5Stack by M5Stack」をインストールします。
※ 依存関係について聞かれたら、依存関係なしにインストールで良いです。

以上で準備は完了です。

M5Stack に書き込む

それでは、M5Stack の画面に"Hello World"を表示するプログラムを書き込みます。

#include <M5Stack.h>

void setup() {
  M5.begin();
  M5.Lcd.print("Hello World");  // M5Stackの画面に表示する
}

void loop() {}  // 空でok

上のコードをコピーするか、上メニューの「ファイル」 -> 「スケッチ例」 -> 「M5Stack」 -> 「Basics」 -> 「HelloWorld」からサンプルコードを使用できます。

pc に M5Stack を接続し、その接続ポートを「ツール」 -> 「ポート」から選択したら、左上の矢印マークから書き込みを行います。

A fatal error occurred: Unable to verify flash chip connection (Invalid head of packet (0xE0): Possible serial noise or corruption.).
Failed uploading: uploading error: exit status 2

上記のエラーが出た方は、上メニューの「ツール」 -> 「Upload Speed」で遅い書き込み速度に変更してみてください。

画面に小さな文字で"Hello World"が表示されました 🎉

関連記事

https://zenn.dev/nyazuki/articles/2dcbeef58a0ee2

参考文献

https://amzn.asia/d/hvIzFYE
https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html

Discussion