Довольно давно закончил проект “веб-визитки”. Идея до ужаса не нова - подобное делалось уже у Frank Zhao в проекте USB Business Card. Но там для работы нужен был любой текстовый редактор - тут же удалось продвинуться немного дальше.
Сценарий работы довольно простой.
Пользователь подключает устройство к USB, ждет окончания установки драйверов, открывает браузер и давит аж 4 раза “caps lock”.
4 раза много, понятное дело, но 2 нажатия мало чтобы отловить “случайные”, 3 - будет “бесить” ибо КАПС останется в нажатом состоянии. Так что четыре.
Визитка изображает из себя клавиатуру, и в этот момент “выстреливает” неким заранее заданным URL, завершая процесс нажатием “ввод”.
Но и это еще не “конец” - ибо на страничке после загрузки грузится Java-апплет, который “дергает” CapsLock еще 4 раза и визитка выдает уже пароль. Ну а дальше дело техники - пользователя уже ведут на нужный раздел.
Схема проекта с Attiny, работающем без кварца и на нужной скорости была взята отсюда, равно как и основа для прошивки.
Вот отладочная плата, на которой выполнялись всяческие предварительные действия:
А вот на этой фотке самый первый вариант (до поездки “за разъемами” в прекрасное далеко).
В общем получилось то самое место, где AVR GCC и прочийembedded встречаются с Java, html/css/jquery. Все это более-менее работает на Windows вплоть до Windows 8 (правда только в десктопном режиме, хотя без “явы” можно и в metro-режиме, правда capslock придется давить аж в 2 приема) и во всех браузерах, где поддерживается Java Applets.
На MacOS умная система начала интересоваться типом клавиатуры и пытаться попросить нажать магическую кнопку для более точного определения. Linux все нашел, правда работало все только в командной строке.
Ужасы, которые пришлось испытать в процессе - конечно же отладка, ну а при сборке - установка microUSB разъема на плату. Было угроблено целых 2 (тупо залито припоем изнутри), сожжено несколько дорожек, правда потом все-таки удалось постичь Дао и этого процесса. А цапонлак помог с закреплением самого разъема на плате, чтобы не оторвать сразу.
[[Смотреть на YouTube](http://youtu.be/CWhXTfBna5Y)]