この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
1 はじめに
IoT事業部の平内(SIN)です。
先日まで、M5Stack Core2 for AWSがどのような構成になているかを確認するため、Core2 for AWS IoT EduKit BSPの動作確認を進めました。
Visual Studio Code + PlatformIO 環境で M5Stack Core2 for AWS でHello Worldしてみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用してLEDを光らせてみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用してディスプレイに表示してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用して仮想ボタンの動作を確認してみました
[M5Stack Core2 for AWS] LVCLを使用してディスプレイ上のボタンの動作を確認してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用して電源を操作してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用してスピーカーを操作してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用して静電容量式タッチパネルを操作してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用してジャイロセンサーを操作してみました
かなり薄いですが、少しイメージできたので、今回からは、ArduinoでM5Stack Core2 for AWSを操作してみたいと思います。 引き続き、開発環境は、Visual Studio Code + PlatformIOです。
2 New Project
PlatformIOのアイコンから、「Home」- 「New Project」と辿り、プロジェクトを新規に作成します。
Name:(プロジェクト名)を適当につけ(ここでは、Sample002としました)、Board: は、「MSStack Core2」、Framework: を「Arduino」とし、Finishで進めます。
Location:にチェックが入っている場合、~/Documents/PlatformIO/Projectsの下に、作成したプロジェクトのフォルダが生成されます。(チェックなしの場合、プロジェクトの保存場所を、設定する手順となります)
作成されるファイル構成は、以下のようになってます。
% tree ~/Documents/PlatformIO/Projects/Sample002 -a
/Users/sin/Documents/PlatformIO/Projects/Sample002
├── .gitignore
├── .pio
│ └── build
│ ├── project.checksum
│ └── sample002
├── .vscode
│ ├── c_cpp_properties.json
│ ├── extensions.json
│ └── launch.json
├── include
│ └── README
├── lib
│ └── README
├── platformio.ini
├── src
│ └── main.cpp
└── test
└── README
3 platformio.ini
プロジェクトのルートに作成されるplatformio.iniを以下のように編集します。編集したのは、env名と、シリアル関連の設定の追記です。
[env:sample002]
platform = espressif32
board = m5stack-core2
framework = arduino
monitor_speed = 115200
upload_port = /dev/cu.SLAB_USBtoUART
4 コンパイル+アッップロード
新規プロジェクトのmain.appは、以下のように空っぽですが、このまま、コンパイル+アップロードしてみます。
src/main.cpp
#include <Arduino.h>
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
PlatformIOのアイコンから、「Miscellaneous」- 「New Terminal」と辿り、ターミナルを開き、下記のコマンドを実行します。
% pio run -e sample002
[Success]が表示されれば、コンパイル完了です。
M5Stack Core2 for AWSをUSBで接続し、ターミナルから、下記のコマンドでアップロードします。 こちらも、[Success]が表示されれば、アップロード完了です。
% pio run -e sample002 -t upload
プログラムが空っぽなので、電源をOFF/OFしても、残念ながら何も起こりません。
5 ライブラリ(M5Core)追加
PlatformIOのメニューから「Libraries」を辿り、「M5Core2」を検索して選択します。
Add Projectで表示されるウインドウで、プロジェクト(ここでは、Sample002)を選択することで、このライブラリを取り込むことができます。
プロジェクトに追加したライブラリは、.pio/libdepsの下に配置されます。
% tree ~/Documents/PlatformIO/Projects/Sample002 -a
/Users/sin/Documents/PlatformIO/Projects/Sample002
├── .gitignore
├── .pio
│ ├── build
│ │ ├── project.checksum
│ │ └── sample002
│ └── libdeps
│ └── sample002
│ └── M5Core2
│ ├── .clang-format
│ ├── .gitignore
│ ├── .piopm
│ ├── LICENSE
│ ├── README.md
│ ├── README_cn.md
│ ├── examples
│ │ ├── Basics
│ │ │ ├── mpu6886
│ │ │ │ └── mpu6886.ino
│ │ │ ├── record
│ │ │ │ └── record.ino
│ │ │ ├── rtc_wakeup
6 シリアル通信でHello World
シリアル通信で、Hello Worldを表示するため、main.cppを下記のように書き換えます。
main.cpp
#include <M5Core2.h>
void setup() {
Serial.begin(9600);
M5.begin(true, true, true, true);
}
void loop() {
int counter = 0;
for(;;){
Serial.printf("Hello World. [%d]\n", counter);
counter++;
delay(500);
}
}
uploadでコンパイル及び、アップロードが始まります。
% pio run -e sample002 -t upload
monitorで、シリアルポートをモニターします。
% pio run -e sample002 -t monitor
M5Stack Core2をリセットすることで、初期化のメッセージの後、プログラムした、Hello Worlsを確認できます。
7 ディスプレイでHello World
ディスプレイで、Hello Worldを表示するため、main.cppを下記のように書き換えます。
main.cpp
#include <M5Core2.h>
void setup() {
M5.begin(true, true, true, true);
M5.Lcd.setTextSize(3);
M5.Lcd.print("Hello World");
}
void loop() {
int counter = 0;
for(;;){
M5.Lcd.printf("Hello World. [%d]\n", counter);
counter++;
delay(500);
}
}
プログラムをコンパイルしてアップロードすると、今度は、画面で、Hello Worldを確認できます。
8 最後に
今回は、Arduinoで、Hello Worldしてみました。久々に、FreeRTOSから離れて・・・Arduinoのライブラリでcppして、やっぱこんなに楽か!!ってなりましたw。
9 参考リンク
Visual Studio Code + PlatformIO 環境で M5Stack Core2 for AWS でHello Worldしてみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用してLEDを光らせてみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用してディスプレイに表示してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用して仮想ボタンの動作を確認してみました
[M5Stack Core2 for AWS] LVCLを使用してディスプレイ上のボタンの動作を確認してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用して電源を操作してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用してスピーカーを操作してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用して静電容量式タッチパネルを操作してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用してジャイロセンサーを操作してみました
[M5Stack Core2 for AWS] PlatformIO を使用して、ArduinoでHello Worldしてみました
[M5Stack Core2 for AWS] ArduinoでLED (Adafruit NeoPixel フルカラーLED) を点灯してみました
[M5Stack Core2 for AWS] Arduinoで仮想ボタンを作成してみました
[M5Stack Core2 for AWS] ArduinoでMQTT接続してみました
[M5Stack Core2 for AWS] Arduinoでオーディオファイルを再生してみました
[M5Stack Core2 for AWS] Arduinoでマイクの利用方法を確認してみました
[M5Stack Core2 for AWS] ArduinoでGroveポートのGPIOを使用しててみました