Ищу разработчика/программиста для создания эмулятора клавиатуры и мыши

Iven

✩✩✩✩✩✩✩
9 Мар 2020
6
0
Здравствуй. Мне нужно устройство (назовем его "Бот") с возможностями:

1) имитирующее нажатие клавиш клавиатуры
2) имитирующее управление мыши (нажатие кнопок + перемещение скрола по экрану + прокрутка колесика)
3) возможность писать макросы исполнения вышеуказанный комбинаций (использование клавиатура + мышь)
4) возможность писать макрос в файл который должен храниться на флэшкарте
5) в компьютере отображались только 1 компьютерная мышь и клавиатура

У меня получилось создать только "Бота" на основе Ардуино Леонардо с подключенной к ней клавиатурой, где макросы выполняются по нажатию различных клавиш.
Минусы:
1 В системе отображается 2 мыши и две клавиатуры.
2 Для редактирования или создания нового макроса нужно писать скетч/прошивку и память ограничена.

Вижу это устройство следующим образом:

К Ардуино Леонардо (если это возможно) подключаем два USB Хоста, (если не возможо) то подключаем 2 гнезда PS/2 (для старого типа клавиатуры и мыши) и подключаем модуль с SDcard.
Ардуино инициализируем в системе, как клавиатуру и мышь, тут самое сложное (для меня) что бы основная часть клавиатуры работала стандартно (передавала нажатия клавиш компьютеру), мышь так же работала стандартно (скрол перемещался, кнопки мыши отрабатывали нажатия, левая правая, средняя, прокрутка колесика), а нумпад клавиатура была зарезервирована под выполнение макросов.

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

Если что то не понятно из моего письма спрашивайте.


Возможно создать такое устройство?
Если да вы возьметесь за это?
Сколько будет стоить?
 

Nicky

✩✩✩✩✩✩✩
26 Мар 2020
18
5
Russia
Для таких потребностей существуют платки на Atmega 32u4 с микросд флешкой, которые умеют в хардварную эмуляцию мыши и клавиатуры, а если нужен хост, то только через отдельный контроллер юсб (тот же max3421, но он на 1 устройство) и будет некоторая задержка, так как данные будут проходить по пути "мк юсб хоста - атмега - пк". В любом случае, можете написать в ЛС, что-нибудь придумаем.
 

kalobyte

★★★✩✩✩✩
1 Янв 2020
724
148
5) в компьютере отображались только 1 компьютерная мышь и клавиатура
если в системе воткнуты обычные клавиатуры и мышь, то вместе с твоим эмулятором все равно будет по 2 устройства

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

Iven

✩✩✩✩✩✩✩
9 Мар 2020
6
0
если в системе воткнуты обычные клавиатуры и мышь, то вместе с твоим эмулятором все равно будет по 2 устройства

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

kalobyte

★★★✩✩✩✩
1 Янв 2020
724
148
и для чего тебе это?
для эмуляции всего этого давно есть софт

я писал одному клиенту такой эмулятор для обхода тестовой версии проги и выполнения некоторых автоматических действий
там кликались кнопки на проге и посылались комбинации нажатий
 

Iven

