Nextion NX4827T043 — 4.3” HMI-панель с последовательным портом

      Еще один обзор довольно интересной самодостаточной платформы для простого создания GUI к Вашим самоделкам.
      Вариант 4,3″, 480х272.
      Другие обзоры данных панелей:

 раз

      ,

 два

      ,

 три

      .
      Сразу уточню, это

 не 

      «дисплей для Ардуины», это

 HMI-панель

      . =)

    Распаковка

    Пришел дисплей в большой картонной коробке.
    Нещадно помятой, надо заметить.

    Впрочем, ничего не пострадало.

    Железо

    Вот и наш дисплей. В симпатичной собственной коробке.

    Сверху и снизу проложен мягким материалом, вероятность повреждения крайне мала.

    Сам дисплей заклеен пломбой. Это приятно.

    Из аксессуаров у нас адаптер на Dupont разъемы и адаптер питания.

    Кстати, классная штука. Воткнул в свою макетную плату, да там и оставил.

    Сам дисплей, заклеен транспортировочной пленкой. Видна резистивная тач-панель.

    Сзади это дело выглядит… весьма мило!
    К чистоте и качеству пайки нареканий нет.
    К сожалению, слот под карту памяти только для прошивки.

    Мозги и сердце девайса — ARM микроконтроллер STM32.

    Большая микросхема — ПЛИС Altera MAX II. Производитель называет её «RGB driver», я же от комментариев воздержусь, ибо не очень разбираюсь в ПЛИС.

    Постоянная память объемом 16 мегабайт, что довольно некисло.

    А тут оперативная память видеоядра.

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

    Качество изображения

    Панель построена на TN-матрице. В принципе, это всё объясняет.
    Углы обзора у нас ограниченны, цвета не такие сочные, уже привыкшему к IPS глазу.
    Но в целом, дисплей довольно качественный. Яркости достаточно, цвета довольно убедительные.
    Ну и простите, господа — это же не устройство для просмотра кино.
    Кстати, цифры «4,3» и «480х272» во мне всколыхнули кое-какие воспоминания. Это же был мой 2007 и PSP!
    Так что делаю скриншот в меню PSP 3000, заливаю в панель и сравниваю:

    Это PSP покрупнее:

    Это Nextion:

    Собственно, было бы сопоставимо, но картину портят неважные градиенты.
    Это не критично, просто надо учитывать особенности железки (65K цветов) при создании дизайна GUI.

    Софт

    nextion.itead.cc/
    Ну а вот и то, за что мы платим.
    В смысле, софт-то бесплатный и даже с полноценным эмулятором всех панелей изготовителя (да-да, качайте и развлекайтесь, все функции доступны, нажатия на тач выполняются мышкой), но вот залить результат можно только в Nextion. =)

    Для начала, давайте проверим самые азы.
    Поморгаем светодиодом, а как же.
    Идем смотреть инструкцию: support.iteadstudio.com/support/discussions/topics/1000065323
    Но совсем-совсем для начала, нужно откалибровать тачскрин.
    Подключаем панельку USB-TTL адаптером (питание, RX-TX, TX-RX). У меня вот такой.

    Открываем пустой проект в Nextion Editor, жмем Debug.
    Выбираем Nextion Device и соответствующий COM-порт.
    В окошке Input пишем «touch_j», Enter.

    Запустится программа калибровки:

    Отлично, что это предусмотрели.

    Ну а теперь можно и помигать.

    Hello World

    Вот описание проекта: www.itead.cc/blog/product-preview-nextion-in-an-arduino-project-3
    К сожалению, что-то устарело и ничего не работает. Но мы разберемся!
    Проект сделаем с нуля. Скачать.
    Две странички, две картинки, две кнопки.
    Кнопкам задаем отсылать по COM порту своё состояние по отпусканию.

    В симуляторе всё работает, кажись.

    Код Ардуино:

    Подключаем всё так же, RX-TX, TX-RX. Ну и результат:

    Идем далее, ввод-вывод


    Мы можем не только управлять чем-то с дисплея, но и посылать на него данные.
    Что ж, второе, что нужно сделать после мигания светодиодом — часы, ясное дело.
    Подключаю свой к Ардуине свои любимые часы DS3231, иду в редактор.
    Набрасываю проект:



    Скачать HMI проект.
    Вывод дисплея настолько понятный, что читается невооруженным глазом в мониторе COM-порта.
    Зачем мне библиотеки, подумал я? Сделаем простейший парсер.
    Через часок я вспомнил, что программист из меня неважный.
    В общем, идем за библиотекой.
    По умолчанию она настроена под Arduilo Mega с двумя физическими портами, так что под Pro Mega и подобные нужно настроить NexConfig.h так:

    #define DEBUG_SERIAL_ENABLE —> //#define DEBUG_SERIAL_ENABLE
    #define nexSerial Serial2  —> #define nexSerial Serial 

    Разобраться было не очень просто, стиль программирования в примерах… своеобразный.
    В качестве отправной точки я использовал эту статью: www.itead.cc/blog/nextion-tutorial-based-on-nextion-arduino-library
    Обнаружилась особенность, которая стоила некоторого количества седых волос: обязательно нужно указывать уникальные имена для всех полей, куда будем делать вывод. Nextion Editor позволяет указывать параметр global/local, но железо не всегда с ним согласно.
    В общем, вышло как-то так: скетч проекта.
    Код кривой и громоздкий, прошу прощения. Но надеюсь, минимально читаемый.
    В работе:

    Выводы

    + Просто работать
    + Широкие возможности, из которых я использовал малую часть — ползунки, барграфы, стрелочные индикаторы
    + Неубиваемость — проверено выдергивание питания нагорячую при перепрошивке
    + Неплохое качество тачскрина и дисплея
    + Навалом памяти, не удивлюсь, если туда влезет VN-игра целиком, например

    ± Цена. Хотя модели поменьше вполне доступны: младшая 2.4“ стоит всего-то $13.90

    — Нет GPIO (впрочем, уже анонсировано следующее поколение Nextion Enhanced с GPIO и RTC на борту)

    Благодарю за внимание.

    Бонус

    Не терпится оставить коммент, что дорого?
    У меня в закромах нашелся забавный девайс с подобным функционалом. Уже не выпускается, но на eBay стоит US $895.00, что примерно в 20 раз дороже. 

    Schneider Electric Magelis XBTGT2120.
    Немножко побитый жизнью, но условно-рабочий. Половина дисплея повреждена.


    Тоже несколько кнопок на тачскрине, да ввод-вывод.

    Так это дело работает:

    Товар предоставлен для написания обзора магазином. Обзор опубликован в соответствии с п.18 Правил сайта.

    Добавить комментарий

    Ваш e-mail не будет опубликован. Обязательные поля помечены *