В большинстве случаев вы правы - Javascript, запущенный в вашем браузере, не имеет доступа ко многим ресурсам, необходимым для перепрограммирования и отладки платы разработки.
Однако есть несколько способов работывокруг этого:
1.Создание плат разработки, которые могут работать с аппаратными API, к которым браузер уже разрешает доступ.
Обычно это связано с использованием API неожиданными способами.Встроенная отладочная прошивка на всех платах mbed эмулирует USB-накопитель.Пользователь может загрузить файл микропрограммы с сайта mbed и затем скопировать его на диск для установки микропрограммы на плате разработки.
Существует также более творческое (неправильное) использование аппаратных API-интерфейсов.Например, эта плата Chibitronics использует браузер, отправляющий новую прошивку через аудиовыход.Я также слышал о - но не могу найти подходящую ссылку - пример использования протокола U2F для выполнения двойной обязанности в качестве механизма обновления встроенного программного обеспечения.
Поскольку этот подход повторно использует существующие API, в целом он широко поддерживается,но требует дополнительной работы на стороне устройства для установки квадратного штифта в круглое отверстие.
2.Установите собственное приложение / расширение, которое обращается к оборудованию и позволяет веб-сайту получать доступ к оборудованию через расширение.
Это подход, используемый TI Cloud Tools, Arduino Create и Codebender.После того, как пользователь установил сопутствующее приложение, это приложение позволяет веб-сайту получить доступ ко всему, что будет доступно для обычной IDE.
В некотором смысле этот подход очень похож на создание собственного приложения с оченьоблачный пользовательский интерфейс.
3.Расширьте браузеры, добавив новые аппаратные API, которые можно использовать для программирования плат разработки.
Проекты стандартов WebBluetooth и WebUSB добавляют новые API, позволяющие Javascript получать доступ к BLE иУстройства USB напрямую, которые затем можно использовать для связи напрямую с подключенным оборудованием отладки USB или загрузчиками BLE.
micro: bit в настоящее время тестирует бета-программу , которая использует WebUSB для непосредственного программирования и обмена данными.с платами micro: bit.
Эти API реализованы только в Chrome, поэтому они не являются универсальным решением.Кроме того, из-за ограничений безопасности и проблем с драйверами не все существующее оборудование совместимо с WebUSB.