[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用してLEDを光らせてみました

2021.07.03

1 はじめに

IoT事業部の平内(SIN)です。

昨日、PlatformIOで新規プロジェクトを作成して、基本的な動作を確認してみました。

本日は、Core2 for AWS IoT EduKit BSPを導入して、提供されているモジュールで、M5Stack Core2 for AWSの両サイドに配置されているLEDを操作してみました。

2 Core2 for AWS IoT EduKit BSP

Core2 for AWS IoT EduKit BSPは、M5Stack Core2に含まれる、さまざまなドライバや、そのモジュールを提供しています。
M5Stack Core2 for AWS IoT EduKit board support package (BSP)

2021/07/03現在の、BSPは、1.4.1となっており、Espressif's IoT Developer Framework (ESP-IDF) のversion 4.2に依存しています。

また、ESP-IDF v4.2は、カスタマイズされたバージョンの FreeRTOSが使用されています。

3 BSPの組み込み

BSPは、AWS IoT EduKitで提供される各プロジェクトのcomponents/core2forAWSに配置されています。

作成したプロジェクトに組み込む手順は、以下の通りです。

[platformio]
src_dir = src

; Custom partition file
board_build.partitions = partitions_16MB.csv

作業としては、https://github.com/m5stack/Core2-for-AWS-IoT-EduKitをダウンロードして、新規作成したプロジェクトに必要なファイルをコピーすると簡単かもしれません。

4 sdkconfigの再生成

ここで、作成したプロジェクトのルートにあるsdkconfigを削除し、コピーしたsdkconfig.defaultsから再生成するため、ターミナルから下記のコマンドを実行します。

% pio run -e sample001 -t menuconfig

下記のような画面が表示された時点で、sdkconfigは、作成されますので、ESCで終了します。

5 コンパイル

下記のコマンドでコンパイルします。

% pio run -e sample001

問題なければ(SUCCESSと表示されたら)、アップロードします。

% pio run -e sample001 -t upload

再起動すると、アップロードしたプログラムが動作し、画面が白くなります。(点滅ではありません)

モニターして、リセットボタンを押すと、初期化のログ確認できます。

% pio run -e sample001 -t monitor

BSP初期化の最後は、ATECC608の初期化です。ここまで表示されていれば、問題なしと言えると思います。

␛[0;32mI (1358) gpio: GPIO[39]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 1| Intr:3 ␛[0m
␛[0;32mI (2758) atecc608: Seeding the random number generator...␛[0m
␛[0;32mI (2758) atecc608: ok␛[0m
␛[0;32mI (2798) atecc608: Initializing ATECC608 secure element␛[0m
␛[0;32mI (2798) atecc608: ok␛[0m
␛[0;32mI (2798) atecc608: Checking data zone lock status...␛[0m
␛[0;32mI (2838) atecc608: ok: locked␛[0m
␛[0;32mI (2838) atecc608: Get the device info (type)...␛[0m
␛[0;32mI (2878) atecc608: ok: 60 02␛[0m

6 LED表示

Core2 for AWS IoT EduKit BSPの組み込みが完了すると、あとは簡単です。

main.cを下記のように書き換えて、実行してみます。

#include "core2forAWS.h"

void app_main(void){
    Core2ForAWS_Init();

    Core2ForAWS_Sk6812_SetSideColor(SK6812_SIDE_LEFT, 0x00ff00);
    Core2ForAWS_Sk6812_SetSideColor(SK6812_SIDE_RIGHT, 0xff0000);

    Core2ForAWS_Sk6812_Show();
}

左右のLEDが、緑色と赤色に点灯することを確認できます。

7 SK6812ライブラリ

LED表示で利用したSK6812ライブラリは、loboris/MicroPython_ESP32_psRAM_LoBo project.のラッパーとして提供されています。


SK6812

細部の利用方法は、リファレンスから確認できます。
https://edukit.workshop.aws/en/api-reference/core2for_a_w_s_8h.html#a15558a37529e89394598df0128d721c9

8 最後に

今回は、新規作成したプロジェクトに、Core2 for AWS IoT EduKit BSPを組み込み、LEDを操作してみました。

Core2 for AWS IoT EduKit BSPの組み込みが完了すれば、提供されている各種のモジュールが簡単に利用できるはずです。

続けて、試してみたいと思います。

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を使用しててみました