この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
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を使用してスピーカーを操作してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用して静電容量式タッチパネルを操作してみました
BSPでは、ジャイロセンサーや、温度センサーを制御するライブラリが含まれています。
最初に、動作しているサンプルです。 M5Stackの傾きに合わせて、画面のバーの長さを変えてみました。
2 MPU6886
MPU6886ライブラリは、6軸慣性測定ユニット(IMU)と温度センサーを制御する機能を提供します。
MPU6886(6軸 IMUユニット)は、I2Cで接続されます。
https://edukit.workshop.aws/en/api-reference/mpu6886.html
ライブラリでは、下記のメソッドが公開されています。
- MPU6886_Init(初期化)
- MPU6886_SetGyroFSR(ジャイロスコープのスケール範囲を設定)
- MPU6886_GetGyroRes(ジャイロスコープの解像度を取得)
- MPU6886_GetGyroAdc(ジャイロスコープの測定値を取得「16bi ADC」)
- MPU6886_GetGyroData(ジャイロスコープの測定値を取得)
- MPU6886_SetAccelFSR(加速度計のスケール範囲を設定)
- MPU6886_GetAccRes(加速度計の解像度を取得)
- MPU6886_GetAccelAdc (加速度計の測定値を取得「16bi ADC」)
- MPU6886_GetAccelData(加速度計の測定値を取得)
- MPU6886_GetTempAdc(温度の取得「16bi ADC」)
- MPU6886_GetTempData(温度の取得)
3 コード
試してみたコードは、以下のとおりです。 ジャイロセンサーで取得したデータを画面上にバーで表示し、500msごとに更新しています。
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_log.h"
#include "core2forAWS.h"
static const char *TAG = "SAMPLE001";
// Bar生成
lv_obj_t * create_bar(int y) {
lv_obj_t * bar = lv_bar_create(lv_scr_act(), NULL);
lv_obj_set_size(bar, 200, 20);
lv_bar_set_range(bar, 0, 100);
lv_obj_align(bar, NULL, LV_ALIGN_CENTER, 0, y);
return bar;
}
// Barへの値設定
void set_value(lv_obj_t * bar, float value) {
value += 1;
value *= 50;
lv_bar_set_value(bar, (int)value, LV_ANIM_OFF);
}
static void accel_task(void* pvParameters){
lv_obj_t * bar_x = create_bar(-40);
lv_obj_t * bar_y = create_bar(0);
lv_obj_t * bar_z = create_bar(40);
float accel_x = 0.00;
float accel_y = 0.00;
float accel_z = 0.00;
for(;;){
MPU6886_GetAccelData(&accel_x, &accel_y, &accel_z);
ESP_LOGI(TAG, "X:%.2f Y:%.2f Z:%.2f", accel_x, accel_y, accel_z);
set_value(bar_x, accel_x);
set_value(bar_y, accel_y);
set_value(bar_z, accel_z);
vTaskDelay(pdMS_TO_TICKS(500));
}
vTaskDelete(NULL);
}
void app_main(void){
Core2ForAWS_Init();
Core2ForAWS_Display_SetBrightness(80);
xTaskCreate(accel_task, "accelerometerTask", configMINIMAL_STACK_SIZE * 3, NULL, 1, NULL);
}
4 最後に
今回は、ジャイロセンサーを制御するライブラリについて確認してみました。 もう少しで、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を使用しててみました