Как записать данные на флешку?

arduino-uno usb data logging

Я работаю над проектом, в котором мне нужно регистрировать данные, но мне интересно, можно ли регистрировать эти данные на флэш-накопителе? Я знаю, что могу записывать данные на SD-карту, но я подумал, что флэш-накопитель будет более доступен для пользователей, которые хотят получить данные. И если есть возможность записать на флешку, можно ли это сделать в формате CSV? Данные — это просто данные датчика.

, 👍2

Обсуждение

они делают крошечные ридеры, которые преобразуют sd / microsd в USB-накопители примерно в том же форм-факторе, что и флэш-накопитель. не совсем то же самое, но гораздо проще и дешевле взаимодействовать с MCU., @dandavis


2 ответа


Лучший ответ:

2

В принципе, вы можете записывать на флэш-накопитель любые данные, двоичные и текстовые (таким образом, также CSV).

Однако Arduino Uno не поддерживает прямое подключение USB-накопителя. Если вы хотите подключить USB-накопитель, вам понадобится так называемый USB Host Shield (для Arduino).

Дополнительную информацию можно прочитать на сайте Arduino на этой странице:

https://docs.arduino.cc/retired/shields/arduino-usb-host -щит

,

2

[Обновлено]

В качестве альтернативы хост-шилду Uno также может помочь переход на другой микроконтроллер Arduino. Для связи с флэш-накопителями требуется USB-хост.

Некоторые модели Arduino имеют встроенный порт USB (например, Arduino Due, Arduino Leonardo, Arduino Micro, Arduino Nano 33 IOT, Arduino Zero, Arduino MKR Zero, Arduino MKR1000...), который будет работать как клиентское USB-устройство.

Меньший набор микроконтроллеров может действовать как USB-клиент или хост (например, Arduino Due, Arduino Portenta и т. д.). Существует библиотека USBHost для Arduino Due, указанная в справочнике по Arduino. Документация по Arduino Portenta в режиме хоста USB находится здесь.

Здесь обсуждение ( и ссылку на альтернативную библиотеку) относительно использования Due для записи файлов на флэш-накопитель.

Конечно, требуется кабель-переходник или флэш-накопитель с физическим разъемом, соответствующим родному порту USB на выбранном MCU. Оба общедоступны.

См. также Может ли Arduino взаимодействовать с USB-устройствами без защитного экрана USB?

,

Для Micro и Leonardo в техническом описании ATmega32U4 указано, что его USB-контроллер «поддерживает полноскоростную и низкоскоростную роль _Device_». Я не вижу упоминания о поддержке роли _host_. Вы уверены, что они могут выступать в качестве хозяина?, @Edgar Bonet

Привет, Эдгар, у меня нет опыта работы с Due, поэтому я полагался на связанное обсуждение списка других MCU с родным USB. Я отредактирую свой ответ. Спасибо. Знаете ли вы список MCU с родным USB, поддерживающим хост?, @RowanP

Нет простите. Мой опыт работы с Arduino с поддержкой USB ограничен игрой с библиотекой [Keyboard](https://github.com/arduino-libraries/Keyboard) на Micro. Я только что узнал, что Due поддерживает хост, благодаря вашему ответу., @Edgar Bonet

Спасибо за помощь!, @Renier Jr.