Управление компьютером при помощи 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 запрещен)

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

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

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

Можно обойтись без AutoIt если собрать простой шилд.

Вот видео (На английском, но идея должна быть понятна)

https://www.youtube.com/watch?v=RoG_-9lAnSI

раскрыть ветку (4)
Автор поста оценил этот комментарий
Я предложил один из вариантов. У меня в проекте разведенная плата на atmega328 и cp2102, поэтому вариант с autoit подошёл. Если б я знал изначально, что надо будет делать управление компом, развел бы на 32u4
раскрыть ветку (3)
Автор поста оценил этот комментарий
Извините может за глупый вопрос, но при помощи чего вы делаете такую красивую картиночку распиновки, я так понимаю для этого есть какая-то программа?
раскрыть ветку (2)
Автор поста оценил этот комментарий

fritzing

раскрыть ветку (1)
Автор поста оценил этот комментарий
Добра!
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку