Приветствую Вас ГостьСреда, 08.01.2025, 11:58

AVR & ARDUINO




Каталог статей

Главная » Статьи » Справочник

Метод Mouse.move()

Описание

Метод перемещает указатель мыши на подсоединенном компьютере. Перемещения по экрану всегда задаются относительно текущего положения указателя. Перед использованием Mouse.move() необходимо вызвать метод Mouse.begin().

Предупреждение: при использовании функции Mouse.move() плата Arduino берет управление вашей мышью на себя, отключая настоящую. Поэтому, перед использованием этой команды убедитесь, что у вас есть возможность отключить эмуляцию мыши. С этой целью рекомендуется использовать какую-либо кнопку, позволяющую включать или выключать данную возможность.

Синтаксис

Mouse.move(xVal, yVal, wheel);

Параметры

xVal - величина, на которую следует переместить указатель вдоль оси x - signed char

yVal - величина, на которую следует переместить указатель вдоль оси y - signed char

wheel - величина смещения колеса прокрутки - signed char

Возвращаемые значения

нет

Пример

const int xAxis = A1; // аналоговый датчик для оси X 
const int yAxis = A2; // аналоговый датчик для оси Y
 
int range = 12; // диапазон перемещения по оси X и Y
int responseDelay = 2; // задержка отклика мыши в мс
int threshold = range/4; // величина порога "зоны покоя", при превышении которого считанное 
 // значение будет считаться перемещением мыши
int center = range/2; // центральная позиция "зоны покоя"
int minima[] = { 
 1023, 1023}; // фактический минимум, возвращаемый функцией analogRead для осей {x, y}
int maxima[] = {
 0,0}; // фактический максимум, возвращаемый функцией analogRead для осей {x, y}
int axis[] = {
 xAxis, yAxis}; // номера выводов для {x, y} соответственно
int mouseReading[2]; // итоговая величина перемещения мыши для осей {x, y}
 
 
void setup() {
 Mouse.begin();
}
 
void loop() {
 
// считываем величину перемещения по двум осям:
 int xReading = readAxis(0);
 int yReading = readAxis(1);
 
// перемещаем указатель мыши:
 Mouse.move(xReading, yReading, 0);
 delay(responseDelay);
}
 
/*
 функция считывает величину перемещения по указанной оси (0 для x, 1 для y) 
 и преобразовывает считанное значение из входного диапазона в диапазон перемещений 
*/
 
int readAxis(int axisNumber) {
 int distance = 0; // величина перемещения от центра диапазона
 
 // считываем значение с аналогового входа:
 int reading = analogRead(axis[axisNumber]);
 
 // если текущее считанное значение превышает значения max или min данной оси,
 // то переприсваиваем max или min:
 if (reading < minima[axisNumber]) {
 minima[axisNumber] = reading;
 }
 if (reading > maxima[axisNumber]) {
 maxima[axisNumber] = reading;
 }
 
 // преобразовываем считанное значение из входного диапазона в диапазон перемещения:
 reading = map(reading, minima[axisNumber], maxima[axisNumber], 0, range);
 
 // если пересчитанное значение выходит за пределы "зоны покоя",
 // то используем его в качестве величины перемещения:
 if (abs(reading - center) > threshold) {
 distance = (reading - center);
 } 
 
 // для корректного перемещения по вертикали 
 // значение по оси Y должно быть проинвертировано
 if (axisNumber == 1) {
 distance = -distance;
 }
 
 // возвращаем величину перемещения для данной оси:
 return distance;
}

Смотрите также:

Mouse.begin()

Mouse.click()

Mouse.end()

Mouse.press()

Mouse.release()

Mouse.isPressed()


Библиотеки Mouse и Keyboard

Справочник

Материалы взяты с официального сайта проекта Arduino и представлены по лицензии Creative Commons Attribution-ShareAlike 3.0 License.



Источник: http://arduino.cc/en/Reference/MouseMove
Категория: Справочник | Добавил: magi (15.02.2015)
Просмотров: 1559 | Теги: мышь, Mouse, arduino | Рейтинг: 0.0/0
Всего комментариев: 0
avatar
Поиск
Вход на сайт
На правах рекламы

Мы переезжаем на сайт Arduino по-русски