ПОЛЕЗНО ESP32: сравнение сенсорных экранов

vvv1234

СКАЗАЛ ТУТ НЕМНОГО
НАШ ЧЕЛОВЕК
Регистрация
24.08.2021
Сообщения
3 532
Реакции
4 733
Баллы
138
Адрес
очень далеко от России
Имя
Валерий
Станок
CNC 6040
Плата
самодельная
Поэкспериментировал на предмет сравнения двух типов сенсорных экранов 2.8": резистивного (красный) и ёмкостного (черный). Сначала сделал нужную мне прошивку на резистивном. К работе претензий нет. Но не понравилась необходимость калибровки, поэтому решил попробовать ёмкостный IPS экран. Результаты следующие.
1717095386084.png
1. Качество изображения: разницы практически нет.
2. Контрастность: красный сильнее акцентирует светлые и темные цвета.
3. Угол зрения: разница незаметна.
4. Работа с точем. Красный стабильно выбирает с первого раза зоны 20рх. Черный - зоны не меньше 50рх. Точь работает нестабильно и существенно медленнее, чем у красного. Из-за того, что черный работает с I2C, тогда как красный - с SPI.
5. Свипы: оба работают нестабильно.
6. Подключение точа: красный - 1 пин, черный - два пина.

Вообщем, единственное, в чем черный выиигрывает - это калибровка. Во всем остальном красный либо выигрывает, либо без разницы.
 
Сравнение двух экранов с резистивным точем: 2.8" 320х240 (слева) и 3.5" 480х320 (страва). Оба отсюда.

1717352400353.png
1. Качество изображения и контрастность практически одинаковые.
2. Время отрисовки. 3.5" почти в четыре раза медленнее.
3. Удобство в работе. Несмотря на то, что иконки у 3.5" существенно больше, при выборе стилусом или ногтем нет разницы.
4. Скорость и стабильность отработки точа практически одинакова.

В подключении точа на 3.5" есть одна тонкость. Пин TFT_MISO надо назначить (например, так: #define TFT_MISO 19). Но пин SDO(MISO) экрана никуда не подключать. А к пину 19 ЕСП надо подсоединить пин T_DO экрана.
 
  • Последнее редактирование:
Последнее редактирование:
3.5" почти в четыре раза медленнее.
Вроде как максимальный размер дисплея с разрешением 320х240 - 3.2 дюйма.
Будет и размер по-максимуму и кол-во точек приемлемое для скорости отрисовки.

ЗЫ. Валер, если будет возможность, ткни осциллом в пин дисплея IRQ для резистивного тача и посмотри, что там будет при тыке и удержании пальца/стилуса на таче.
 
  • Последнее редактирование:
Последнее редактирование:
Сравнение двух экранов 2.0" 320х240 (без точа, слева) и 2.8" 320х240 (с точем, справа).
1717354465424.png1717354488629.png

Из всех имеющихся у меня экранов 2.0" самый лучший по передаче цветов и контрастности.
Ваши сообщения автоматически объединены:

Вроде как максимальный размер дисплея с разрешением 320х240 - 3.2 дюйма.
Есть у меня такой, проверю на предмет скорости отрисовки.
Ваши сообщения автоматически объединены:

ЗЫ. Валер, если будет возможность, ткни осциллом в пин дисплея IRQ для резистивного тача и посмотри, что там будет при тыке и удержании пальца/стилуса на таче.
У меня все кнопки с задержкой (т.е. срабатывание на отпускание). Как посмотреть: на нажатие или на отпускание?
 
Не.
Вот ёмкостной я тыкал - палец прислонил к тачу, а на выводе IRQ с периодом 10 мсек импульсы долбят, пока не отпустишь.
На резистивном, интересно, так же?
 
Вроде как максимальный размер дисплея с разрешением 320х240 - 3.2 дюйма.
Будет и размер по-максимуму и кол-во точек приемлемое для скорости отрисовки.
Сравнение 2.8" 320х240 и 3.2" 320х240
1717359211092.png
1. Скорость отрисовки основного экрана одинаковая, 70мс.
2. С передачей цветов на 3.2" что-то не то: контрастность белое-серое намного ниже. Возможно, что какой-то дефект моего экрана. Или надо подсветку уменьшить.

P.S. Сейчас пса прогуляю, а потом достану осциллограф и проверю IRQ.
 
  • Последнее редактирование:
Последнее редактирование:
2. С передачей цветов на 3.2" что-то не то: контрастность белое-серое намного ниже. Возможно, что какой-то дефект моего экрана. Или надо подсветку уменьшить.
А на мой взгляд правый, 3.2 получше кажет. На кнопка, только, нифига не видно, может стоит почернее шрифт сделать - выше же всё отчётливо отображается...
Драйверы дисплеев одинаковые?
 
А на мой взгляд правый, 3.2 получше кажет. На кнопка, только, нифига не видно, может стоит почернее шрифт сделать - выше же всё отчётливо отображается...
Драйверы дисплеев одинаковые?
Драйвера одинаковые. А отображения разные на близких цветах: фон - серебро, текст - белый. Быстрее всего, дело в подсветке.
 
ЗЫ. Валер, если будет возможность, ткни осциллом в пин дисплея IRQ для резистивного тача и посмотри, что там будет при тыке и удержании пальца/стилуса на таче.
Без пальца идут пачки хаотических импульсов. С переменной задержкой, от 0.5 до 1 сек. Амплитуда ~ 3в. С пальцем основной уровень изменяется с High на Low, и на его фоне идут те же хаотические пачки импульсов. После отпускания пальца основной уровень возвращается на High. Подтяжки ситуацию не меняют.

