pdf-icon

Arduino入門

2. デバイス&サンプル

6. アプリケーション

CoreS3 画像出力

CoreS3 が microSD カード内の画像ファイルを出力するサンプルプログラム。

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
#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  36
#define SD_SPI_MISO_PIN 35
#define SD_SPI_MOSI_PIN 37

void setup() {
  M5.begin();

  M5.Display.setTextFont(&fonts::Orbitron_Light_24);
  M5.Display.setTextSize(1);

  // 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カードが検出されません\n");
    while (1)
      ;
  } else {
    M5.Display.print("\n SDカードが検出されました\n");
  }
  delay(1000);

  // TXTファイル書き込み
  M5.Display.print("\n SDカード書き込みテスト...\n");
  auto file = SD.open("/WriteTest.txt", FILE_WRITE, true);
  if (file) {
    file.print("Hello, world! \nSDカードへの書き込み成功! \n");
    file.close();
    M5.Display.print(" SDカードへの書き込み成功\n");
  } else {
    M5.Display.print(" TXTファイルの作成に失敗しました\n");
  }
  delay(1000);

  M5.Display.print("\n SDカード読み取りテスト...\n");
  if (SD.open("/TestPicture01.png", FILE_READ, false)) {
    M5.Display.print(" PNGファイル01が検出されました\n");
  } else {
    M5.Display.print(" PNGファイル01が検出されません\n");
  }
  if (SD.open("/TestPicture02.png", FILE_READ, false)) {
    M5.Display.print(" PNGファイル02が検出されました\n");
  } else {
    M5.Display.print(" PNGファイル02が検出されません\n");
  }
}

void loop() {
  // PNGファイルを読み込み、画像を描画する
  M5.Display.drawPngFile(SD, "/TestPicture01.png");
  delay(1000);
  M5.Display.drawPngFile(SD, "/TestPicture02.png");
  delay(1000);
}
On This Page