Arduino入門

2. デバイス&サンプル

5. 拡張モジュール&サンプル

アクセサリー

6. アプリケーション

Tab5 microSD カード

Tab5 microSD カードに関連する API とサンプルコードです。

サンプルコード

コンパイル条件

  • M5Stack ボードマネージャバージョン >= 3.2.2
  • 開発ボードオプション = M5Tab5
  • M5Unified ライブラリバージョン >= 0.2.23
  • M5GFX ライブラリバージョン >= 0.2.30
cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
#include <Arduino.h>
#include <SPI.h>
#include <SD.h>
#include <M5Unified.h>
#include <M5GFX.h>

#define SD_SPI_CS_PIN   42
#define SD_SPI_SCK_PIN  43
#define SD_SPI_MOSI_PIN 44
#define SD_SPI_MISO_PIN 39

void setup()
{
    M5.begin();

    M5.Display.setRotation(1);
    M5.Display.setFont(&fonts::FreeMonoBold18pt7b);

    // SDカード初期化
    SPI.begin(SD_SPI_SCK_PIN, SD_SPI_MISO_PIN, SD_SPI_MOSI_PIN, SD_SPI_CS_PIN);
    if (!SD.begin(SD_SPI_CS_PIN, SPI, 25000000)) {
        // SDカードの初期化に失敗、または存在しない場合にメッセージを表示
        M5.Display.print("\n SD card not detected\n");
        while (1);
    } else {
        M5.Display.print("\n SD card detected\n");
    }
    delay(1000);

    // TXTファイルを書き込み
    M5.Display.print("\n SD card write test...\n");
    auto file = SD.open("/WriteTest.txt", FILE_WRITE, true);
    if (file) {
        file.print("Hello, world! \nSD card write success! \n");
        file.close();
        M5.Display.print(" SD card write success\n");
    } else {
        M5.Display.print(" Failed to create TXT file\n");
    }
    delay(1000);

    M5.Display.print("\n SD card read test...\n");
    if (SD.open("/TestPicture01.png", FILE_READ, false)) {
        M5.Display.print(" PNG file 01 detected\n");
    } else {
        M5.Display.print(" PNG file 01 not detected\n");
    }
    if (SD.open("/TestPicture02.png", FILE_READ, false)) {
        M5.Display.print(" PNG file 02 detected\n");
    } else {
        M5.Display.print(" PNG file 02 not detected\n");
    }
}

void loop()
{
    // PNGファイルを読み込み画像を描画
    M5.Display.drawPngFile(SD, "/tab5_test_picture_1280_x_720_01.png");
    delay(1000);
    M5.Display.drawPngFile(SD, "/tab5_test_picture_1280_x_720_02.png");
    delay(1000);
}

microSD カードを FAT32 形式でフォーマットし、ルートディレクトリに解像度 720*1280 の PNG 画像を2 枚配置し、TestPicture01.png、TestPicture02.png と命名してください。(サンプル画像1、サンプル画像2 を直接ダウンロードしても構いません。画像の解像度が 720*1280 でない場合、プログラムの設定によって表示方式が変わり、表示が崩れる可能性があります。)

この SD カードを Tab5 に挿入してください。SD カードの端子面は Tab5 のスクリーンと同じ方向に向けます。上記コードを Arduino IDE にコピーしてコンパイルし、Tab5 に書き込みます。

このプログラムは SD カードに WriteTest.txt というテキストファイルを作成して文字列を書き込み、その後 SD カード内の PNG 画像 2 枚をループ再生します。

API

Tab5 microSD カード部分は Arduino 標準の SD ライブラリと、M5GFX ライブラリの drawPngFile を使用しています。関連 API の詳細は以下のドキュメントを参照してください。

Page Tools
PDF
On This Page