Привет, Хабр! В этой статье хочу поделиться простым но интересным проектом в виде вот такой USB‑кнопки:

Зачем и для чего?
По приколу! При нажатии она посылает сигнал левой кнопки мыши и клавиши Enter, таким образом ее можно использовать например при покупках в интернете (навести курсор на «купить» и ударить по кнопке) или чтобы отправить важное сообщение (для этого используется Enter).
Примерно так, да

Что еще умеет?
Еще можно аппрувать pull‑request'ы, запускать приложения и вообще любое действие, которое можно сделать с помощью этих двух клавиш:). Кнопка проектировалась удароустойчивой, т. е. бить по ней можно со всей силы и кулаком, она не сломается. Также внутри есть круговая адресная светодиодная RGB лента с тремя режимами:
Яркий красный свет всеми светодиодами — при нажатии
Эффект загрузки (желтый светодиод бегает по кругу) — в течение 10 секунд после нажатия
Эффект «дыхания» — кнопка начинает светиться случайными светодиодами и случайным цветом спустя 10 секунд после нажатия (как режим ожидания)
Видео работы
Инструкция по сборке
Для сборки понадобятся:
3D принтер
Arduino leonardo micro beetle (например отсюда)
Круговая адресная светодиодная лента — необязательно (вот такая)
Кнопка (примерно вот такая)
Термоклей
Провод USB
Все исходники (3д модели и код) находятся тут
Инструкция:
Напечатать все детали — требуются подпорки, для крышки можно использовать динамическую толщину слоя
Установить кнопку в нижнюю часть на термоклей
Установить светодиоды, тоже на термоклей
Припаять провод, кнопку и светодиодную панель к ардуино
Прошить приложенным ардуино скетчем
Приклеить крышку сверху к кнопке
Готово!
Фото внутренностей


Недостатки конструкции и мои просчёты:
Первый просчет довольно очевиден — несмотря на то, что светодиоды цветные, через красную крышку ВНЕЗАПНО поступает в основном красный цвет. Теоретически, если крышку сделать белой, то это будет неплохим светильником.
Второе — из‑за особенностей конструкции крышка держится только за счет кнопки. Это не влияет на работоспособность, но из‑за этого она немного колеблется за счет люфтов в кнопке. Но зато итоговая толщина кнопки составляет всего 3 см!
Возможные доработки
Переделать модель чтобы убрать люфты
Сделать ее беспроводной
Напечатать белую крышку и сделать RGB лампу
На этом все. Прошло более трех лет с момента публикации прошлой статьи, и вот я решил вернуться в ряды писателей :)
Все ссылки на магазины приведены в качестве примера, автор не получает за них вознаграждение