Эмулятор тачскрина или мыши

Hologram
Offline
Зарегистрирован: 21.07.2017

Здравствуйте!

Есть у меня Raspberry PI3 и на ней в полноэкранном режиме крутится приложение с кучей кнопочек в GUI. Все работает, но кнопки надо нажимать мышкой, а это лишняя железка на столе. От мышки решено было избавиться для чего был прикурчен тачскрин. Все хорошо, но для 7 дюймового тача кнопки мелковаты, а тач большего размера нежелателен по разным причинам. Появилась идея сделать некое устройство с физическими кнопками, которое при нажатии на соответствующую физическую кнопку выдаст в USB чего-нибудь, что переместит курсор в точку соответствующей кнопки в GUI и нажмет ее. У меня есть ARDUINO Leonardo. Попробовал изобразить что-нибудь с использованием библиотеки Mouse. Столкнулся с такой непоняткой: перемещение задается относительно текущего положения. Но как узнать его? Т.е. я могу поездить курсором по экрану, но не зная текущего положения в GUI-шную кнопку я не попаду. Нашел патч HID.cpp для работы библиотеки Mouse с абсолютными координатами, но на Leonardo он так и не заработал. Вроде в тачскрине все это уже есть. У него по идее на выходе абсолютные координаты и информация о нажатии, но как это реализовать в Leonardo?

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Это из области прыгающих танков. Танк подпрыгивает и стреляет дальше.

vitalikost
Offline
Зарегистрирован: 28.11.2014

Ну так, делать в 2 подхода.

1. Загоняем курсор в угол(левый верхний, правый нижний), по желанию.

2. Пляшем уже от угла. 

Hologram
Offline
Зарегистрирован: 21.07.2017

Спасибо! Но как убедиться, что курсор в углу? Просто сдвинуть его влево вверх на количество позиций больше разрешения экрана?

vitalikost
Offline
Зарегистрирован: 28.11.2014

ну да, дальше просто ОС не дасть загнать.

kalapanga
Offline
Зарегистрирован: 23.10.2016

А что, это самое крутящееся приложение доработать совсем возможности нет? Ну ведь уж сильно извратная конструкция получается. Прикольнее разве что роборука с тонким пальцем, нажимающим кнопки на экране!

phoenixoid
Offline
Зарегистрирован: 14.07.2015

xautomation вам должен помочь.

Hologram
Offline
Зарегистрирован: 21.07.2017

Спасибо всем, все получается!

s0108227
Offline
Зарегистрирован: 20.04.2018

Кто может подсказать, как эмулировать нажатия на тачскрине (резистивный 4 pin) с помощью arduino? Т.е. условно полагаем, что тачскрина самого нет, вместо него подключаем ардуино, нужно эмулировать нажатие в определенных точках экрана (в двух).



Я так понимаю, что сначала нужно тач подключить к ардуино, нажать в нужном месте и считать состояние системы (а именно сопротивление). А потом это состояние уже "эмулировать". Кое-какие примеры нашел, сумел считать координаты с живого тача, но как теперь эти данные передать дальше? Вот тут как-то с примерами туго...

На устройстве нужно подобрать правильные время и дату для запуска, руками нереально перебирать...

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

s0108227, думаю, для более или менее полноценной эмуляции Вам нужны цифровые потенциометры.

s0108227
Offline
Зарегистрирован: 20.04.2018

andriano пишет:
s0108227, думаю, для более или менее полноценной эмуляции Вам нужны цифровые потенциометры.

За идею спасибо. Пока до конца не понял схему включения. Использовал два цифровых потенциометра, изменяя сопротивления можно добиться имитации нажатия и получения координат. Но я так понял, что нужно все же 4 резистора для имитации нажатия.

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Чтобы определиться с аппаратной частью, нужно точно представлять алгоритм работы: что именно в нем используется. Сколько чисел читается с аналоговых входов, столько потенциометров и нужно.