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

Arduino:Примеры/MouseController

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

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

Контакты:

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


Управление мышью[1]

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

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

  • Плата Arduino Due
  • USB-мышь

Код

  1. /*
  2.  Управление мышью
  3.  
  4.  Демонстрирует использование USB-мыши, подключенной к штатному
  5.  USB-порту на плате Arduino Due.
  6.  
  7.  Создан Кристианом Мэгли (Cristian Maglie) 8 октября 2012 года.
  8.  
  9.  http://arduino.cc/en/Tutorial/MouseController
  10.  
  11.  Этот фрагмент кода не защищен авторским правом.
  12.  */
  13.  
  14. // подключаем библиотеку MouseController:
  15. #include <MouseController.h>
  16.  
  17. // инициализируем USB-контроллер:
  18. USBHost usb;
  19.  
  20. // подсоединяем к USB-контроллеру контроллер для мыши:
  21. MouseController mouse(usb);
  22.  
  23. // переменные, в которых будут храниться статусы кнопок мыши:
  24. boolean leftButton = false;
  25. boolean middleButton = false;
  26. boolean rightButton = false;
  27.  
  28. // функция, «перехватывающая» движения мыши:
  29. void mouseMoved() {
  30.   Serial.print("Move: ");  //  "Движение: "
  31.   Serial.print(mouse.getXChange());
  32.   Serial.print(", ");
  33.   Serial.println(mouse.getYChange());
  34. }
  35.  
  36. // функция, «перехватывающая» движения мыши при нажатой кнопке:
  37. void mouseDragged() {
  38.   Serial.print("DRAG: ");  //  "Перетаскивание: "
  39.   Serial.print(mouse.getXChange());
  40.   Serial.print(", ");
  41.   Serial.println(mouse.getYChange());
  42. }
  43.  
  44. // функция, «перехватывающая» нажатия на кнопки мыши:
  45. void mousePressed() {
  46.   Serial.print("Pressed: ");  //  "Нажата кнопка: "
  47.   if (mouse.getButton(LEFT_BUTTON)){
  48.     Serial.print("L");  //  "левая"
  49.     leftButton = true;
  50.   }
  51.   if (mouse.getButton(MIDDLE_BUTTON)){
  52.     Serial.print("M");  //  "средняя"
  53.     middleButton = true;
  54.   }
  55.   if (mouse.getButton(RIGHT_BUTTON)){
  56.     Serial.print("R");  //  "правая"
  57.     Serial.println();
  58.     rightButton = true;
  59.   }
  60. }
  61.  
  62. // функция, «перехватывающая» отпускания кнопок мыши:
  63. void mouseReleased() {
  64.   Serial.print("Released: ");  //  "Отпущена кнопка: "
  65.   if (!mouse.getButton(LEFT_BUTTON) && left==true) {
  66.     Serial.print("L");  //  "левая"
  67.     leftButton = false;
  68.   }
  69.   if (!mouse.getButton(MIDDLE_BUTTON) && middle==true) {
  70.     Serial.print("M");  //  "средняя"
  71.     middleButton = false;
  72.   }
  73.   if (!mouse.getButton(RIGHT_BUTTON) && right==true) {
  74.     Serial.print("R");  //  "правая"
  75.     rightButton = false;
  76.   }
  77.   Serial.println();
  78. }
  79.  
  80. void setup()
  81. {
  82.   Serial.begin(9600);
  83.   Serial.println("Program started");    //  "Скетч запущен"
  84.   delay(200);
  85. }
  86.  
  87. void loop()
  88. {
  89.   // обрабатываем USB-задач:
  90.   usb.Task();
  91. }

См.также

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

  1. Arduino.cc - MouseController