[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用してLEDを光らせてみました
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に配置されています。
作成したプロジェクトに組み込む手順は、以下の通りです。
- BSPをcomponentsの下に配置
- esp-cryptoauthlibをcomponentsの下に配置
- sdkconfig.defaultsをプロジェクトのルートに配置する
- partitions_16MB.csvをプロジェクトのルートに配置する
- platformio.iniに下記を追記する
[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.のラッパーとして提供されています。
細部の利用方法は、リファレンスから確認できます。
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を使用しててみました