PCCar.ru - Ваш автомобильный компьютер

Вернуться   PCCar.ru - Ваш автомобильный компьютер > MP3Car ТехИнфа > Устройства ввода > Тачскрины

Ответ
 
Опции темы Поиск в этой теме
Старый 18.08.2021, 10:21   #1
ABCh
Старший Пользователь
 
Регистрация: 21.05.2015
Возраст: 64
Город: Челябинск
Регион: 74
Сообщений: 409
ABCh has a reputation beyond reputeABCh has a reputation beyond reputeABCh has a reputation beyond reputeABCh has a reputation beyond reputeABCh has a reputation beyond reputeABCh has a reputation beyond reputeABCh has a reputation beyond reputeABCh has a reputation beyond repute
По умолчанию Контроллер панели на GT911 с боковыми кнопками на Arduino

Попала в руки панель, подобная этой с 4-мя боковыми кнопками. (Привет ymka-66 ) Поскольку мой вопрос остался без ответа, пришлось делать своими силами. Изучив решение, попытался повторить его в виде Arduino-проекта, дополнительно задействовав боковые сенсорные кнопки. Начал с установки библиотеки и развертывания имеющегося в ней примера GT911_avr_touch.ino. Подключив панель и запустив программу, увидел, что при касании экрана координата X изменяется от 0 до 1023 при движении справа налево. При касании в области кнопок координата X меняется от 1024 до 1055. Координата Y меняется от 0 до 599 сверху вниз в зоне экрана и от 0 до 390 в зоне кнопок. С панелью оказалось все просто и понятно.
С передачей информации в компьютер тоже нашлось подходящее решении в виде форка библиотеки NicoHood/HID, в который была включена поддержка сенсорных экранов. Первый вариант программы прилагается.
Продолжение следует...
Вложения
Тип файла: zip GT911_avr_touch.zip (1.4 Кб, 666 просмотров)

Последний раз редактировалось admin; 09.10.2021 в 20:57.
ABCh вне форума   Ответить с цитированием
Старый 18.08.2021, 21:23   #2
ABCh
Старший Пользователь
 
Регистрация: 21.05.2015
Возраст: 64
Город: Челябинск
Регион: 74
Сообщений: 409
ABCh has a reputation beyond reputeABCh has a reputation beyond reputeABCh has a reputation beyond reputeABCh has a reputation beyond reputeABCh has a reputation beyond reputeABCh has a reputation beyond reputeABCh has a reputation beyond reputeABCh has a reputation beyond repute
По умолчанию

Панель подключаем по схемам, соответствующим используемому устройству, и убеждаемся в наличии реакции на касание экрана и нажатие кнопок.
Далее нужно масштабировать значения координат в соответствии с описанием функции
Код:
/**
	 * Set contact status for a finger in the internal data structure. You must
	 * call send manually after setting all fingers to flush them through USB.
	 *
	 * @param id Finger id. Must be in the range of 0-MAXFINGERS. Same finger
	 *           must have same id throughout contact. Allocations does not need
	 *           to be continuous.
	 * @param x, y Coordinates. Range 0-10000. (0,0) is top-left on Windows.
	 * @param pressure Contact pressure. Range 0-127. When set to 0, the touch
	 *                 is reported as hovering (in-range)
	 * @return 1 if success. 0 if id is out-of-bounds
	 */
	inline int setFinger(uint8_t id, uint16_t x, uint16_t y, uint8_t pressure=100);
Готовая программа прилагается.
Остается разобраться с программированием кнопок. Подробная инструкция для андроида здесь. В моем примере кнопки кодируются в буквы a,b,c,d,e, которые затем в андроиде перекодируются в кнопки POWER, HOME, BACK, VOLUME_DOWN, VOLUME_UP с помощью файла Vendor_2341_Product_8036.kl
Код:
key 30 POWER
key 48 HOME
key 46 BACK
key 32 VOLUME_DOWN
key 18 VOLUME_UP
Кнопку POWER можно также использовать для подачи сигнала на плату компьютера через выход ардуино.
Вложения
Тип файла: zip GT911_touchscreen.zip (1.6 Кб, 544 просмотров)
ABCh вне форума   Ответить с цитированием
Старый 19.08.2021, 16:53   #3
DizzJK
Пользователь
 
Регистрация: 09.06.2015
Возраст: 37
Город: Vrn
Регион: 36
Машина: Opel Astra H
Сообщений: 60
DizzJK is on a distinguished road
По умолчанию

Как работает по сравнению с Юриным контроллером?
DizzJK вне форума   Ответить с цитированием
Старый 19.08.2021, 17:55   #4
DizzJK
Пользователь
 
Регистрация: 09.06.2015
Возраст: 37
Город: Vrn
Регион: 36
Машина: Opel Astra H
Сообщений: 60
DizzJK is on a distinguished road
По умолчанию

Цитата:
Сообщение от ABCh Посмотреть сообщение
Панель подключаем по схемам, соответствующим используемому устройству, и убеждаемся в наличии реакции на касание экрана и нажатие кнопок.
Далее нужно масштабировать значения координат в соответствии с описанием функции
Код:
/**
	 * Set contact status for a finger in the internal data structure. You must
	 * call send manually after setting all fingers to flush them through USB.
	 *
	 * @param id Finger id. Must be in the range of 0-MAXFINGERS. Same finger
	 *           must have same id throughout contact. Allocations does not need
	 *           to be continuous.
	 * @param x, y Coordinates. Range 0-10000. (0,0) is top-left on Windows.
	 * @param pressure Contact pressure. Range 0-127. When set to 0, the touch
	 *                 is reported as hovering (in-range)
	 * @return 1 if success. 0 if id is out-of-bounds
	 */
	inline int setFinger(uint8_t id, uint16_t x, uint16_t y, uint8_t pressure=100);
