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

Arduino:Примеры/KeyboardController

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

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

Контакты:

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


Управление клавиатурой[1]

Плата Arduino Due способна выступать в качестве USB-хоста для периферийных устройств вроде клавиатуры, подключенной к порту SerialUSB. Данный пример демонстрирует использование класса KeyboardController из библиотеки USBHost.

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

  • Плата Arduino Due
  • USB-клавиатура (примечание: клавиатуры, подключаемые через встроенный USB-хаб, работать не будут; среди таких клавиатур, к примеру, модели от Apple)

Код

  1. /*
  2.  Управление клавиатурой
  3.  
  4.  Демонстрирует использование USB-клавиатуры, подключенной к USB-контроллеру
  5.  на плате Arduino Due.
  6.  
  7.  Создан Кристианом Мэгли (Cristian Maglie) 8 октября 2012 года.
  8.  
  9.  http://arduino.cc/en/Tutorial/MouseController
  10.  */
  11.  
  12. // подключаем библиотеку KeyboardController:
  13. #include <KeyboardController.h>
  14.  
  15. // инициализируем USB-контроллер:
  16. USBHost usb;
  17.  
  18. // подсоединяем к USB-контроллеру контроллер для клавиатуры:
  19. KeyboardController keyboard(usb);
  20.  
  21. // функция, «перехватывающая» нажатия на клавиши:
  22. void keyPressed() {
  23.   Serial.print("Pressed:  ");  //  "Нажата клавиша: "
  24.   printKey();
  25. }
  26.  
  27. // функция, «перехватывающая» отпускания клавиш:
  28. void keyReleased() {
  29.   Serial.print("Released: ");  //  "Отпущена клавиша: "
  30.   printKey();
  31. }
  32.  
  33. void printKey() {
  34.   // функция getOemKey() возвращает OEM-номер, привязанный к клавише:
  35.   Serial.print(" key:");  //  " клавиша: "
  36.   Serial.print(keyboard.getOemKey());
  37.  
  38.   // функция getModifiers() возвращает число, обозначающее клавишу-модификатор:
  39.   int mod = keyboard.getModifiers();
  40.   Serial.print(" mod:");  //  " модификатор: "
  41.   Serial.print(mod);
  42.  
  43.   Serial.print(" => ");
  44.  
  45.   if (mod & LeftCtrl)
  46.     Serial.print("L-Ctrl ");  //  " Левый Ctrl "
  47.   if (mod & LeftShift)
  48.     Serial.print("L-Shift ");  //  " Левый Shift "
  49.   if (mod & Alt)
  50.     Serial.print("Alt ");
  51.   if (mod & LeftCmd)
  52.     Serial.print("L-Cmd ");  //  " Левый Cmd "
  53.   if (mod & RightCtrl)
  54.     Serial.print("R-Ctrl ");  //  " Правый Ctrl "
  55.   if (mod & RightShift)
  56.     Serial.print("R-Shift ");  //  " Правый Shift "
  57.   if (mod & AltGr)
  58.     Serial.print("AltGr ");
  59.   if (mod & RightCmd)
  60.     Serial.print("R-Cmd ");  //  " Правый Cmd "
  61.  
  62.   // функция getKey() возвращает ASCII-значение OEM-клавиши, объединенной с модификаторами:
  63.   Serial.write(keyboard.getKey());
  64.   Serial.println();
  65. }
  66.  
  67. void setup()
  68. {
  69.   Serial.begin(115200);
  70.   Serial.println("Program started");   //  "Скетч запущен"
  71.   delay(200);
  72. }
  73.  
  74. void loop()
  75. {
  76.   // обрабатываем USB-задачи:
  77.   usb.Task();
  78. }

См.также

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

  1. Arduino.cc - KeyboardController