чтение карты micro SD напрямую с ПК
Возможно ли чтение карты microSD (на прорыве) через порт USB на ардуино? или, возможно, другой USB-порт, который я мог бы подключить к прорыву? По сути, я хотел бы считывать данные с карты с помощью моего ноутбука без необходимости каждый раз извлекать ее!
@201, 👍1
Обсуждение3 ответа
Это было бы очень полезно, но на самом деле это невозможно, так как скетч Arduino, который вы пишете, связывается с ПК только через последовательный интерфейс.
Драйвер IDE/Arduino может использовать USB для записи вашего скетча и использовать USB для связи, но для скетчей USB (как прямой носитель) невозможен.
SD-карта не будет отображаться как определенный диск/карта/папка на вашем ПК.
Поскольку вы хотите прочитать SD-карту, напишите в своем скетче код для передачи файлов, которые вы хотите отправить на ПК, для передачи их по UART, а на ПК напишите программу, которая считывает последовательный порт. и обрабатывает его.
В целом это возможно. Но вы не можете прочитать SD-карту через USB-порт Arduino. Вместо этого вам нужно прочитать SD-карту по другому протоколу, например, SPI (ищите соответствующую библиотеку) и отправить ее на компьютер через последовательный порт. Вам понадобится программное обеспечение на стороне ПК для записи содержимого, которое было прочитано с Arduino, в файл.
Посмотрите руководство по SD-карте, чтобы узнать, как его читать. .
Итак, если я хочу, скажем, прочитать историю моих данных за последний год из регистратора данных, могу ли я использовать SPI для установления этого соединения между SD-картой и Arduino? у вас есть пример кода, который может быть полезен?, @201
В Интернете есть примеры и учебные пособия (я нашел одно для вас). Но могу я спросить, почему вы хотите использовать Arduino? У вас нет устройства чтения SD-карт для использования с USB на вашем ноутбуке?, @Sim Son
@201, а как он подключен для регистрации данных? не через SPI?, @Juraj
вы правы, но на самом деле это проект, над которым я сейчас работаю.., @201
Это невозможно сделать с Arduino, но можно с другими микроконтроллерами. Вам нужен микроконтроллер с прямым USB-подключением, а также стек USB, способный работать как запоминающее устройство USB. Что-то вроде плат серии Teensy или chipKIT может сделать это.
Затем вы можете написать программное обеспечение, которое по команде будет отсоединять SD-карту от вашей обычной операции скетча и повторно подключать ее к устройству MSD в стеке USB. Затем вы можете читать и записывать на SD-карту (хотя иначе ваш скетч не может получить к ней доступ) столько, сколько хотите, а затем «размонтировать» устройство MSD и отсоединить от него SD-карту, после чего ваш скетч может быть снова переустановлен. -прикрепите себя к карте и снова начните пользоваться.
Обратите внимание, что здесь важно то, что одновременно может работать только один функционал - либо вы можете читать и записывать файлы на карту со своим скетчем, или вы можете экспортировать устройство через MSD . Никогда оба. Это приводит к повреждению файловой системы и потере данных.
- SD-карта не инициализируется
- Что означают эти контакты? Куда мне их подключить?
- Понимание того, почему следует избегать «String» и альтернативных решений
- Arduino: как записать значение переменной в текстовый файл и изменить его на SD-карте?
- Сохранение файла .txt на SD-карту и чтение данных каждого содержимого в файл txt, а затем сохранение его в переменной
- Простая веб-страница с Ethernet-шилдом Arduino на SD-карте
- Проблема с открытием нескольких текстовых файлов одновременно/по порядку с использованием <SD.h>
- Arduino SD card не может писать (пишет плохие файлы, а потом я получаю ошибку)
да, это возможно, @jsotola
@jsotola Правда? Интересно, как (я думал, что Arduino не поддерживает использование USB в скетче, по крайней мере, по умолчанию)., @Michel Keijzers
@MichelKeijzers, используйте последовательное соединение для передачи данных ... ОП спросил о возможности передачи данных ... я не вижу требования эмулировать флэш-накопитель, @jsotola
@jsotola хорошо, я думаю, что у нас примерно одна и та же идея (я удалил свой ответ на основе вашего комментария, который теперь не удален, стреляйте в него, если он неверен)., @Michel Keijzers
разве на каждом ПК нет устройства для чтения SD-карт?, @Juraj
@201, На всякий случай из комментариев или ответов непонятно: USB содержит много разных протоколов. Arduino использует последовательный протокол USB. SDCard использует протокол USB-накопителя. Немногие периферийные устройства USB могут переключаться между протоколами. Я вижу, вы еще не выбрали правильный ответ. Если вы хотите, чтобы я уточнил еще один ответ - добавьте комментарий с указанием этого., @st2000
@Juraj Возможно, да, но я думаю, что он не хочет извлекать SD-карту ... на самом деле в моем проекте я также думаю о создании SD-карты где-то внутри устройства (таким образом, недоступной снаружи), потому что это делает ее сборку внутри корпус намного проще., @Michel Keijzers
@MichelKeijzers, в моем проекте я показываю/загружаю файлы с SD через веб-сервер, @Juraj
@juraj звучит как отличная идея!, @201
@MichelKeijazers, можешь поделиться со мной программой?, @201
@ st2000 другой протокол, такой как SPI, верно? Можете ли вы дать мне больше информации о том, как это сделать?, @201
@201, я думаю, Маженко лучше всех ответил на твой вопрос. Но, чтобы добавить немного, для сложных протоколов существуют физические уровни / верхние уровни (USB) и нижние уровни (последовательный USB или USB-накопитель и другие). Карта SDCard должна будет использовать запоминающее устройство USB, а интерфейс Arduino всегда использует последовательный порт USB. Да, у SDCard одним из двух возможных физических уровней является SPI. Но к тому времени, когда вы доберетесь до USB-порта, SDCard использует USB-накопитель. И, к сожалению, это не то, что Arduino поддерживает через свой USB-порт. Arduino, конечно, поддерживает последовательный порт USB., @st2000
@ st2000 Итак, можно использовать SPI для соединения между SD-картой и последовательным портом Arduino, верно? проект, над которым я работаю, требует прошлогодних данных, хранящихся на SD-карте, и показывает их на ПК, не извлекая SD-карту из регистратора данных щита... для меня это звучит сложно..., @201
Хотя я думаю, что нашел ответ, я могу просто попросить последовательный порт записать для меня файл, сохраненный на SD-карте, с помощью этой команды: Serial.write(dataFile.read());, @201
так что вот еще один вопрос... могу ли я сохранять данные в течение долгого времени на моей SD-карте? например на год?, @201
[Этот веб-сайт] (https://integralmemory.com/faq/how-long-will-data-stay-valid-memory-card) утверждает, что срок хранения ~10 лет., @st2000
@st2000 большое спасибо, @201