Всем привет, сегодня разберем как эмулировать клавиатуру и мышь c помощью плат Arduino Leonardo и Digispark.
Сначала разберем эмуляцию клавиатуры и мыши с помощью digispark а потом с arduino leonardo.
Если вы работаете с Digispark-ом впервые, рекомендую прочесть нашу статью. После того как вы установили необходимые драйвера и платы в arduino ide можно переходить к следующему шагу.
Для работы с клавиатурой и мышью подключаем библиотеку DigiKeyboard.h или DigiMouse.h:
Загружаем... Digispark имеет особенность: его не надо подключать как обычные платы сразу и выбирать порт. После нажатия на кнопку загрузки, ждем пока скомпилируется и после отображения сообщения:
Вставляем Digispark в любой разъем и ждем загрузки, она происходит почти мгновенно. В случае успеха будет выведено:
> Starting the user app... running: 100 % complete >> Micronucleus done.Thank you!
После этого выполниться программа, в данном случае наберется: "Hello Digispark!" Так как будто это набрано на клавиатуре, только очень быстро.
Для демонстрации работы с мышью загрузим следующий скетч:
#include <DigiMouse.h> void setup() { DigiMouse.begin(); //Инциализация мыши } void loop() { DigiMouse.moveY(10); //Сместить мышь на 10 px по Y DigiMouse.delay(500); //Задержка DigiMouse.moveX(20); //Сместить мышь на 20 px по X DigiMouse.delay(500); DigiMouse.scroll(5); //Прокрутка DigiMouse.delay(500); DigiMouse.move(X, Y, scroll) //Также можно использовать это DigiMouse.delay(500); DigiMouse.setButtons(0); //Отпустить все DigiMouse.delay(500); DigiMouse.rightClick(); //Клик правой кнопкой мыши DigiMouse.delay(500); DigiMouse.leftClick(); //Клик левой кнопкой мыши DigiMouse.delay(500); DigiMouse.middleClick(); //Клик средней кнопкой мыши DigiMouse.delay(500); }
С помощью этого базового набора команд можно создавать сценарии для автоматизации, например, для скачивания и установки однотипного программного обеспечения на несколько компьютеров.
Для Arduino Leonardo никаких доп. установок плат и библиотек не нужно, она установлена по умолчанию в Arduino IDE.
Для примера я написал скетч, который открывает сайт на полный экран в браузере Chrome:
#include "Keyboard.h" void setup() { Keyboard.begin(); //Инициализация } void loop() { Keyboard.press(KEY_LEFT_GUI); //Кнопка win delay(500); Keyboard.press('r'); //Win+R delay(500); Keyboard.release(KEY_LEFT_GUI); Keyboard.println("cmd"); // вызываем командную строку pressEnter(); delay(500); Keyboard.print("starrt chrome https://amperkot.ru/"); //Открываем браузер через cmd pressEnter(); Keyboard.print("exit"); pressEnter(); delay(1000); Keyboard.press(KEY_F11); //На весь экран delay(500); Keyboard.release(KEY_F11); Keyboard.releaseAll(); //Отпустить все Keyboard.end(); } void pressEnter() { Keyboard.press(KEY_RETURN); delay(50); Keyboard.release(KEY_RETURN); }
Загружаем как обычно. Profit!
Для быстрого написания подобных скетчей, можно воспользоваться онлайн-конвертером от SpaceHun. Более подробную информацию по этому проекту можно найти тут. В этом конвертере команды указываются в таком формате:
DELAY 1000 GUI r STRING start chrome https://amperkot.ru/ ENTER
Если подключить кнопки к arduino и подредактировать скетч, можно сделать самодельную клавиатуру!
Также вместо большой leonardo можно использовать arduino pro micro. Это самая маленькая плата, также поддерживает HID.
Всем спасибо за внимание, удачи в ваших проектах!
Данная статья является собственностью Amperkot.ru. При перепечатке данного материала активная ссылка на первоисточник, не закрытая для индексации поисковыми системами, обязательна.
Комментарии