[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用して静電容量式タッチパネルを操作してみました

2021.07.07

1 はじめに

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

M5Stack Core2 for AWSを使うために、ここまで、PlatformIOで新規プロジェクトを作成し、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を使用してスピーカーを操作してみました

BSPでは、静電容量式タッチパネルを制御するライブラリが含まれています。

最初に、動作しているサンプルです。 画面をタッチするとランダムにLEDの色を変えます。

2 FT6336U

FT6336Uライブラリは、静電容量式タッチパネルを制御する機能を提供します。

FT6336U(静電容量式タッチコントローラ)は、I2Cで接続され、割り込みピン(FT6336U_INTR_PIN)でセットアップされます。


https://edukit.workshop.aws/en/api-reference/ft6336u.html

ライブラリでは、下記のメソッドが公開されています。

  • FT6336U_Init (初期化)
  • FT6336U_GetTouch(タッチの状態取得)
  • FT6336U_WasPressed(タッチの検出)
  • FT6336U_GetPressPosX(タッチ位置の取得)
  • FT6336U_GetPressPosY(タッチ位置の取得)

3 コード

試してみたコードは、以下のとおりです。 タッチを検出して、LEDの表示色を変更しています。

#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include <stdlib.h>
#include "esp_log.h"
#include "core2forAWS.h"
 
static const char *TAG = "TOUCH_SAMPLE";

static void touch_task(void* pvParameters){
    int color_arr[] = {0xFF0000, 0xFFFF00, 0xFFFFFF, 0x00FF00, 0x00FFFF, 0x0000FF, 0xFF00FF};
    for(;;){
        if(FT6336U_WasPressed() == 1){
            int index = rand() % 7;
            int color = color_arr[index];
            ESP_LOGI(TAG, "PRESSED index:%d Color:%x", index, color);
            Core2ForAWS_Sk6812_SetSideColor(SK6812_SIDE_LEFT, color);
            Core2ForAWS_Sk6812_SetSideColor(SK6812_SIDE_RIGHT, color);
            Core2ForAWS_Sk6812_Show();
        }
        vTaskDelay(pdMS_TO_TICKS(80));
    }
    vTaskDelete(NULL); /* Should never get to here... */
}
 
void app_main(void){
    Core2ForAWS_Init();
 
    xTaskCreatePinnedToCore(touch_task, "touchTask", configMINIMAL_STACK_SIZE * 3, NULL, 1, NULL, 1);
}

4 最後に

今回は、静電容量式タッチパネルを制御するライブラリについて確認してみました。

なんとか、早くFreeRTOSでのタスクの制御を把握したいと思っているのですが、なかなか難しいです・・・踏ん張って、Core2 for AWS IoT EduKit BSPの確認を進めたいと思います。

5 参考リンク


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