Эмуляция клавиатуры
Функции эмуляции клавиатуры просты в использовании. Они входят в состав стандартной библиотеки языка, поэтому для доступа к ним не требуется подключать дополнительные библиотеки. Чтобы включить режим эмуляции клавиатуры, добавьте в функцию setup следующую команду:
Keyboard.begin();
Чтобы заставить Arduino печатать что-нибудь, можно воспользоваться командами print и println, и переданный им текст появится в позиции текстового курсора:
Keyboard.println("It was the best of times.");
Чтобы сымитировать нажатие клавиш-модификаторов, например ввести комбинацию CTRL+C, используйте команду press:
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press('x');
delay(100);
Keyboard.releasrAll();
Команда press имеет односимвольный параметр, в котором ей можно передавать любые обычные символы или предопределенные константы, такие как KEY_LEFT_CTRL. После вызова команды press плата будет имитировать удержание клавиши в нажатом состоянии, пока не будет вызвана команда releaseAll. Полный список специальных клавиш можно найти по адресу http://arduino.cc/en/Reference/KeyboardModifiers.
ПРИМЕЧАНИЕ
При использовании функций эмуляции клавиатуры и мыши можно столкнуться со сложностями при программировании платы, так как она будет пытаться вводить текст, пока вы пытаетесь запрограммировать ее. Чтобы преодолеть эту проблему, примените следующий трюк: нажмите и удерживайте нажатой кнопку сброса Reset и отпустите ее, только когда в строке состояния Arduino IDE появится сообщение «uploading» («загрузка»).
Пример эмуляции клавиатуры
Следующий пример автоматически вводит текст по вашему выбору (например, пароль) после каждого сброса платы Arduino:
// sketch_11_01_keyboard
char phrase[] = "secretpassword";
void setup()
{
Keyboard.begin();
delay(5000);
Keyboard.println(phrase);
}
void loop()
{
}
Этот пример можно сделать эффективнее, если активировать ввод нажатием внешней клавиши: если вы пользуетесь компьютером Mac, операционная система будет думать, что в момент сброса платы к компьютеру подключается новая клавиатура, и выведет системный диалог, который нужно успеть закрыть до того, как плата напечатает текст.
Эмуляция мыши
Эмуляция мыши реализуется с применением того же шаблона, что и эмуляция клавиатуры. Вообще говоря, нет никаких причин, препятствующих эмуляции обоих устройств ввода в одном скетче.
Чтобы запустить эмуляцию, прежде всего следует выполнить команду
Mouse.begin();
Управление указателем мыши осуществляется командой Mouse.move. Она имеет три параметра: смещение по осям
Сымитировать щелчок мышью можно с помощью команды click. Без параметров эта команда имитирует щелчок левой кнопкой мыши. При желании ей можно передать аргумент MOUSE_RIGHT или MOUSE_MIDDLE.
Для управления длительностью щелчка можно использовать команды Mouse.press и Mouse.release. Команда Mouse.press принимает те же необязательные аргументы, что и команда Mouse.click. Эти две команды могут пригодиться, например, чтобы заставить свою «мышь» на основе Arduino выполнять щелчок при изменении состояния цифрового входа на плате. Кроме того, с их помощью можно сымитировать двойной или даже тройной щелчок.
Пример эмуляции мыши
Следующий пример перемещает указатель мыши по экрану в случайных направлениях. Чтобы прервать программу и восстановить управление компьютером, нажмите и удерживайте кнопку сброса Reset или просто отсоедините плату от компьютера.
// sketch_11_02_mouse
void setup()
{
Mouse.begin();
}
void loop()
}
int x=random(61)-30;
int y=random(61)-30;
Mouse.move(x, y);
delay(50);
}
Программирование хоста USB