
Arduino入門
Tab5 microSD カードに関連する API とサンプルコードです。
#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枚をループ再生します。
Tab5 microSD カード部分は Arduino 標準の SD ライブラリと、M5GFX ライブラリの drawPngFile を使用しています。関連 API の詳細は以下のドキュメントを参照してください。