Способ пройти через файловую систему и прочитать файлы с помощью Arduino

Недавно я познакомился с Arduino и хочу создать что-то большое. Моему проекту потребуется, чтобы arduino мог попасть в определенный каталог компьютера с Windows (позже может измениться на Linux, но сейчас с Windows), на котором будут файлы со значениями, необходимыми для запуска arduino.

Можно ли настроить его так, чтобы он перешел по фиксированному пути, открыл файл с определенным именем и получил его содержимое?

В идеале я бы хотел, чтобы эти значения сохранялись на моей микро-SD, чтобы я не загружал слишком много вещей в память, поскольку моя плата — Leonardo, и код уже довольно обширен. (При необходимости плату можно заменить)

Любая помощь/идеи приветствуются!

, 👍0

Обсуждение

какие файлы находятся на компьютере с Windows, который вы хотите получить? ..... настроить веб-сервер на компьютере с Windows .... Arduino может получать файлы в качестве веб-клиента, @jsotola


2 ответа


1

Arduino не имеет доступа к файловой системе ПК. Все, что у него есть, — это последовательное соединение, с помощью которого он может обмениваться данными с какой-либо программой, работающей на ПК. Код, обрабатывающий файловую систему ПК, придется запускать на самом ПК.

,

У Леонардо есть USB для HID., @Juraj

@Юрай, как это поможет?, @Majenko

Это не так. Но неверно, что оно имеет только «последовательное» соединение. (и я знаю, что USB тоже является последовательной связью), @Juraj

@Юрай Строго говоря, да, это правда. «S» в USB означает последовательный порт. Он имеет последовательное соединение, через которое накладывается ряд протоколов. Один из которых сам эмулирует другое последовательное соединение., @Majenko

Я медленно редактировал комментарий, @Juraj

поэтому Win + E запускает Проводник, какой-то ярлык переходит в поле пути, введите путь, Enter, Tab для перехода к панели. «последовательный» HID может это сделать, @Juraj

Но как потом вернуть данные в Arduino? Он не видит экран. По сути, вы бы попросили HID написать на вашем компьютере программу, которая считывает данные и отправляет их по каналу CDC/ACM. Довольно задача, и действительно немного глупая. Просто напишите программу для ПК и заставьте ее обмениваться данными только через CDC/ACM - таким образом, она не будет мешать сеансу вашего рабочего стола и не прерывать вас. Или вместо этого используйте сетевое соединение и соберите данные с веб-сайта/онлайн-сервиса., @Majenko

Я лишь хотел указать, как могла возникнуть идея управления ПК., @Juraj


0

Это может оказаться сложным.

Вам потребуется разработать USB-интерфейс на вашем Arduino, чтобы «общаться» с ПК. Затем вам нужно будет написать приложение (используйте любой язык, который вам удобен — это целая религиозная дискуссия для другого места и времени), которое «слушает» USB-соединение Arduino и выполняет большую часть работа ногами. Думайте о приложении для ПК как о своего рода «сервере сценариев», позволяющем Arduino делать загадочные запросы («FCNT» запрашивает «Количество файлов» в папке вашего целевого ПК и тому подобное), которые приложение ПК затем будет возвращать данные по мере необходимости. (В предыдущем примере «FCNT» получает количество файлов в заранее определенной папке, что возвращает четырехбайтовое [целое число] значение, показывающее результаты подсчета файлов. ) С этого момента вы можете добавить дополнительные сценарии и функции, позволяющие вашему Arduino совершать сокращенные (иногда кажущиеся неуклюжими) вызовы ПК и заставлять ПК делать то, что необходимо для выполнения этих запросов.

В примере, который я наспех описал выше, ваш Arduino отправляет «FCNT», а затем «слушает» интерфейс USB, с нетерпением ожидая возвращаемого значения, которое, как он знает, будет четырехбайтовым ответом. Если бы приложение для ПК было правильно запрограммировано, вы могли бы ловко выполнять вызовы команд, отправляя «XFR #», который запрашивает приложение для ПК «передать мне файл [#] В это время Arduino переходит в режим «планшетной доски», где он получает данные с USB и немедленно передает их на MicroSD до тех пор, пока они не будут «видны» в потоке данных, после чего Arduino возвращается в нормальный режим работы с кодом.< /п>

Конечно, ваше ПК-приложение должно быть чрезвычайно отказоустойчивым, чтобы предотвратить отправку на Arduino неверных данных или, что еще хуже, перевод их в состояние, которое невозможно легко восстановить, например, если Arduino «думает» он ожидает файл и переходит в состояние «ожидания передачи», но запрошенный им файл не существует, поскольку он был удален где-то между запросом на подсчет количества файлов и запросом на передачу. Arduino будет выглядеть «зависшим», поскольку он будет находиться в режиме «Передача файлов» или «Веселая доска», не просматривая другие сообщения и не ожидая других действий оператора.

Из-за различий в архитектурах не существует простого способа подключения Arduino к ПК. Извините.

,