pdf-icon

Arduino入門

2. デバイス&サンプル

Tough microSD カード

Tough microSD カードに関連するAPIとサンプルプログラム。

サンプルプログラム

コンパイル要件

  • M5Stack ボードマネージャ バージョン >= 2.1.4
  • ボード設定 = M5Tough
  • M5Unified ライブラリ バージョン >= 0.2.5
  • M5GFX ライブラリ バージョン >= 0.2.7
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 4
#define SD_SPI_SCK_PIN 18
#define SD_SPI_MOSI_PIN 23
#define SD_SPI_MISO_PIN 38
void setup() {
M5.begin();
M5.Display.setRotation(1);
M5.Display.setFont(&fonts::FreeMono12pt7b);
// SD Card Initialization
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)) {
// Print a message if SD card initialization failed or if the SD card does not exist.
M5.Display.print("\n SD card not detected\n");
while (1)
;
} else {
M5.Display.print("\n SD card detected\n");
}
delay(1000);
// Write TXT file
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");
}
delay(1000);
}
void loop() {
// Read PNG file and draw picture
M5.Display.drawPngFile(SD, "/TestPicture01.png");
delay(500);
M5.Display.drawPngFile(SD, "/TestPicture02.png");
delay(500);
}

microSD カードを用意し、FAT32 形式でフォーマットした後、ルートディレクトリに 320*240 解像度の PNG 画像を2枚保存してください。ファイル名は TestPicture01.pngTestPicture02.png にします。(または、サンプル画像1サンプル画像2 を直接ダウンロードすることもできます。画像の解像度が 320*240 でない場合、プログラムはプリセットに基づいて表示方式を決定し、表示が乱れる可能性があります。)

下図のように、製品に付属の 2.5mm 六角レンチを使って背面の4本のネジを緩めてカバーを開けます。右側の矢印が指しているのが Tough の microSD カードスロットです。

準備したSDカードをToughに挿入します。SDカードの接点がToughの画面と同じ向きになるように注意してください。上記のコードをArduino IDEにコピーし、コンパイルしてToughにアップロードします。

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

API

ToughのmicroSDカード機能には、Arduino標準の SD ライブラリと M5GFX ライブラリの drawPngFile 関数が使用されています。詳細なAPIは以下のドキュメントを参照してください:

On This Page