Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Arduino:Примеры/KeyboardAndMouseControl

Материал из Онлайн справочника
Перейти к: навигация, поиск

Перевод: Максим Кузьмин (Cubewriter)
Перевел 2686 статей для сайта.

Контакты:

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


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

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

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

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

  • Плата Arduino Leonardo или Arduino Due;
  • Макетная плата Breadboard;
  • Пять кнопок;
  • Пять резисторов на 10 кОм;

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

  • Любой текстовый редактор;

Цепь

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

KeyboardMouseControl bb.png

Схема

KeyboardMouseControl schem.png

Код

  1. /*
  2.   Управление клавиатурой и мышкой
  3.  
  4.   Использует пять кнопок, подключенных к Arduino (Leonardo или Micro), чтобы управлять курсором на экране компьютера.
  5.  
  6.   Необходимое оборудование:
  7.  * Пять кнопок, подключенных к пяти цифровым контактам: 2-ому, 3-ему, 4-ому, 5-ому и 6-ому
  8.  
  9.   Этот скетч считывает значения от четырех кнопок, используя их для перемещения курсора,
  10. а пятая играет роль левой кнопки мыши.
  11.  
  12.   Внимание! При использовании команды Mouse.move() Arduino берет на себя роль мыши!
  13.   Поэтому перед началом использования Arduino убедитесь, что сделали все необходимое (например, открыли текстовый редактор).
  14.  
  15.   Создан 15 марта 2012,
  16.   модифицирован 27 марта 2012 Томом Иго (Tom Igoe).
  17.  
  18.   Этот код не защищен авторским правом.
  19.  
  20.  */
  21.  
  22. // Задаем номера контактов для пяти кнопок:
  23. const int upButton = 2;    
  24. const int downButton = 3;        
  25. const int leftButton = 4;
  26. const int rightButton = 5;
  27. const int mouseButton = 6;
  28.  
  29. void setup() { // делаем контакты для кнопок выходными:
  30.   pinMode(upButton, INPUT);      
  31.   pinMode(downButton, INPUT);      
  32.   pinMode(leftButton, INPUT);      
  33.   pinMode(rightButton, INPUT);      
  34.   pinMode(mouseButton, INPUT);
  35.  
  36.   Serial.begin(9600);
  37.   // Инициализируем управление мышью и клавиатурой:
  38.   Mouse.begin();
  39.   Keyboard.begin();
  40. }
  41.  
  42. void loop() {
  43.   // Используем входные данные для управления мышью:
  44.   if (Serial.available() > 0) {
  45.     char inChar = Serial.read();
  46.  
  47.     switch (inChar) {  
  48.     case 'u':
  49.       // Двигаем мышью вверх:
  50.       Mouse.move(0, -40);
  51.       break;
  52.     case 'd':
  53.       // Двигаем мышью вниз:
  54.       Mouse.move(0, 40);
  55.       break;
  56.     case 'l':
  57.       // Двигаем мышью влево:
  58.       Mouse.move(-40, 0);
  59.       break;
  60.     case 'r':
  61.       // Двигаем мышью вправо:
  62.       Mouse.move(40, 0);
  63.       break;
  64.     case 'm':
  65.       // Делаем левый клик мышью:
  66.       Mouse.click(MOUSE_LEFT);
  67.       break;
  68.     }
  69.   }
  70.  
  71.   // Используем кнопки для управления клавиатурой:
  72.   if (digitalRead(upButton) == HIGH) {
  73.     Keyboard.write('u');
  74.   }
  75.   if (digitalRead(downButton) == HIGH) {
  76.     Keyboard.write('d');
  77.   }
  78.   if (digitalRead(leftButton) == HIGH) {
  79.     Keyboard.write('l');
  80.   }
  81.   if (digitalRead(rightButton) == HIGH) {
  82.     Keyboard.write('r');
  83.   }
  84.   if (digitalRead(mouseButton) == HIGH) {
  85.     Keyboard.write('m');
  86.   }
  87.  
  88. }

См.также

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

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

  1. Arduino - Keyboard and Mouse Control