Главная chevron_right Функции chevron_right USB chevron_right Mouse

Mouse

Библиотека Mouse превращает совместимую плату Arduino в USB-мышь: управляет курсором, кнопками и колёсиком, используя относительное смещение.

Полная статья

Описание

Библиотека Mouse реализует поддержку USB HID-мыши прямо на плате Arduino. С её помощью скетч может двигать курсор, нажимать и отпускать кнопки, а также проверять, удерживается ли кнопка в данный момент.

Важная особенность: курсор перемещается относительно текущего положения, а не по абсолютным координатам экрана. Это означает, что Mouse.move(10, 0) сдвинет указатель на 10 единиц вправо от того места, где он находился в момент вызова — независимо от разрешения монитора или положения на рабочем столе.

Совместимое оборудование

Mouse работает только на платах с нативной поддержкой USB HID. Классические Uno и Mega не подойдут: их основной USB-разъём не поддерживает HID-режим.

ПлатаПоддерживаемые контакты
LeonardoВсе цифровые и аналоговые контакты
MicroВсе цифровые и аналоговые контакты
Arduino DueВсе цифровые и аналоговые контакты
ZeroВсе цифровые и аналоговые контакты
UNO R4 MinimaВсе цифровые и аналоговые контакты
UNO R4 WiFiВсе цифровые и аналоговые контакты
GIGA R1 Wi-FiВсе цифровые и аналоговые контакты
Nano ESP32Все цифровые и аналоговые контакты
Семейство MKRВсе цифровые и аналоговые контакты

Где применяется

  • Самодельные устройства ввода: трекболы, джойстики, педали, альтернативные мыши для людей с ограниченными возможностями.
  • Панели управления с физическими кнопками и колёсиком прокрутки.
  • Автоматизация простых действий курсором на тестовых стендах.
  • Учебные и демонстрационные проекты по теме USB HID.

Практические замечания

  • Движение курсора относительное, поэтому накапливается: если вызывать Mouse.move() в каждой итерации loop() без условия, курсор будет непрерывно уходить в сторону. Всегда привязывайте команды мыши к чёткому событию — нажатию кнопки, порогу датчика или отдельному режиму работы.
  • Перед тем как подключать реальное управление курсором, проверьте логику скетча через Serial.print(): убедитесь, что значения осей и условия срабатывания ведут себя так, как ожидается. Это сэкономит время и нервы.
  • Если скетч «потерял» курсор (он ушёл за пределы экрана), просто отключите плату от USB — курсор вернётся под управление обычной мыши.
  • Библиотека не даёт возможности узнать абсолютные координаты курсора на экране: плата отправляет только относительные смещения, а операционная система сама вычисляет итоговое положение.
  • Скорость перемещения зависит от того, как часто вызывается Mouse.move() и какие значения смещений вы передаёте. Для плавного движения используйте небольшие значения и delay() или таймер.

Функции

Полезные материалы