Arduino:Примеры/KeyboardAndMouseControl

Материал из Онлайн справочника
Версия от 11:20, 8 июля 2023; EducationBot (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Управление мышью и клавиатурой[1]

Этот пример демонстрирует совместное использование библиотек для мышки и клавиатуры. В нем четыре кнопки действуют в качестве устройств для управления курсором, а пятая отвечает за левый клик мыши. То есть, если кнопка нажата, информация об этом будет отправлена на компьютер, и курсор на экране начнет двигаться. После того, как разберетесь с программированием и подключением Arduino, откройте свой любимый текстовый редактор, чтобы увидеть результаты.

Внимание!

При использовании этих библиотек Arduino перехватит роль мышки и клавиатуры на себя.

Необходимое оборудование

Необходимое ПО

Цепь

Подключите кнопки одним концом к 2, 3, 4, 5 и 6 контактам на Arduino, а вторым запитайте через контакт с 5 вольтами. Резисторы будут соединять кнопки с «землей», тем самым выполняя функцию стягивания. Подсоедините их одним концом к 2, 3, 4, 5 и 6 контактам на Arduino, а другим – к «земле».

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

Рис. 1. Схема соединения платы Arduino и 5 кнопок.
Рис. 1. Схема соединения платы Arduino и 5 кнопок.

Схема

Рис. 2. Схема соединения платы Arduino и 5 кнопок.
Рис. 2. Схема соединения платы Arduino и 5 кнопок.

Код

/*
  Управление клавиатурой и мышкой
 
  Использует пять кнопок, подключенных к Arduino (Leonardo или Micro), чтобы управлять курсором на экране компьютера.
 
  Необходимое оборудование:
 * Пять кнопок, подключенных к пяти цифровым контактам: 2-ому, 3-ему, 4-ому, 5-ому и 6-ому
 
  Этот скетч считывает значения от четырех кнопок, используя их для перемещения курсора, 
а пятая играет роль левой кнопки мыши. 
 
  Внимание! При использовании команды Mouse.move() Arduino берет на себя роль мыши! 
  Поэтому перед началом использования Arduino убедитесь, что сделали все необходимое (например, открыли текстовый редактор). 
 
  Создан 15 марта 2012, 
  модифицирован 27 марта 2012 Томом Иго (Tom Igoe).
 
  Этот код не защищен авторским правом.
 
 */

// Задаем номера контактов для пяти кнопок:
const int upButton = 2;     
const int downButton = 3;        
const int leftButton = 4;
const int rightButton = 5;
const int mouseButton = 6;

void setup() { // делаем контакты для кнопок выходными:
  pinMode(upButton, INPUT);       
  pinMode(downButton, INPUT);       
  pinMode(leftButton, INPUT);       
  pinMode(rightButton, INPUT);       
  pinMode(mouseButton, INPUT);
  
  Serial.begin(9600);
  // Инициализируем управление мышью и клавиатурой:
  Mouse.begin();
  Keyboard.begin();
}

void loop() {
  // Используем входные данные для управления мышью:
  if (Serial.available() > 0) {
    char inChar = Serial.read();

    switch (inChar) {   
    case 'u':
      // Двигаем мышью вверх:
      Mouse.move(0, -40);
      break; 
    case 'd':
      // Двигаем мышью вниз:
      Mouse.move(0, 40);
      break;
    case 'l':
      // Двигаем мышью влево:
      Mouse.move(-40, 0);
      break;
    case 'r':
      // Двигаем мышью вправо:
      Mouse.move(40, 0);
      break;
    case 'm':
      // Делаем левый клик мышью:
      Mouse.click(MOUSE_LEFT);
      break;
    }
  }

  // Используем кнопки для управления клавиатурой:
  if (digitalRead(upButton) == HIGH) {
    Keyboard.write('u'); 
  }
  if (digitalRead(downButton) == HIGH) {
    Keyboard.write('d'); 
  }
  if (digitalRead(leftButton) == HIGH) {
    Keyboard.write('l'); 
  }
  if (digitalRead(rightButton) == HIGH) {
    Keyboard.write('r'); 
  }
  if (digitalRead(mouseButton) == HIGH) {
    Keyboard.write('m'); 
  }

}

См.также

  1. Keyboard.write()
  2. Keyboard.print()
  3. Keyboard.println()


Внешние ссылки