Arduino:Примеры/MouseController
Перейти к навигации
Перейти к поиску
Поддержать проект | Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Перевод: Максим Кузьмин (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 }
См.также
Внешние ссылки