Для одного проекта необходимо было сделать управление компьютером при помощи ардуинки. Почитав информацию в интернете нашел, что такое возможно только при помощи Ардуинок с atmega 32u4 или Due. Мне такой вариант не подошел, так как у меня уже была готовая разведенная плата с atmega328, поэтому пришлось искать другой вариант, которым я и хочу с вами поделиться.
Берем любую ардуинку, например Uno и подключаем к ней кнопку (в моем случае один контакт к pin 2, другой к GND
Заливаем прошивку
bool buttonClicked = false;
void setup() {
Serial.begin(9600);
pinMode(2, INPUT_PULLUP);
}
void loop() {
if ((digitalRead(2) == LOW) && (buttonClicked == false)) {
Serial.println("KEY_UP");
buttonClicked = true;
}
if (digitalRead(2) == HIGH) buttonClicked = false;
delay(10);
}
Теперь перейдем к компьютеру.
Качаем и устанавливаем AutoIt https://www.autoitscript.com/site/autoit/
И библиотеку для работы с COM портом http://www.mosaiccgl.co.uk/AutoItDownloads/confirm.php?get=C...
Создаем примитивное фоновое приложение
#include <CommMG.au3>
$err = 1
_CommSetPort(5, $err)
_CommPortConnection()
While 1
$key = _CommGetLine()
$key = StringReplace($key, @LF, "")
$key = StringReplace($key, @CR, "")
if ($key = "KEY_UP") then Send("{UP}")
WEnd
В строке _CommSetPort(5, $err) 5 - заменить на номер соответствующего COM порта, на котором висит ардуинка
Теперь по нажатию кнопки подключенной к Arduino у нас на компьютере будет эмулироваться нажатие кнопки ВВЕРХ в любом окне, даже в играх.
Таким образом эмулировать можно нажатие любой кнопки, комбинации кнопок, движение мышки и все, что вам будет угодно.