Готовая программа прилагается.
Остается разобраться с программированием кнопок. Подробная инструкция для андроида здесь. В моем примере кнопки кодируются в буквы a,b,c,d,e, которые затем в андроиде перекодируются в кнопки POWER, HOME, BACK, VOLUME_DOWN, VOLUME_UP с помощью файла Vendor_2341_Product_8036.kl
Код:
key 30 POWER
key 48 HOME
key 46 BACK
key 32 VOLUME_DOWN
key 18 VOLUME_UP
Кнопку POWER можно также использовать для подачи сигнала на плату компьютера через выход ардуино.
А разве андройд не подхватывает ММ кнопки? Просто когда на ардуине делал контроллер резистивных кнопок, они прекрасно работали как на андройде, так и в винде
DizzJK вне форума   Ответить с цитированием
Старый 20.08.2021, 08:15   #5
ABCh
Старший Пользователь
 
Регистрация: 21.05.2015
Возраст: 64
Город: Челябинск
Регион: 74
Сообщений: 409
ABCh has a reputation beyond reputeABCh has a reputation beyond reputeABCh has a reputation beyond reputeABCh has a reputation beyond reputeABCh has a reputation beyond reputeABCh has a reputation beyond reputeABCh has a reputation beyond reputeABCh has a reputation beyond repute
По умолчанию

По умолчанию в андроиде реакция на кнопки задается файлом /system/usr/keylayout/Generic.kl. В разных прошивках эти файлы могут отличаться. Поэтому надо или проверять работу кнопок для каждой конкретной прошивки, или создавать файл .kl для своего устройства.
Цитата:
Сообщение от DizzJK Посмотреть сообщение
Как работает по сравнению с Юриным контроллером?
Реагирует на боковые кнопки
ABCh вне форума   Ответить с цитированием
Старый 30.08.2021, 21:39   #6
DizzJK
Пользователь
 
Регистрация: 09.06.2015
Возраст: 37
Город: Vrn
Регион: 36
Машина: Opel Astra H
Сообщений: 60
DizzJK is on a distinguished road
По умолчанию

Цитата:
Сообщение от ABCh Посмотреть сообщение
По умолчанию в андроиде реакция на кнопки задается файлом /system/usr/keylayout/Generic.kl. В разных прошивках эти файлы могут отличаться. Поэтому надо или проверять работу кнопок для каждой конкретной прошивки, или создавать файл .kl для своего устройства.

Реагирует на боковые кнопки
В общем тач работает отлично! Спасибо большое за поддержку!
DizzJK вне форума   Ответить с цитированием
Старый 03.09.2021, 10:34   #7
DizzJK
Пользователь
 
Регистрация: 09.06.2015
Возраст: 37
Город: Vrn
Регион: 36
Машина: Opel Astra H
Сообщений: 60
DizzJK is on a distinguished road
По умолчанию

Цитата:
Сообщение от ABCh Посмотреть сообщение
Реагирует на боковые кнопки
Вопрос про боковые кнопки, как их замедлить при нажатии, а то при нажатии mute она меняет свое положение раз 10, какую команду знаю (delay) замедляет все кнопки
DizzJK вне форума   Ответить с цитированием
Старый 03.09.2021, 11:11   #8
ABCh
Старший Пользователь
 
Регистрация: 21.05.2015
Возраст: 64
Город: Челябинск
Регион: 74
Сообщений: 409
ABCh has a reputation beyond reputeABCh has a reputation beyond reputeABCh has a reputation beyond reputeABCh has a reputation beyond reputeABCh has a reputation beyond reputeABCh has a reputation beyond reputeABCh has a reputation beyond reputeABCh has a reputation beyond repute
По умолчанию

delay использовать нельзя, это замедлит работу. В последнем скетче я использовал функции Keyboard.press и Keyboard.release. В этом случае скорость повторения определяется не устройством, а операционной системой. Если получается очень быстро, то можно посылать одиночные нажатия на кнопки через Keyboard.write, самостоятельно запрограммировав частоту повторения.
ABCh вне форума   Ответить с цитированием
Старый 28.03.2022, 17:42   #9
Alex15BV
Пользователь
 
Регистрация: 01.11.2017
Возраст: 50
Город: Лобня
Регион: 50, 90, 150
Машина: BMW 530D Touring
Сообщений: 96
Alex15BV is a jewel in the roughAlex15BV is a jewel in the roughAlex15BV is a jewel in the rough
По умолчанию

Цитата:
Сообщение от ABCh Посмотреть сообщение
Попала в руки панель, подобная этой с 4-мя боковыми кнопками. (Привет ymka-66 ) Поскольку мой вопрос остался без ответа, пришлось делать своими силами.
Добрый день.
Подскажите, пожалуйста, что не так делаю? Пробую компилить оба скетча - и в обоих случаях получаю ошибку. Библиотеки скачал/подключил... Куда копать? Спасибо за ответ, с уважением
Миниатюры
Нажмите на изображение для увеличения
Название: Снимок.JPG
Просмотров: 366
Размер:	49.5 Кб
ID:	52599  
Alex15BV вне форума   Ответить с цитированием
Старый 28.03.2022, 19:30   #10
ABCh
Старший Пользователь
 
Регистрация: 21.05.2015
Возраст: 64
Город: Челябинск
Регион: 74
Сообщений: 409
ABCh has a reputation beyond reputeABCh has a reputation beyond reputeABCh has a reputation beyond reputeABCh has a reputation beyond reputeABCh has a reputation beyond reputeABCh has a reputation beyond reputeABCh has a reputation beyond reputeABCh has a reputation beyond repute
По умолчанию

Добрый день,
судя по картинке, не подключена библиотека HID.
ABCh вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 05:22.


Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot