Сенсорные экраны¶
Сенсорный экран - это не просто дисплей. Это дисплей плюс ввод от пользователя. Он должен не только показать температуру или кнопку, но и передать в устройство, куда нажали.
Из-за этого сенсорный экран почти всегда сложнее OLED. Нужно выбрать не только размер и разрешение, но и понять, кто рисует интерфейс, кто обрабатывает касания, какой интерфейс используется и поддерживает ли это выбранная прошивка.
Когда сенсорный экран полезен¶
Сенсорный экран имеет смысл, если на устройстве нужен полноценный локальный интерфейс:
- выбор режима сушки;
- установка температуры и времени;
- список профилей материалов;
- подтверждение ошибок;
- ручное управление вентилятором, подсветкой или заслонкой;
- настройка Wi-Fi;
- просмотр статуса без телефона или компьютера.
Если нужно только показать температуру, ошибку и режим, чаще достаточно OLED, пары кнопок, энкодера или веб-интерфейса. Сенсорный экран добавляет цену, питание, место в корпусе, прошивку, кабели и новую точку отказа.
Главный вопрос: кто рисует интерфейс¶
Перед покупкой нужно ответить на главный вопрос: где живёт пользовательский интерфейс.
Есть несколько разных классов экранов:
Raw TFT - это простой экран с контроллером, например ILI9341, ILI9488, ST7789, плюс отдельный контроллер касания вроде XPT2046 или FT5x06. Интерфейс рисует твой микроконтроллер или прошивка. Это гибко, но требует кода, памяти, драйверов и калибровки.
Smart UART/HMI display - это экран со своей прошивкой и редактором интерфейса, например Nextion-подобный подход. Микроконтроллер отправляет команды по UART, а экран сам показывает страницы и элементы. Это снижает нагрузку на MCU, но привязывает проект к инструментам и протоколу конкретного экрана.
Принтерный TFT, например BTT TFT35, часто имеет собственный режим тач-экрана через UART и режим эмуляции классического 12864 LCD через EXP-разъёмы. Такой экран удобен для Marlin/3D-принтерных плат, но не является универсальной панелью для любого DIY-устройства.
HDMI/DSI/USB экран для Linux-хоста работает как обычный монитор и тач-устройство для Raspberry Pi или другого Linux-компьютера. Такой вариант подходит для KlipperScreen, но не подключается напрямую к маленькому ESP32 как простой модуль.
Интерфейсы подключения¶
Сенсорные экраны могут использовать разные интерфейсы.
Частые варианты:
- SPI - часто у маленьких TFT для ESP32/Arduino;
- I2C - часто у контроллеров ёмкостного тача, иногда у тач-контроллеров;
- UART - у smart display и некоторых 3D-принтерных TFT;
- EXP1/EXP2/EXP3 - у экранов, совместимых с 3D-принтерными платами;
- HDMI + USB - у Linux-экранов для Raspberry Pi;
- DSI - у некоторых Raspberry Pi экранов;
- параллельный RGB/8080 - у более быстрых TFT, но проводов и требований больше.
Нельзя выбирать экран только по диагонали. Два экрана 3.5" могут быть совершенно разными: один SPI-модуль для ESP32, второй UART-панель со своей прошивкой, третий HDMI-экран для Raspberry Pi.
Резистивный и ёмкостный touch¶
Touch-часть тоже бывает разной.
Резистивный тач:
- реагирует на давление пальцем, стилусом или ногтем;
- часто требует калибровки;
- обычно хуже для жестов;
- может быть дешевле;
- встречается с контроллерами вроде
XPT2046.
Ёмкостный тач:
- реагирует на палец;
- обычно приятнее в использовании;
- может поддерживать несколько касаний;
- часто имеет отдельный контроллер, например семейства
FT5x06,GT911и похожие; - хуже работает в толстых перчатках и с некоторыми защитными накладками.
Для устройства в мастерской резистивный тач иногда практичнее, потому что по нему можно нажать ногтем или стилусом. Для красивой панели на корпусе ёмкостный экран обычно ощущается современнее.
Питание, подсветка и ток¶
TFT-экран потребляет больше, чем маленький OLED. Главный потребитель - подсветка.
Перед подключением проверь:
- напряжение питания экрана;
- ток подсветки;
- нужен ли отдельный 5V источник;
- можно ли регулировать яркость подсветки;
- совместимы ли логические уровни;
- не перегружает ли экран стабилизатор платы;
- не просаживается ли питание при включении подсветки.
Если экран начинает белеть, моргать, перезагружать контроллер или терять touch-события, сначала проверяют питание и землю, а не переписывают интерфейс.
Для устройства с нагревателем экран не должен питаться от случайного слабого пина платы. Он должен быть частью нормальной схемы питания с понятным запасом.
Прошивка и совместимость¶
Красивый экран бесполезен, если его не поддерживает выбранная прошивка.
Для ESP32/Arduino-подхода нужно проверить:
- есть ли драйвер дисплея;
- есть ли драйвер touch-контроллера;
- хватает ли GPIO;
- хватает ли RAM/PSRAM для буфера;
- какой графический фреймворк используется;
- кто будет писать меню.
Для ESPHome нужно смотреть поддержку конкретного display-драйвера и touchscreen-компонента. Например, ILI9xxx-дисплеи и XPT2046 touch требуют SPI и отдельной конфигурации, а резистивный touch требует калибровки.
Для Klipper обычно есть два разных мира:
- маленькие дисплеи, подключённые к MCU и описанные в конфигурации Klipper;
- KlipperScreen на Linux-хосте, где экран работает как монитор и touch-устройство.
KlipperScreen обычно требует экран, на котором Linux может показать рабочий стол или консоль. Это не то же самое, что маленький UART TFT, подключённый к принтерной плате.
Для Marlin/принтерных плат нужно смотреть, поддерживает ли конкретный экран нужный режим: UART touch mode, 12864 emulation, EXP1/EXP2/EXP3, конкретный тип контроллера в конфигурации прошивки.
Smart display и Nextion-подобные экраны¶
Smart display удобен тем, что экран сам хранит страницы, кнопки, шрифты и картинки. Контроллер отправляет команды по UART и получает события касания.
Плюсы:
- меньше нагрузки на микроконтроллер;
- меньше графического кода в основной прошивке;
- можно нарисовать интерфейс в редакторе экрана;
- достаточно UART и питания.
Минусы:
- нужно изучать отдельный редактор и протокол;
- интерфейс часто хранится в самом экране;
- сложнее поддерживать версии UI и прошивки устройства;
- не все элементы ведут себя как в обычном приложении;
- замена экрана может потребовать переделки проекта.
Для простого устройства smart display может быть хорошим решением, если нужна красивая панель без Linux-хоста. Но его нельзя считать "обычным монитором": это отдельный модуль со своей логикой.
Корпус, кабели и обслуживание¶
Сенсорный экран - это деталь, которую пользователь трогает руками. Поэтому важны не только провода, но и механика.
Проверь заранее:
- экран не стоит в горячей зоне;
- есть рамка или защитная посадка;
- шлейф не перегибается при открытии крышки;
- кабель можно отключить при обслуживании;
- разъём нельзя вставить наоборот;
- на экран не давит корпус;
- есть доступ к SD-карте или USB, если они нужны для обновления;
- пользователь не касается силовых частей при работе с экраном;
- проводка touch/display отделена от проводов нагревателя.
Для устройств с нагревателем экран лучше выносить в пользовательскую зону, отделённую от горячего воздуха и силовой части.
Что проверить перед покупкой¶
Перед покупкой сенсорного экрана проверь:
- диагональ и разрешение;
- тип дисплея: raw TFT, smart UART, принтерный TFT, HDMI/DSI;
- интерфейс дисплея;
- интерфейс touch;
- контроллер дисплея: например
ILI9341,ILI9488,ST7789; - контроллер touch: например
XPT2046,FT5x06,GT911; - питание и ток подсветки;
- логические уровни;
- поддержка в прошивке;
- наличие документации и примеров;
- наличие библиотек;
- требования к RAM/PSRAM;
- размеры платы, отверстия и шлейф;
- рабочая температура;
- способ обновления прошивки/интерфейса экрана.
Если в описании товара нет контроллера дисплея, интерфейса, питания и примеров подключения, такой экран лучше не брать для первого проекта.
Типовые ошибки¶
- купили экран "для Arduino", а в проекте KlipperScreen на Linux;
- купили HDMI-экран и пытаются подключить его к ESP32 напрямую;
- купили UART smart display и ожидают, что он будет работать как обычный TFT;
- выбрали raw TFT, но не заложили время на меню и графический код;
- не хватает GPIO для SPI-дисплея и touch-контроллера;
- не хватает RAM для буфера экрана;
- не проверили контроллер touch;
- не сделали калибровку резистивного тача;
- экран моргает из-за слабого питания подсветки;
- шлейф проходит рядом с силовой проводкой нагревателя;
- экран поставили в горячую зону;
- интерфейс получился красивым, но главная авария на нём плохо видна.
Главное¶
Сенсорный экран нужно выбирать не по диагонали, а по архитектуре. Сначала реши, кто рисует интерфейс: микроконтроллер, сам экран, принтерная прошивка или Linux-хост. Потом проверяй интерфейс, питание, touch-контроллер, поддержку в прошивке и механику корпуса.
Для простого нагревателя, сушилки или фильтра часто достаточно OLED, кнопки или веб-интерфейса. Сенсорный экран стоит ставить, когда локальный интерфейс действительно нужен пользователю.
Материалы по теме¶
- KlipperScreen: Hardware - требования и примеры экранов для KlipperScreen, включая HDMI/DSI/Raspberry Pi варианты.
- BIGTREETECH TouchScreenFirmware - прошивка и режимы BTT TFT: touch mode, Marlin/12864 emulation, EXP-разъёмы и настройки.
- BIGTREETECH TFT35 V3.0 repository - документация и файлы для распространённого 3D-принтерного TFT35.
- Adafruit 3.5 inch TFT Touchscreen Breakout - пример raw TFT с SPI/8-bit режимами, отдельным touch и библиотеками.
- ESPHome: Touchscreen Components - документация по touch-компонентам, калибровке и связи raw touch-координат с координатами дисплея.
- ESPHome: ILI9xxx TFT LCD Series - пример поддержки raw TFT-дисплеев на ESPHome и важные ограничения по памяти.