Энтузиаст запустил игру в стиле Pong внутри RP2040, подключённого к мыши, для отображения на экране ПК
Разработчик Гай Дюпон представил открытый проект мыши (на базе простой мышки HP и контроллера Seeed Studio XIAO RP2040) с игрой в стиле Pong, запущенной внутри прошивки микроконтроллера. Игра отображается на экране ПК при движении колёсиком мыши. Код проекта написан на С и С++ и опубликован на GitHub под лицензией MIT.
Встроенная в мышь игра останавливается/запускается, когда пользователь нажимает на колесо прокрутки. В противном случае мышь работает нормально. Счёт отображается после того, как набрано очко, путём отображения курсора где-то между левой и правой частью половины экрана. Чем ближе к данной части курсор, тем больше выигрывает игрок. Если курсор находится посередине, счёт равный.
Автор проекта использовал плату Seeed Studio XIAO RP2040 и возможности TinyUSB, чтобы запускать устройство в качестве пользовательского USB-адаптера в системе, так и в качестве хоста. Он отключил штатную USB-часть от внутренней части дешёвой мыши HP и подключился в разрыв USB-соединения с помощью контактов питания/GPIO XIAO к исходной печатной плате мыши. Этот позволило собрать USB-перехватчик, который можно запрограммировать на что угодно.
«Большинство современных компьютерных мышей используют относительное позиционирование — они сообщают об изменениях в своем движении. Если вы медленно перемещаете мышь влево, она может выдать кучу пакетов, где компонент x равен всего -1 (что означает, что мышь переместилась на 1 «пиксель» влево). Однако, можно реализовать USB-мышь, которая использует абсолютное позиционирование. Она может отправлять точную позицию на вашем мониторе (процент X, процент Y), куда курсор должен мгновенно переместиться. Это обычно используется для драйверов сенсорных экранов — вы хотите, чтобы курсор появлялся там, где
Читать на habr.com