На YouTube-канале блогера Senior Software Vlogger появилось новое видео. В нем автор канала рассказал про малоизвестный стандарт Web USB — или возможность управлять USB-устройствами прямо из браузера.
Highload публикует основное из этого материала
Web USB — это стандарт, изобретенный Google для подключения USB-устройств к браузеру. Он впервые появился в 2016 году в 61 версии браузера Chrome.
Суть стандарта очень простая: Google решил дать доступ к браузеру всем USB-устройствам, которые подключены к компьютеру. Таким образом, браузер может управлять этими устройствами, а устройства могут передавать данные браузеру.
Так и есть. Поэтому WebUSB есть только в Google Chrome. Но все не так плохо и некоторые ограничения в виду безопасности все же есть:
В само устройство тоже можно вшить адрес веб-страницы. Если это сделать, то, как только вы подключите устройство к компьютеру, браузер вам подскажет, на какой URL перейти. При первом переходе на этот сайт тоже будет кнопка «Подключиться», но при последующих подключение будет осуществляться автоматически.
Тем не менее, если вы перейдете на chrome://device-log, то там увидите список всех USB-устройств, подключенных к компьютеру. То есть Google автоматически читает их, вне зависимости от того, подключали ли вы их к конкретной странице.
Важно! Если браузер не запущен — Google ни о чем не знает.
Google взял уже существующий USB-стандарт и реализовал этот стек в браузере. То есть, если вы программировали USB-устройства на низком уровне, для вас не будет ничего нового. Там будет:
Возможно, вы когда-нибудь видели медицинское оборудование, которое подключено к компьютеру под управлением древней Windows без возможностей ее обновить. Просто потому, что ПО для этого железа не заведется на современной Windows. Web USB мог бы решить эту проблему: агрегат просто подключался бы к ноутбуку через USB.
Другой пример: любое устройство, которое требует настройки до начала использования. Обычно нужен какой-то маленький экранчик, кнопки или даже опознавательные знаки аля «если пищит три раза — то устройство в таком-то режиме». Как было бы здорово, если бы такое устройство можно было бы просто подключить к браузеру и настроить через сайт производителя все, что пожелаешь. А с Web USB это возможно.
Вам понадобится USB-устройство, контроллер которого имеет полное управление над портом USB. Например, подойдут микроконтроллеры Arduino. Иначе — нужно будет самостоятельно прописывать драйвер.
Для Arduino есть уже готовая высокоуровневая надстройка в репозитории на GitHub. Она выполняет две функции:
Также она включает JavaScript-библиотеку, в которой прописан бесконечный цикл. Он постоянно читает обновления из USB-порта и уведомляет о новых подключенных устройствах.
На этой демке проще всего показать, как из браузера управлять железом. Более того: мы не только управляем этим светодиодом, но прописываем в коде, чтобы предыдущее состояние светодиода сохранилось. Соответственно, когда мы его подключаем, он светится тем цветом, которым он светился в последний раз.
Страничка в браузере считывает код нажатой клавиши, трансформирует его в частоту ноты, эту частоту передает по проводу на Arduino, а Arduino уже его воспроизводит.
За основу была взята игра-файтинг, которая работает на JavaScript в браузере, и был немного изменен ее код. А из контроллера получился «джойстик», которым можно управлять бойцом.
Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…
В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…
Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…
Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…
Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…
IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…