[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用して仮想ボタンの動作を確認してみました

2021.07.04

1 はじめに

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

M5Stack Core2 for AWSを使うために、ここまで、PlatformIOで新規プロジェクトを作成して作業を始めることこと、Core2 for AWS IoT EduKit BSPの組み込みを試してみました。

今回は、引き続き、Core2 for AWS IoT EduKit BSPを使用して、「仮想ボタン」の利用方法を確認してみました。

ここで言う「仮想ボタン」とは、ディスプレイの下にある3つの印の部分の事です。

2 コード

「仮想ボタン」のタッチを検出しているコードです。

main.c

#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_log.h"
#include "core2forAWS.h"
 
static const char *TAG = "SAMPLE001";
 
static void button_task(void* pvParameters){
    for(;;){
        if (Button_WasPressed(button_left)) {
            ESP_LOGI(TAG, "LEFT PRESSED!");
        }
        if (Button_WasPressed(button_middle)) {
            ESP_LOGI(TAG, "MIDDLE PRESSED!");
        }
        if (Button_WasPressed(button_right)) {
            ESP_LOGI(TAG, "RIGHT PRESSED!");
        }
    
        vTaskDelay(pdMS_TO_TICKS(80));
    }
    vTaskDelete(NULL); // Should never get to here...
}
 
void app_main(void){
    Core2ForAWS_Init();
 
    xTaskCreatePinnedToCore(button_task, "buttonTask", configMINIMAL_STACK_SIZE * 3, NULL, 1, NULL, 1);     
}

ボタンに触れると、シリアルモニターで下記のようにログを確認できます。

3 API Reference

仮想ボタンに関するAPIのリファレンスは、下記にあります。
https://edukit.workshop.aws/en/api-reference/button.html

どのボタンがタッチされたのか、また、現在の状況は?、そして、長時間押されているか?などを処理することが可能です。

4 CONFIG_SOFTWARE_BUTTON_SUPPORT

仮想ボタンを使用する場合、sdkconfigCONFIG_SOFTWARE_BUTTON_SUPPORTが有効になっている必要があります。

デフォルトで有効ですが、うまく動作しない時は、意図せず、削除されていないかを、最初に確認したほうが良いと思います。

5 最後に

今回は、新規作成したプロジェクトに、Core2 for AWS IoT EduKit BSPを組み込み、仮想ボタンの動作を確認してみました。

仮想ボタンは、ちょっとUXに制限があるので、もしかすると、このような機能は、LVCLでディスプレイ上に配置する方が、利用場面は多いかもしれません。

次回、LVCLでディスプレイ上にボタンを配置する要領を確認使用と思います。

6 参考リンク


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