質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
M5Stack

M5Stackは、小型のマイコンモジュールです。拡張モジュールが豊富に用意されており、センサと組み合わせることで測定機能を自由に追加することができます。

Q&A

解決済

3回答

3732閲覧

MicroSDのファイルがM5Stackで読み込めない

shun1kawa

総合スコア1

M5Stack

M5Stackは、小型のマイコンモジュールです。拡張モジュールが豊富に用意されており、センサと組み合わせることで測定機能を自由に追加することができます。

0グッド

0クリップ

投稿2022/10/14 02:20

編集2022/10/14 02:21

前提

M5StackでMicroSDから画像を読み込みたいと思っていますが、表示されません。

  • SD.beginを行っていますが、こちらもFalseで返ってくる(コード行目)
  • M5Stack経由でSDのroot配下のファイル一覧を表示しても0件で返ってくる
  • もちろん「M5.Lcd.drawJpgFile(SD, "/default.jpg");」は表示されない
  • MacからMicroSDを初期化(FAT32)
  • MicroSDは①SanDiskUltra32GB(MicroSDHC) ②KIOXIA 16GB(MicroSDHC)を使用したが、どちらも同じ結果
  • MicroSDへはMacbookAir(M2)から、SDカードリーダー「BUFFALO(BSCR27U3 series)」や「ELECOM MR-K013」で行ったが、どちらも結果は同じ ※いずれもUSB-C変換アダプタ使用

※コンパイルやM5Stackへの書き込みは正常にできており、SDカードの情報を読取る部分のみ問題が起きているという状況です

環境

  • M5Stack:BASIC(ESP32)
  • MicroSD:①SanDiskUltra32GB(MicroSDHC) と ②KIOXIA 16GB(MicroSDHC)
  • SDカードリーダー ①BUFFALO(BSCR27U3 series)と ②ELECOM MR-K013
  • PC:Macbook Air(M2)
  • エディタ:Arduino IDE

実現したいこと

MicroSDに保存した画像やファイルをM5Stackで読み取りたい。
もしくはM5Stack本体に問題があるのか、SDカードとの相性、もしくはSDカード自体の不具合なのか、
どこに原因があるかを知りたく思っています。

該当のソースコード

sample.ino

1#include <M5Stack.h> 2#include <WiFiClientSecure.h> 3#include <WiFi.h> 4#include <SD.h> 5 6File root; 7File file; 8 9void setup() { 10 M5.begin(); 11 M5.Lcd.println("Initializing SD card..."); 12 13 if (!SD.begin(5)) { 14 M5.Lcd.println("initialization failed!"); 15 } 16 17 file = SD.open("/test.txt", FILE_WRITE); 18 if (!file) { 19 M5.Lcd.println("ERROR: OPEN FILE."); 20 } 21 file.println("sample"); 22 file.close(); 23 24 root = SD.open("/"); 25 printDirectory(root, 0); 26 27 //画像表示 28 M5.Lcd.drawJpgFile(SD, "/default.jpg"); 29} 30 31void printDirectory(File dir, int numTabs) { 32 while(true) { 33 File entry = dir.openNextFile(); 34 if (! entry) { 35 dir.rewindDirectory(); 36 break; 37 } 38 for (uint8_t i=0; i<numTabs; i++) { 39 M5.Lcd.print('\t'); 40 } 41 M5.Lcd.print(entry.name()); 42 if (entry.isDirectory()) { 43 M5.Lcd.println("/"); 44 printDirectory(entry, numTabs+1); 45 } else { 46 M5.Lcd.println("\t\t"); 47 //M5.Lcd.println(entry.size(), DEC); 48 } 49 } 50}

実行結果

M5Stackの画面には

Initializing SD card... initialization failed! ERROR: OPEN FILE.

となります。

また、test.txtファイルはSDカード内に新規作成されていませんでした。

お知恵をお貸しいただけますと幸いです。
※当方M5Stack超初心者です。どうぞよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

SDカードを読み書きするサンプルプログラムをきちんと動くようにしましょう

あとは、そのサンプルプログラムに手を加えていって、あなたの希望する動作をさせていきます
で、手を加えていって動かなくなったら、動かなくなる手前まで戻って、なにが原因で動かなくなるのか、を確認していきます

投稿2022/10/14 03:33

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

【別ブランドのSDカードを購入・トライしたら無事動作しました】
手持ちのMicroSD2枚で試してみて駄目でしたが、
一か八か別ブランドのSDを購入し、到着後そのままフォーマットせず画像を入れてみたら無事動作いたしました。
https://amazon.co.jp/dp/B07DJ17CKQ
※フォーマット(FAT32)するとMacで見ると隠しファイルが2点ほどありましたが、上記の場合隠しファイル0件でした

コメントいただいた方々、ご丁寧に教えていただきありがとうございました。

投稿2022/10/18 07:07

shun1kawa

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

arduino

1if (!SD.begin(5)) { // 5 ? 引数なしでいい

投稿2022/10/14 02:52

ozwk

総合スコア13528

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shun1kawa

2022/10/14 02:54

ありがとうございます。 たった今試してみましたが、結果変わらず同様のままでした...
ozwk

2022/10/14 04:32

公式のサンプルなど、動作が確認されていそうなプログラムを動かしてみてください それで動けばソフトがおかしいですし 動かなければハードの問題です
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問