Способ пройти через файловую систему и прочитать файлы с помощью Arduino
Недавно я познакомился с Arduino и хочу создать что-то большое. Моему проекту потребуется, чтобы arduino мог попасть в определенный каталог компьютера с Windows (позже может измениться на Linux, но сейчас с Windows), на котором будут файлы со значениями, необходимыми для запуска arduino.
Можно ли настроить его так, чтобы он перешел по фиксированному пути, открыл файл с определенным именем и получил его содержимое?
В идеале я бы хотел, чтобы эти значения сохранялись на моей микро-SD, чтобы я не загружал слишком много вещей в память, поскольку моя плата — Leonardo, и код уже довольно обширен. (При необходимости плату можно заменить)
Любая помощь/идеи приветствуются!
@George Sp, 👍0
Обсуждение2 ответа
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
Это может оказаться сложным.
Вам потребуется разработать USB-интерфейс на вашем Arduino, чтобы «общаться» с ПК. Затем вам нужно будет написать приложение (используйте любой язык, который вам удобен — это целая религиозная дискуссия для другого места и времени), которое «слушает» USB-соединение Arduino и выполняет большую часть работа ногами. Думайте о приложении для ПК как о своего рода «сервере сценариев», позволяющем Arduino делать загадочные запросы («FCNT» запрашивает «Количество файлов» в папке вашего целевого ПК и тому подобное), которые приложение ПК затем будет возвращать данные по мере необходимости. (В предыдущем примере «FCNT» получает количество файлов в заранее определенной папке, что возвращает четырехбайтовое [целое число] значение, показывающее результаты подсчета файлов. ) С этого момента вы можете добавить дополнительные сценарии и функции, позволяющие вашему Arduino совершать сокращенные (иногда кажущиеся неуклюжими) вызовы ПК и заставлять ПК делать то, что необходимо для выполнения этих запросов.
В примере, который я наспех описал выше, ваш Arduino отправляет «FCNT», а затем «слушает» интерфейс USB, с нетерпением ожидая возвращаемого значения, которое, как он знает, будет четырехбайтовым ответом. Если бы приложение для ПК было правильно запрограммировано, вы могли бы ловко выполнять вызовы команд, отправляя «XFR #», который запрашивает приложение для ПК «передать мне файл [#] В это время Arduino переходит в режим «планшетной доски», где он получает данные с USB и немедленно передает их на MicroSD до тех пор, пока они не будут «видны» в потоке данных, после чего Arduino возвращается в нормальный режим работы с кодом.< /п>
Конечно, ваше ПК-приложение должно быть чрезвычайно отказоустойчивым, чтобы предотвратить отправку на Arduino неверных данных или, что еще хуже, перевод их в состояние, которое невозможно легко восстановить, например, если Arduino «думает» он ожидает файл и переходит в состояние «ожидания передачи», но запрошенный им файл не существует, поскольку он был удален где-то между запросом на подсчет количества файлов и запросом на передачу. Arduino будет выглядеть «зависшим», поскольку он будет находиться в режиме «Передача файлов» или «Веселая доска», не просматривая другие сообщения и не ожидая других действий оператора.
Из-за различий в архитектурах не существует простого способа подключения Arduino к ПК. Извините.
- Как использовать SPI на Arduino?
- Нажать клавишу Windows, используя «keyboard.press();»
- Как подключить вывод INT MPU 6050?
- Улучшенное циклическое переключение цветов RGB.
- Проблема с загрузкой моего скетча на Ардуино
- Отправка мультимедийных клавиш клавиатуры с помощью библиотеки клавиатур
- Распиновка аналога Arduino Pro Micro
- Как преобразовать скетч примера Arduino в полный проект C++?
какие файлы находятся на компьютере с Windows, который вы хотите получить? ..... настроить веб-сервер на компьютере с Windows .... Arduino может получать файлы в качестве веб-клиента, @jsotola