52

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


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

Дубликаты не найдены

+1

Спасибо за програмку autoit) давно такую искал

+1

я вот смотрю всем можно через эту ардуину управлять, а женьщинами можно ?

раскрыть ветку 2
раскрыть ветку 1
0

да она пьяная)))

0

Может кто пояснить это "Качаем и устанавливаем AutoIt https://www.autoitscript.com/site/autoit/

И библиотеку для работы с COM портом http://www.mosaiccgl.co.uk/AutoItDownloads/confirm.php?get=C...

Создаем примитивное фоновое приложение"

Как эти пользоваться ?)

0

Добрый день. А как с помощью этого можно мышью управлять ?✌

раскрыть ветку 2
раскрыть ветку 1
0

большое спасибо

0

Опять здравствуйте. Вы не знаете как можно из кнопки переключатель сделать. Например есть 2 кнопки. 1 отвечает за SPASE на клавиатуре, а при нажатии на 2 кнопку, кнопка 1 начинает отвечать за DELETE например. И так по кругу.

0

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

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

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

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

Здравствуйте. Не могу понять почему не работает. Подключил кнопку, загрузил скетч в ардуинку. Затем скачал autoit и библиотеку. Закинул файл CommMG.au3 (который был в zip файле) в папку Include в autoit. Выбрал нужный COM порт. Нажал GO и НИЧЕГО НЕ РАБОТАЕТ !!! .Может я что-то не так с библиотекой делал?

раскрыть ветку 4
0

а commg.dll есть? еще можно добавить точный путь _CommSetDllPath("C:\COMMS\commg.dll")

раскрыть ветку 3
0

Я просто немного не понял что нужно делать с библиотекой. И самое умное к чему я пришел это закинуть CommMg.au3 в папку Include.

Можете пожалуйста сказать что именно нужно делать .

раскрыть ветку 2
0

Ну тогда нормально. Программное устранение дребезга самое рациональное решение, для снижения стоимости платы.

раскрыть ветку 2
0
Ну хз резистор и конденсатор стоят копейки. А если у тебя на нажатие кнопки сидит прерывание, то аппаратная реализация экономит процессорное время.
раскрыть ветку 1
0

Всё зависит от задачи, и платформе на которой это реализуется.

Например на FPGA никакое время не тратиться, там всё работает одновременно. И кусок программы(текста схемы) ничего не стоят, в отличие от резистора и конденсатора.

0

Хм.. А это точно будет работать ? Разве на ардуино есть преобразоватьель уровней из TTL -> RS-232 ? Да и дребезг контактов не мешало бы устранить. Хотя бы простой RC цепочкой, хотя это и не совсем корректно. А то вместо одного нажатия вполне реально и несколько получить (зависит от скорости RS-232).

раскрыть ветку 6
0

На Uno есть, на Pro Mini для этого можно использовать дополнительный конвертер CP2102. Подтяжка есть программная pinMode(2, INPUT_PULLUP);

раскрыть ветку 5
0

Если вы про подтяжку сказали в ответ на мой вопрос про дребезг, то к сожалению без схемы данный ответ не информативен. При скорости 9600 бод думаю дребезг не так страшен, вернее совсем не страшен.... Просто я когда UART запускал на скорости 12_000_000 бод (через виртуальный COM на микросхеме FDTI) столкнулся с дребезгом.

раскрыть ветку 4
0
А не проще было сразу HID устройство реализовать? А то как-то костыльно получается...
раскрыть ветку 2
раскрыть ветку 1
0

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

раскрыть ветку 4
0
раскрыть ветку 3
0

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

0

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

0

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

-3
Комментарий удален. Причина: данный аккаунт был удалён
раскрыть ветку 5
0
Это можно использовать в своих проектах.
раскрыть ветку 4
0
Комментарий удален. Причина: данный аккаунт был удалён
раскрыть ветку 3
Похожие посты
193

USB хаб с принцессами и драконами

С идеей создания многофункционального USB-хаба я носился довольно давно, но это ж обычное дело - сначала для других, а уж потом (читай - никогда) - для себя, любимого.

В общем, когда я, наконец, собрался, это был уже основательно выношенный проект.

Выглядит он почти как настоящий радиоприбор, и, по сути, таковым и является :)

USB хаб с принцессами и драконами USB, Электроника, Arduino, Длиннопост, Видео

Правда, сперва я просто хотел засунуть в какую-нибудь небольшую коробочку все те прибамбасы, которые я использую во время работы и которые обычно занимают почти всю свободную поверхность стола : программатор, всякие переходники-с-USB-на-что-то-другое, лог. анализатор, т.н. USB-доктор (вольт/ампер-метр), частотомер и прочее.

И первоначальный вариант выглядел так себе :

USB хаб с принцессами и драконами USB, Электроника, Arduino, Длиннопост, Видео

Не стал его домучивать, на полдороге разобрал и отобрал наиболее нужное и то, что действительно нуждается в общем корпусе :

USB хаб с принцессами и драконами USB, Электроника, Arduino, Длиннопост, Видео

Зеленая платка - собственно, сам хаб, затем по кругу - светодиодный дисплей для частотомера, тот самый "USB-доктор", переходник USB-UART, GPS-приемник со своей антенной и преобразователь напряжения на LM2596.


Будущий корпус - алюминиевый профиль, из которого делают офисные перегородки и двери. Его сечение 50х100мм, длина - 80мм.

USB хаб с принцессами и драконами USB, Электроника, Arduino, Длиннопост, Видео

Окошки и отверстия вырезаны на домашнем фрезере

USB хаб с принцессами и драконами USB, Электроника, Arduino, Длиннопост, Видео
USB хаб с принцессами и драконами USB, Электроника, Arduino, Длиннопост, Видео

Заводская краска на нем держится очень крепко, обычно, если вдруг надо, ее снимают пескоструем. Но один добрый человек предложил просто замариновать этот кусок в растворителе. Я так и сделал : налил в пакет 647-й растворитель, положил в него железяку и выставил на солнце. К вечеру краска облезла большими лоскутами :

USB хаб с принцессами и драконами USB, Электроника, Arduino, Длиннопост, Видео

Боковые стенки я вырезал из 1,5-миллиметрового листа и немного прошелся напильником, устраняя "несовершенства"

USB хаб с принцессами и драконами USB, Электроника, Arduino, Длиннопост, Видео

Краска - порошковая, не знаю ее код по таблице RAL, мастер (тот самый добрый человек) называет ее "черный крокодил". Наносится, как и всякая другая, тонким слоем, но при запекании дает такую необычную поверхность :

USB хаб с принцессами и драконами USB, Электроника, Arduino, Длиннопост, Видео

Основная печатная плата - двухсторонняя, сделана фоторезистивным способом (я только развожу, сам платы не делаю). Отверстия, те, что НЕкруглые, вырезались вручную, поэтому вид у них не очень....

USB хаб с принцессами и драконами USB, Электроника, Arduino, Длиннопост, Видео

На этом фото, кроме заводских - плата с разъемами и небольшая платка со светодиодами, которые показывают выбранный рабочий режим.

USB хаб с принцессами и драконами USB, Электроника, Arduino, Длиннопост, Видео

В собранном виде это выглядит так :

USB хаб с принцессами и драконами USB, Электроника, Arduino, Длиннопост, Видео

С обратной стороны - микроконтроллер, генератор на 20MHz, гребенки для подключения к другим платам и всякая мелочь

USB хаб с принцессами и драконами USB, Электроника, Arduino, Длиннопост, Видео

С платы USB-хаба один внутренний порт выводится на лицевую панель (4-пиновый разъем), два других - на заднюю (длинный разъем под гребенку), а последний, четвертый, занят переходником USB-UART.

USB хаб с принцессами и драконами USB, Электроника, Arduino, Длиннопост, Видео

Входной разъем - Type-B. К нему припаяна планка для крепления и с обратной стороны он выглядит гораздо фотогеничней

USB хаб с принцессами и драконами USB, Электроника, Arduino, Длиннопост, Видео

Для крепления платы приемника я вырезал прокладку из акрила. Антенна - на ее обратной стороне.

Тут они все перед финальным броском

USB хаб с принцессами и драконами USB, Электроника, Arduino, Длиннопост, Видео

Хаб принимал участие в недавнем конкурсе на "Радиокоте", поэтому на боковой стенке - соответствующая гравировка.

USB хаб с принцессами и драконами USB, Электроника, Arduino, Длиннопост, Видео

Осталась самая малость - закрыть антенну крышкой, наклеить стекла поверх индикаторов и сделать ручку для энкодера

USB хаб с принцессами и драконами USB, Электроника, Arduino, Длиннопост, Видео

Тут для самых стойких технарей, поэтому можно не читать :)


Основное назначение - как ни странно, хаб : один порт - на лицевой панели, два других - сзади.

Встроенный амперметр дает возможность замерять ток потребления USB-девайсов.

Верхний тумблер переключает напряжение, от которого можно запитывать какие-то внешние устройства (3,3 и 5 вольт). Нижним тумблером можно выбрать длительность измерения для частотомера (1/10/50 сек).

Есть LC-метр, он сейчас делается в виде выносного блока, который подключается через разъем DB-9 ( на лицевой панели). Задний DB-9 - резервный, пока не занят ничем.


Частотомер имеет несколько рабочих режимов, которые выбираются энкодером : частота, период, скважность, длительность одиночных импульсов. Набортный GPS-приемник дает возможность калибровать и этот частотомер, и что-то другое - с него снимается сигнал 1pps, который имеет погрешность 10 в минус шестой (или седьмой ?) степени и высокую стабильность при изменении температуры.

Помимо этого, когда хаб "просто стоит и ничего не делает", на дисплей можно выводить  время, принимаемое с GPS-спутников (на видео) или какую-то информацию с компьютера (пока только загрузку ЦП и памяти, но я еще что-нибудь придумаю :).

О грустном.

Предвосхищая обычные в таких случаях вопросы - прошивки в свободном доступе пока нет и, наверное, не будет. Как вариант - схема, чертежи ПП и уже прошитый МК.

Показать полностью 17 1
Похожие посты закончились. Возможно, вас заинтересуют другие посты по тегам: