Я хотел бы иметь возможность обновлять программное обеспечение на Arduino без физического прикосновения к устройству или кабеля. Это можно сделать?
Выберете беспроводной протокол, который делает это проще всего.
Я хотел бы иметь возможность обновлять программное обеспечение на Arduino без физического прикосновения к устройству или кабеля. Это можно сделать?
Выберете беспроводной протокол, который делает это проще всего.
Ответы:
Лучшее и простое решение, которое я нашел, - это использование Bluefruit EZ-Link от Adafruit. У них есть модуль, который вы подключаете к контактам Serial / Power / reset ( ссылка здесь ) или экран для uno ( ссылка здесь ). У них также есть отличное описание и руководство по использованию ( ссылка здесь ), что довольно хорошо. Он в основном выглядит как последовательная связь Bluetooth в IDE Arduino, и вы программируете его как обычно. У него есть дополнительное преимущество: он используется не только для программирования, но и для отправки и получения данных.
Мы реализовали удаленные обновления на Arduino Pro Mini (ATMega328P), поместив команду «boot» в обычную прошивку. Как это работает?
Это не требует нового загрузчика или оборудования. Это не очень хорошее решение для коммерческих устройств, так как, если загруженная прошивка повреждена, плата не сможет быть переведена в режим загрузчика без полной перезагрузки.
Некоторые устройства беспроводной связи, такие как XBees, имеют GPIO, который можно переключать удаленно. Подключение этого к выводу сброса Arduino позволит вместо этого сбросить плату в загрузчик.
Arduino Yun может быть удаленно reflashed (либо через Wi - Fi или сетевого кабеля): вы должны выбрать свой IP - адрес в разделе «Инструменты> Boards» меню в Arduino IDE , а затем нажмите кнопку загрузки , как обычно.
Можно написать загрузчик, работающий в ОЗУ (или даже во Flash, может быть, в специальном загрузочном блоке - зависит от микроконтроллера).
Этот загрузчик должен иметь возможность устанавливать беспроводную связь, понимать протокол и стирать / записывать флэш-память.
Существует два основных подхода к обновлению программного обеспечения:
Какой протокол вы выберете, практически не имеет значения. Просто убедитесь, что есть достаточно ресурсов для хранения его в RAM / Flash. Например, на платформе Arduino имеется более чем достаточно ресурсов для любой такой реализации.
Платы Spark.io также очень хороши для OTA-программируемых Arduino-подобных устройств. У меня есть один, и я обнаружил, что с ним довольно легко работать.