Страница 1 из 1

Эмулятор USB мыши на Ардуино

СообщениеДобавлено: 11 янв 2017, 13:19
-=dp=-
Эмулятор USB мыши на Ардуино.

Вступление или зачем все это надо.
Идея разработки аппаратного эмулятора USB мыши на Ардуино возникла как всегда спонтанно :D
А причиной ее возникновения стало введение новых правил по безопасности в компании где я работаю. Системные администраторы установили всем на компьютеры автоматическую блокировку по истечении 10 минут простоя компьютера. То есть, если компьютер не трогать 10 минут он автоматически блокируется, для того чтобы его разблокировать надо ввести логин и пароль. Первое время было трудно привыкнуть к данному нововведению, например читаешь текст какой нибудь, не трогаешь ПК, а тут на тебе - заблокировался.
И меня это нововведение стало мягко говоря раздражать.
Было принято решение о создании USB устройства, которое будет подключаться к компьютеру через USB разъем, опребелятся системой как USB HID Device мышь и автоматически перемещать курсор мыши на несколько пикселей, с интервалом в 2-5 сек. Такое устройство будет эмулировать работу человека за компьютером и он блокироваться не будет.
Ну, сказано - сделано, приступаем к разработке! :ugeek:

Для создания эмулятора USB мыши на Ардуино нам понадобятся следующие детали:
Ардуино Про мини 5В 16МГц - 1 шт.
Резисторы 56 Ом - 2 шт.
Резистор 2,2 КОм - 1 шт.
Стабилитрон 3,6В - 2шт.
USB разъем USB A Male (вилка или папа)
Макетная плата.

Re: Эмулятор USB мыши на Ардуино

СообщениеДобавлено: 11 янв 2017, 13:23
-=dp=-
Далее нужна будет библиотека для Arduino IDE и вот этот скетч

Код: выделить все

#include "TrinketHidCombo.h"
void setup(){
pinMode(4,INPUT);
pinMode(2,INPUT);
pinMode (5,OUTPUT);
TrinketHidCombo.begin();
}
void loop(){
TrinketHidCombo.poll();
TrinketHidCombo.mouseMove(2,0,0);
delay(2000);
TrinketHidCombo.mouseMove(0,2,0);
delay(2000);
TrinketHidCombo.mouseMove(-2,0,0);
delay(2000);
TrinketHidCombo.mouseMove(0,-2,0);
delay(2000);
}



Скетч и устройство предельно простое и пригодно для повторения даже начинающими Ардуинщиками ;)

Re: Эмулятор USB мыши на Ардуино

СообщениеДобавлено: 11 янв 2017, 13:26
-=dp=-
Схема эмулятора USB мыши на Ардуино

Arduino USB HID.jpg
Схема эмулятора USB мыши на Ардуино

Re: Эмулятор USB мыши на Ардуино

СообщениеДобавлено: 11 янв 2017, 13:32
-=dp=-
У меня получилось вот такое вот устройство :)

Re: Эмулятор USB мыши на Ардуино

СообщениеДобавлено: 11 янв 2017, 13:36
-=dp=-
Кроме вышеописанной функции данное устройство может эмулировать и клавиатуру, то есть, можно аппаратно нажимать на клавиши, включать сочетания клавиш, печатать команды и запускать программы и скрипты, и все это автоматически при подключении устройства к USB порту ;)
Перспективы очевидны!

Или к примеру можно сделать ИК пульт, свою мини клавиатуру, игровой джойстик, или подключить гироскоп и управлять курсором мыши наклоном головы или руки :shock:

Re: Эмулятор USB мыши на Ардуино

СообщениеДобавлено: 11 янв 2017, 14:30
-=dp=-
Отснял видео с демонстрацией работы эмулятора USB мыши на Ардуино

https://youtu.be/4iO0kdtmhto

Re: Эмулятор USB мыши на Ардуино

СообщениеДобавлено: 22 июл 2019, 21:48
-=dp=-
Должно работать.

Надо проверить все элементы схемы, особенно стабилитроны и резисторы.
Может ошибка где в монтаже.

В скетче не должно быть подключено никаких библиотек кроме TrinketHidCombo.h

Так же может зависить от модели контроллера , нужна ATMEGA328P 5V 16MHZ.

Re: Эмулятор USB мыши на Ардуино

СообщениеДобавлено: 30 июл 2019, 17:57
-=dp=-
PavelTim писал(а):У меня то же не работает на Нано.
Добавил в скетч мигание 13диодом. Оказалось останавливается на строке TrinketHidCombo.begin();


Я делал несколько таких устройств, в том числе использовал эту библиотеку для создания анлокера для ПК, все работало.
Но, во всех устройствах я использовал Ардуино ПРО мини 5в 16 Мгц.

Скорее всего, то что у Вас на нано не работает, это из-за чипа CH340, он же в ней распаян на плате, может вы в скетче подключали библиотеку Serial ?

Делайте тогда на Про мини ;)