Arduino:Примеры/MouseController

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

Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.


Управление мышью[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 }

См.также

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