Отправка файла с ПК на Arduino

Как я могу отправить (файл) с ПК на Arduino Yun во время работы?

Есть способ отправить некоторые команды через последовательный порт. Но как будет идти целый файл? Предполагая, что файл может без проблем разместиться в оперативной памяти.

Спасибо

, 👍0

Обсуждение

Пожалуйста, будьте точны в отношении типа файла и содержания., @leoc7

Просто используйте scp..., @Majenko

Файл изображения @leoc7. Расширение JPEG., @Hamzah Hajeir

@Majenko, не могли бы вы указать мне ссылку или библиотеку?, @Hamzah Hajeir

Какую ОС вы используете? И что вы хотите *сделать* с файлом?, @Majenko

Я использую Windows10 @Majenko., @Hamzah Hajeir

И что вы хотите сделать с файлом?, @Majenko

Чтобы отправить его в Интернет через Yun. Это неотъемлемая часть проекта., @Hamzah Hajeir

Я не понимаю. Вы хотите отправить файл на Yun со своего ПК, чтобы затем отправить его в «Интернет»? Почему вы не можете просто отправить его в «Интернет» прямо с вашего компьютера?, @Majenko

Это новая задача, которую мы пытаемся решить. Это образовательная цель., @Hamzah Hajeir

Окей... кажется мне довольно бессмысленным. Какое подключение к Yun доступно с вашего ПК? Wi-Fi? Ethernet? USB?, @Majenko

Это USB. к Серийный контакт. Если лучше использовать Ethernet, пожалуйста, укажите мне решение., @Hamzah Hajeir

Я бы предложил использовать Ethernet или WiFi, затем использовать scp (для этого возьмите Putty для Windows или установите одну из подсистем Linux) и скопируйте файл по сети. Затем вы можете получить доступ к этому файлу с помощью кода Arduino, используя библиотеку «Bridge.h» и объект «FileSystem»., @Majenko

[См. это](https://it.cornell.edu/managed-servers/transfer-files-using-putty). В конце приведен пример. Но в нашем случае каким будет наш «идентификатор пользователя» и «каталог назначения»? Мы попробовали аналогичный подход, но безуспешно. Мы использовали IP-адрес Yun (через Wi-Fi). Что изменилось бы в случае использования Ethernet?, @Hamzah Hajeir

Идентификатор пользователя, вероятно, «root». Каталог назначения? Что вы хотите. /tmp, вероятно, лучше всего., @Majenko

Спасибо, я попробую это в ближайшее время. Я предполагаю, что это будет каталог SD-карты, поэтому мне не нужна команда [в цикле], чтобы получить ее. Это аккуратно!, @Hamzah Hajeir


3 ответа


1

Вы можете отправлять файл, байт за байтом, используя Serial. На стороне Arduino вы анализируете последовательную связь и помещаете байты в массив. В конце вы реконструируете файл.

,

Какой инструмент я могу использовать для отправки этого файла с ПК на Arduino?, @Hamzah Hajeir

Я думаю, что не существует такого инструмента. Вы должны создать этот инструмент для ПК, используя, например, Visual Studio., @leoc7


0

Первый вопрос: что вы хотите сделать со своим изображением: Arduino Yun имеет чип Linux & микросхема ардуино. И я не думаю, что обработка изображений должна происходить на стороне Arduino... Таким образом, вы можете отправить свое изображение с помощью scp на сторону Linux, затем делать с ним все, что хотите, и, возможно, в конечном итоге отправить результат для действия в часть Arduino.

,

Я хочу отправить изображение. Это изображение должно быть прикреплено к электронному письму, которое будет отправлено на адрес электронной почты., @Hamzah Hajeir


0

В далеком прошлом (конец 1990-х, если кто-то считает) существовал протокол передачи файлов под названием XMODEM. который использовался для отправки файла по ссылке, обычно используемой для терминала, в небольших общедоступных системах, известных как системы досок объявлений или BBS. XMODEM разделил файл на пакеты по 129 байт, отправлял и подтверждал по одному пакету за раз. У него была простая 8-битная контрольная сумма для проверки содержимого файла, которая была просто «хорошей» на достаточно надежной линии, линии и неадекватной на зашумленной. Но это был один из первых широко используемых протоколов, созданных экспериментаторами.

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

ZMODEM был одним из тех, которые позволяли отправителю "скользящее окно" пакетов, поэтому он мог продолжать отправлять пакеты (вплоть до максимума окна), не останавливаясь для ожидания каждого подтверждения, и, помимо других улучшений, может использовать пакеты большего размера.

Их относительно легко реализовать, особенно XMODEM, а исходный код или спецификации можно найти, осмотревшись.

Если ваши файлы не слишком велики, а линии достаточно надежны, может подойти даже XMODEM.

,