✩✩✩✩✩✩✩
9 Мар 2020
6
0
@kalobyte, Софт мне не подходит, компьютер должен быть кристально чист, без постороннего софта. Что бы я мог предъявить онлайн свой комп для проверки на стороннее ПО. Просто подключить к ардуино клаву и записать макрос на каждую кнопку я могу без проблем, а решить задачку отображения в компьютере одной клавиатуры и мыши пака ума не хватает (
 

CyberDim

✩✩✩✩✩✩✩
31 Мар 2020
3
7
Дело в том, что знающий человек, просматривая оборудование - все равно может понять, что подключена не клава+мышь, а ардуинка.
Ну а вообще, можно попробовать - какой планируете бюджет?
 

Nicky

✩✩✩✩✩✩✩
26 Мар 2020
18
5
Russia
@CyberDim, с чего вы взяли? Если подправить загрузчик, то можно сделать так, чтобы устройство обнаруживалось как клава+мышь, и ничего больше. VID/PID также можно изменить.
 

Iven

✩✩✩✩✩✩✩
9 Мар 2020
6
0
Бюджет 20-30к, сложностей дополнительных не нужно. ардуино + 2 юсб модуля (для мыши и клавиатуры) + модуль карты памяти для записи макросов в .тхт файл (руками).
Как и описывал ранее нужно чтобы клавиатура работала в 2х режимах, как обычная клавиатура и бот с макросами, с тремя вариантами:
1 Зарезервировать одну кнопку на клавиатуре для переключения режима обычная клавиатура/бот клавиатура.
2 Зарезервировать нумпад клавиатуру под выполнение макросов.
3 Если на кнопку не задан макрос она работает по первоначальному назначению.
Если не сложно сделать возможность выбрать переключение между вышеуказанными указанными вариантами.

Макросы должны выполнять следующий набор функций:
1- Нажать заданную кнопку -> подержать в нажатом состоянии указанное количество миллисекунд (с возможностью рандома) -> отпустить заданную кнопку -> сделать паузу между нажатиями через заданное количество миллисекунд (с возможностью рандома) -> повторять заданное количество раз или бесконечно (с возможностью рандома).
2 - Перемещать курсор мышки в заданные координаты на экране:
- с возможностью изменять скорость перемещения курсора
- вносить рандомно в заданном промежутке погрешность для координат курсора(если задана координаты Х-1500 У-1500 я мог с заданной рандомно погрешностью (к примеру +/- 20) их изменить Х-1509 У- 1493).
- возможность выполнять клик левой, правой или средней кнопкой мыши до перемещения курсора или в заданной точке на экране.
- нажать указанную кнопку мыши, -> подержать в нажатом состоянии указанное количество миллисекунд (с возможностью рандома) -> отпустить заданную кнопку -> сделать паузу между нажатиями через заданное количество миллисекунд (с возможностью рандома) -> повторять заданное количество раз или бесконечно (с возможностью рандома).
- возможность нажать клавишу перед перемещением курсора и отпустить в конечной координате.
3 - Задавать паузу между выполнением функций.
 

seityaya

✩✩✩✩✩✩✩
1 Апр 2020
3
1
Обратите внимание на QMK firmware и сообщество любителей механических клавиатур. Думаю, вы там найдете всё необходимое.
FAQ русского сообщества.
https://rumech.guide/#/QMK
Онлайн-конфигуратор QMK, список поддерживаемых клавиатур тут же.
https://config.qmk.fm
 
Изменено:
  • Лойс +1
Реакции: Iven

Nicky

✩✩✩✩✩✩✩
26 Мар 2020
18
5
Russia
@seityaya, тут одним QMK/TMK не обойтись, нужно скрестить проекты TMK и BadUSB, плюс допилить загрузчик.
 

seityaya

✩✩✩✩✩✩✩
1 Апр 2020
3
1
@Nicky, если заказчику нужно именно внешнее устройство, то есть - коробочка, в которую втыкается клава и мышь, и полностью их пробрасывает с пидами и видами, при этом добавляя собственные команды (уже подозрительное устройство, законность обсуждать не стану), то да, не обойтись. А если ему нужен инструмент для работы и автоматизации (предположу, что он тестировщик UI), то он вполне может на часть денег, заложенных в бюджет, купить клавиатуру, которую можно программировать, и при этом это будет законченное красивое устройство. Без всяких переходников и промежуточных звеньев.
 
Изменено:

Iven

✩✩✩✩✩✩✩
9 Мар 2020
6
0
@seityaya, Благодарю за полезную ссылку. Без "Коробочки" не обойтись. Программируемая клавиатура не выход, так как нет возможности юзать мышь.
 

seityaya

✩✩✩✩✩✩✩
1 Апр 2020
3
1
@Iven, QMK позволяет эмулировать мышь. Можете посмотреть во вкладке "Приложения, медиа и мышь".
Точно не знаю, но думаю, что можно попробовать писать макросы с использованием этой эмуляции. Т.к. команды мыши ничем не отличаются от обычных сканкодов клавиш в представлении QMK.

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

Проще будет добавить, чтение с SD карты по SPI во внутренюю память и паркинг в формат QMK макросов, чем писать всё с нуля.
 

Nicky

✩✩✩✩✩✩✩
26 Мар 2020
18
5
Russia
@Iven,
Проще будет добавить, чтение с SD карты по SPI во внутренюю память и паркинг в формат QMK макросов, чем писать всё с нуля.
Ну так это по сути и есть добавление функционала BadUSB в TMK :)
К тому же человеку нужна возможность подключения любой клавиатуры, а не какой-то единственной.