Текущее время: 15 июл 2018, 23:46

Город ХОББИ

Занятие любимым хобби - это путь к счастливой жизни!

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

Тут собраны различные проекты на Ардуино
Аватар пользователя
 
Сообщений: 674
Зарегистрирован: 27 мар 2013, 23:12

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

Сообщение -=dp=- » 11 янв 2017, 14:19

Эмулятор 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 (вилка или папа)
Макетная плата.

Купить Ардуино в Калининграде можно тут http://newmar.ru.



Аватар пользователя
 
Сообщений: 674
Зарегистрирован: 27 мар 2013, 23:12

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

Сообщение -=dp=- » 11 янв 2017, 14:23

Далее нужна будет библиотека для 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);
}



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


Вложения
TrinketHidCombo.zip
Эмулятор USB мыши на Ардуино
(38.18 KiB) Скачиваний: 327

Аватар пользователя
 
Сообщений: 674
Зарегистрирован: 27 мар 2013, 23:12

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

Сообщение -=dp=- » 11 янв 2017, 14:26

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


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

Аватар пользователя
 
Сообщений: 674
Зарегистрирован: 27 мар 2013, 23:12

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

Сообщение -=dp=- » 11 янв 2017, 14:32

У меня получилось вот такое вот устройство :)


Вложения
1.jpg
Эмулятор USB мыши на Ардуино
2.jpg
Эмулятор USB мыши на Ардуино

Аватар пользователя
 
Сообщений: 674
Зарегистрирован: 27 мар 2013, 23:12

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

Сообщение -=dp=- » 11 янв 2017, 14:36

Кроме вышеописанной функции данное устройство может эмулировать и клавиатуру, то есть, можно аппаратно нажимать на клавиши, включать сочетания клавиш, печатать команды и запускать программы и скрипты, и все это автоматически при подключении устройства к USB порту ;)
Перспективы очевидны!

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



Аватар пользователя
 
Сообщений: 674
Зарегистрирован: 27 мар 2013, 23:12

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

Сообщение -=dp=- » 11 янв 2017, 15:30

Отснял видео с демонстрацией работы эмулятора USB мыши на Ардуино

https://youtu.be/4iO0kdtmhto


Вложения
2.jpg
Эмулятор USB мыши на Ардуино
2.jpg (23.04 KiB) Просмотров: 2952

 
Сообщений: 2
Зарегистрирован: 17 янв 2017, 10:16

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

Сообщение Владимир » 18 янв 2017, 19:07

[quote="Димон"]Отснял видео с демонстрацией работы эмулятора USB мыши на Ардуино
зря отсняли админвам и usbпорты отрубят :)), а так зачетно, вещь полезная.



 
Сообщений: 2
Зарегистрирован: 26 июн 2018, 02:57

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

Сообщение BlackRokk » 26 июн 2018, 03:12

Добрый день.
Собрал по Вашему примеру такую-же штуку себе.
Базово все работает, но так как есть несколько иная задача начал модифицировать код.
И вот тут и появились непонятные мне моменты.
1) Можно ли как то соотнести разрешение экрана с "разрешением" передвижения курсора мыши?
2) Мне по сути нужно реализовать клик по кнопке, но в разных координатах этой кнопки, то есть чтобы клик был не в один тот же пиксель, а постоянно координаты курсора менялись, внутри координат кнопки. С этим проблема. Если я использую фиксированные координаты положения курсора, то все нормально курсор передвигается на нужную величину и возвращается в исходную точку. Как только я меняю фиксированные значения на значения полученные функцией random, так сразу перестает работать возврат на точку. В чем проблема не могу сообразить, буду очень признателен если сможете дать совет. Заранее спасибо.
Код: выделить все
#include <TrinketHidCombo.h>

//-----------------
int x; // пикс., ширина прямоугольника для клика
int y; // пикс., длина прямоугольника для клика
//-----------------

void setup() {
  pinMode(4, INPUT);
  pinMode(2, INPUT);
  pinMode (5, OUTPUT);
  TrinketHidCombo.begin();
  randomSeed(analogRead(0));
}

void loop() {
  TrinketHidCombo.poll();

  x = 100;
  y = 100;

/*x = random(1,15);
  y = random(1,35);
*/
  TrinketHidCombo.mouseMove(x, y, 0);
  delay(1000);
  TrinketHidCombo.mouseMove(-x, -y, 0);
  delay(1000);
}



 
Сообщений: 2
Зарегистрирован: 26 июн 2018, 02:57

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

Сообщение BlackRokk » 29 июн 2018, 02:58

Разобрался. Проблема была в ускорении мыши в Windows, отключил и все заработало.




Вернуться в Проекты на Ардуино

Кто сейчас на форуме

Сейчас этот форум просматривают: Yandex [Bot] и гости: 0