
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 の詳細は以下のドキュメントを参照してください。