1717367584940.png

Вообщем, какую-то фигню китайцы на этот пин налепили. И лучше его не пользовать, и без него точ нормально работает. Как резистивный, так и ёмкостной.
Ваши сообщения автоматически объединены:

А на мой взгляд правый, 3.2 получше кажет.
Это на фото, фокус был на 3.2. А в реалиях практически одинаково.
 
Где-то в тумбочках, как счас помню, тоже экранчик с резистивным тачем был, надо поискать для поэкспериментить.
Хотя, быстрее, наверное, с Али новый заказать, чем тот найти :)
 
Вот ёмкостной я тыкал - палец прислонил к тачу, а на выводе IRQ с периодом 10 мсек импульсы долбят, пока не отпустишь.
Если верить китайскому описанию драйверов, этот пин работает от внешнего прерывания.
 
этот пин работает от внешнего прерывания
Китайскому описанию не верь - мне верь :)
По FT6336:
Этот пин дёргает уровнем при касании тача. Соответственно, МК, через свой пин, на который назначено прерывание с обработчиком, "узнаёт" о том, что было касание и тут можно проверить в какой координате это случилось. Это вместо того, что бы постоянный опрос в цикле не делать.

Active Mode
In this mode, FT6X36 actively scans the panel. The default scan rate is 60 frames per second. The host processor can configure
FT6X36 to speed up or to slow down.
Monitor Mode
In this mode, FT6X36 scans the panel at a reduced speed. The default scan rate is 25 frames per second and the host processor can
increase or decrease this rate. When in this mode, most algorithms are stopped. A simpler algorithm is being executed to determine if there is a touch or not.
When a touch is detected, FT6X36 shall enter the Active mode immediately to acquire the touch information quickly.
During this mode, the serial port is closed and no data shall be transferred with the host processor.

The interrupt signal (/INT) is
used for FT6X36 to inform the host that data are ready for the host to receive.
The RSTN signal is used for the host to reset FT6X36.
After resetting, FT6X36 shall enter the Active mode.
 
Китайскому описанию не верь - мне верь :)
По FT6336:
Этот пин дёргает уровнем при касании тача. Соответственно, МК, через свой пин, на который назначено прерывание с обработчиком, "узнаёт" о том, что было касание и тут можно проверить в какой координате это случилось. Это вместо того, что бы постоянный опрос в цикле не делать.

Active Mode
In this mode, FT6X36 actively scans the panel. The default scan rate is 60 frames per second. The host processor can configure
FT6X36 to speed up or to slow down.
Monitor Mode
In this mode, FT6X36 scans the panel at a reduced speed. The default scan rate is 25 frames per second and the host processor can
increase or decrease this rate. When in this mode, most algorithms are stopped. A simpler algorithm is being executed to determine if there is a touch or not.
When a touch is detected, FT6X36 shall enter the Active mode immediately to acquire the touch information quickly.
During this mode, the serial port is closed and no data shall be transferred with the host processor.

The interrupt signal (/INT) is
used for FT6X36 to inform the host that data are ready for the host to receive.
The RSTN signal is used for the host to reset FT6X36.
After resetting, FT6X36 shall enter the Active mode.
Поверил бы, если бы с этого пина не шли хаотичные пачки коротких импульсов. Да и твои же эксперименты показали, что вместо "FT6X36 shall enter the Active mode immediately" там более подходит "FT6X36 may enter the Active mode immediately". :D
 
Поверил бы, если бы с этого пина не шли хаотичные пачки коротких импульсов.
С ёмкостного-то не идут. Висит себе нормальная лог. 1, коснулись - упало в 0, держим палец - идут ровные, одинаковые импульсы, отпускаем - снова лог.1. Никаких игл и помех нет. И оно на прерывание хорошо отрабатывает, но многократно, ибо импульсы долбят. Проще, таки да, периодически опрашивать.

Нашёлся в тумбочке дисплей с резистивным тачем, 3.2", 320х240, микросхема тача XPT2046, потом подкину, посмотрю, какие у него там пачки хаотичные :)
 
  • Последнее редактирование:
Последнее редактирование:
И оно на прерывание хорошо отрабатывает, но многократно, ибо импульсы долбят. Проще, таки да, периодически опрашивать.
Я это и имел ввиду. И, по моему опыту, для надежного срабатывания кнопок надо после нажатия кнопки задерживать опрос до отпускания. Если же нужна быстрая реакция на нажатие (например, аварийный стоп) - я сразу после нажатия отправляю сигнал на другое ядро.

Насчет периодического опроса в основном loop. У меня в режиме редактора идет постоянный опрос точа в 33 зонах (12 полей и 21 кнопка). Плюс прерывания мигалки курсора, плюс проверка напряжения батареи. С резистивным точем задержки незаметны и срабатывания стабильны. С ёмкостным, да, есть задержки и есть нестабильности (частенько срабатывает со второго-третьего раза).

Насчет пачек импульсов. Смотрел на резистивном экране 3.2", 320х240, XPT2046 (возможно, такой же, как и твой). Основной уровень при нажатии/отпускании ведет себя так же, как у тебя (1 -> 0 -> 1). А откуда на основном уровне возникают хаотичные короткие импульсы - фиг его знает, экран старый, может что-то сдохло.
 
Сверху Снизу
Обнаружен блокировщик рекламы AdBlock

МЫ ДОГАДЫВАЕМСЯ, ЧТО РЕКЛАМА ВАС РАЗДРАЖАЕТ!

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

Спасибо за Ваше понимание!

Я отключил свой AdBlock    Нет, я не буду ничего отключать