Управление компьютером при помощи Arduino через USB

Для одного проекта необходимо было сделать управление компьютером при помощи ардуинки. Почитав информацию в интернете нашел, что такое возможно только при помощи Ардуинок с atmega 32u4 или Due. Мне такой вариант не подошел, так как у меня уже была готовая разведенная плата с atmega328, поэтому пришлось искать другой вариант, которым я и хочу с вами поделиться.


Берем любую ардуинку, например Uno и подключаем к ней кнопку (в моем случае один контакт к pin 2, другой к GND

Управление компьютером при помощи Arduino через USB Arduino, USB, Controller, Autoit, Длиннопост

Заливаем прошивку


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 у нас на компьютере будет эмулироваться нажатие кнопки ВВЕРХ в любом окне, даже в играх.


Таким образом эмулировать можно нажатие любой кнопки, комбинации кнопок, движение мышки и все, что вам будет угодно.

Arduino & Pi

1.4K постов20.6K подписчик

Добавить пост

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

• Нарушать установленные правила Пикабу

Вы смотрите срез комментариев. Показать все
1
Автор поста оценил этот комментарий

А разве Ардуина не умеет работать в качестве HID при подключении к USB? И тогда на самом компе вообще ничего не надо делать, Ардуина сама будет и клавиатурой, и мышью.

раскрыть ветку (4)
1
Автор поста оценил этот комментарий
раскрыть ветку (3)
Автор поста оценил этот комментарий

практически все https://www.obdev.at/products/vusb/index.html

Автор поста оценил этот комментарий

Я сейчас собираю джостик и народ программно запихивал usb в atmega328, а аппаратный usb да, только в atmegax с u в названии

1
Автор поста оценил этот комментарий

Все новые. Просто берём и прошиваем микросхему, отвечающую за преобразование uart - com. На uno это Attiny 16u2.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку