Главная chevron_right Уроки chevron_right Встроенные примеры chevron_right USB chevron_right Keyboard and Mouse Control: управление курсором и клавиатурой с Arduino

Keyboard and Mouse Control: управление курсором и клавиатурой с Arduino

Урок показывает, как использовать библиотеки Mouse и Keyboard вместе: пять кнопок двигают курсор и отправляют символы на компьютер.

В этом уроке мы объединим библиотеки Mouse и Keyboard в одном скетче. Пять тактовых кнопок выполняют роль джойстика: каждое нажатие одновременно перемещает курсор мыши и отправляет на компьютер символ, соответствующий направлению. Откройте любой текстовый редактор, загрузите скетч — и можно наблюдать результат прямо на экране.

⚠️ Важно: Как только скетч вызывает Mouse.move(), Arduino перехватывает управление курсором вашего компьютера. Обязательно предусмотрите кнопку-«стоп» или иной способ прервать выполнение до того, как начнёте двигать мышь программно. Иначе вернуть контроль над курсором будет непросто.

Что понадобится

Железо

  • Arduino Leonardo, Micro or Arduino Due board
  • 5 тактовых кнопок (momentary pushbutton)
  • 5 резисторов по 10 кОм
  • соединительные провода
  • макетная плата (breadboard)

Программное обеспечение

  • Любой текстовый редактор (Notepad, gedit, TextEdit — что угодно)

Схема подключения

Подключите кнопки к пинам 2, 3, 4, 5 и 6. Один контакт каждой кнопки — к пину, второй — к +5V. Резисторы 10 кОм включите между соответствующим пином и GND (pull-down): без них входы будут «висеть в воздухе» и давать ложные срабатывания.

Когда скетч загружен, отключите USB-кабель, откройте текстовый редактор, затем снова подключите плату и нажимайте кнопки — текст будет появляться в документе, а курсор — перемещаться.

Схема подключения: Arduino Leonardo с пятью кнопками и подтягивающими резисторами на макетной плате. Кнопки подключены к пинам 2–6, резисторы 10 кОм соединяют каждый пин с GND.

Принципиальная схема

Принципиальная схема: Arduino Leonardo, пять кнопок и пять резисторов 10 кОм в роли pull-down.

(нажмите на изображения, чтобы увеличить)

Код

Как это работает

Скетч опрашивает пять цифровых входов в функции loop(). Когда кнопка нажата (пин читает HIGH), происходят два события одновременно:

  1. Mouse.move() сдвигает курсор в нужном направлении на заданное количество пикселей.
  2. Keyboard.print() отправляет символ-букву, обозначающую это направление.

Такая связка позволяет увидеть в текстовом редакторе, какие кнопки вы нажимали, и одновременно управлять курсором — удобно для демонстрации и отладки.

Типичные ошибки

  • Курсор улетает в угол и не останавливается. Скорее всего, pull-down резистор не подключён или подключён неправильно, и пин постоянно читает HIGH. Проверьте монтаж.
  • Плата не определяется как HID-устройство. Библиотеки Mouse и Keyboard работают только на платах с нативной USB-поддержкой: Leonardo, Micro, Due. На Uno или Nano этот скетч не запустится.
  • После загрузки скетча невозможно загрузить следующий. Если курсор хаотично двигается, IDE может не успеть войти в режим загрузки. Зажмите кнопку RESET на плате перед нажатием «Загрузить» в IDE.
  • Символы не вводятся в редактор. Убедитесь, что окно текстового редактора активно (имеет фокус) в момент нажатия кнопок.

Как проверить результат

  1. Загрузите скетч.
  2. Откройте любой текстовый редактор и кликните в поле ввода.
  3. Нажимайте кнопки по одной — в документе должны появляться буквы, а курсор мыши — смещаться в соответствующем направлении.
  4. Убедитесь, что каждая из пяти кнопок даёт ожидаемый символ и направление движения.

Дополнительные материалы

Больше базовых примеров вы найдёте в разделе built-in examples.

Подробное описание всех функций языка Arduino собрано в language reference.

Последнее обновление: 29.07.2015, SM