Отзыв на Touch-дисплей Nextion

При создании разных устройств на микроконтроллерах очень часто появляется задача отображения информации. Для этого используются простые LCD-экраны, наиболее популярный на базе контроллера HD44780. В более совершенных устройствах часто можно видеть мониторы от Nokia 5110. Большая часть радиолюбительских разработок создается с применением простых 8-ми битных микроконтроллеров AVR, PIC. И если есть необходимость подключить цветной LCD экран, да еще и с тач-панелью к такому микроконтроллеру, то как минимум необходим аппаратный контроллер, библиотеки для него и др. Библиотеки, документация и простота взаимодействия с LCD-дисплеем и тач-панелью имеют особое значение. И вот на краудфандинговой платформе Indiegogo появился интересный проект LCD дисплея с тач сенсором и контроллером, который подключается по обычному UART-интерфейсу, имеет простую и достаточно функциональную среду проектирования интерфейса и взаимодействия с пользователем «Nextion Editor IDE». При заявленных 20000 долларах проект собрал более 45000 долларов.
И вот в этом видео студия «Паяльник-ТВ» делает обзор (и, соответственно, дает свой отзыв) прототипов данных дисплеев размерами 2.4” и 4.3”. Подключаются они к микроконтроллеру питание +5Вольт, общий и две линии UART RX и TX (прием и передача данных). Для взаимодействия с дисплеем по UART есть команды, представлены в документации. Что позволяет подключить дисплей к простейшим 8-ми битным микроконтроллерам, к компьютеру через преобразователь уровней и к тем же мини-ПК на базе Linux, к примеру к Cubieboard, Banana и др., почти у всех них есть UART-интерфейс. Дисплеи имеют контроллеры для отображения информации, память и другое железо, а также слот микро-SD для того, чтобы перенести проект интерфейса во флэш-память, который проектируется и затем компилируется в визуальной среде разработки Nextion Editor.
Видео будет разбито на 2 части – в первой части описан простой вывод данных на дисплей, листание экранов, отображение различных изображений и элементов, работа со шрифтами и т.д. Во второй части – взаимодействие с пользователем, с оператором – ввод данных, обработка событий от нажатия кнопок, передача данных в контроллер и т.д.

Товары для изобретателей Ссылка на магазин.

Отобразим на LCD какие-либо простые элементы, часть из которых будет показывать данные с UART микроконтроллера. В нашем случае это Arduino. Мы видим фоновую картинку, прогресс-бар, его текстовое значение с меняющимся цветом, надпись PayalnikTV и слева картинка, тоже меняющаяся случайно логотип канала Паяльник-TV.
Перед нами редактор Nextion. Откроем для примера какой-нибудь проект. И пробежимся по интерфейсу программы. Вот есть проект станции погодной. Итак Display – это рабочее поле, где мы работаем с проектом. Pictures и Fonts – картинки, которые будут использоваться в проекте и шрифты. Можем добавлять, удалять и так далее. В одном проекте может быть несколько страниц, которые можно менять как с контроллера, так и простейшими командами при взаимодействии с экранными элементами – кнопками к примеру.
Далее параметры обьекта. Имя объекта и различные свойства – цвет, шрифты, выравнивание и др. Внизу отладочная информация и обработчики событий. Удалив страницу, посмотрим какие элементы поддерживает редактор. Текст, кнопка, прогресс-бар, картинка, кроп от картинки, область нажатия и стрелка по кругу.
Начнем с текста. Добавим новую страничку. Можно сделать серый фон. Добавим текстовый компонент. Можно изменять размер, шрифты. В свойствах можем задавать их. У текста и других элементов можем менять фон.
Следующий компонент это Button – кнопка. Тут в принципе все тоже самое. Только добавляется BCO2 и PCO2. То есть, это когда мы нажимаем на кнопку. B0 – это имя объекта, чтобы взаимодействовать с ним при помощи микроконтроллера.

1
Далее прогресс-бар. Может быть горизонтальный или вертикальный. Вот сейчас у нас вертикальный. Также можем менять цвета, использовать картинку. VAL – это значение прогресс-бара, от 0 до 100.
Следующий компонент pictures – картинка. Нажимаем PIC и отображается банк картинок, откуда можем вставить нужную картинку. Следующий компонент – это CROP от картинки.
Это touch area – зона нажатия. Т.е. когда нам нужно будет в микроконтроллере отслеживать координаты, можно использовать этот элемент.
Gauges – это стрелка. Свойство VAL (Value) может принимать значение от 0 до 360. Это градусы. 360 – это полный оборот. WID – это толщина, от 1 до 5.
Имеется кнопка компиляции.
Теперь создадим проект. Нажимаем NEW, вводим имя проекта и выбираем разрешение. Для дисплея 2.4 дюйма 320х240, для дисплея 4.3 дюйма 480×272 пикселей. Ориентацию можно горизонтальную или вертикальную. Все, вот проект.
В дальнейшем компания ITEAD планирует выпустить другие дисплеи 2.8”, 5”, 7”. В проекте, как мы уже видели в конечном варианте используются картинки, поэтому мы должны добавить в начале в банк картинок все используемые изображения. Фоновое изображение.
Далее для текста нужны шрифты. Необходимо их сгенерировать. Выбираем 24 размер, кириллицы пока что нет. Расширение – ZI. Закрываем, добавляем, смотрим. Добавляем background.
Давайте добавим прогресс-бар. Следующим этапом мы добавляем картинку, которая у нас будет динамически меняться случайным образом. К примеру 0. Располагаем ее. Все готово. И добавляем текстовый элемент на котором у нас будет выводиться значение прогресс-бара. Задаем шрифт. Добавим статический текст. Простой пример готов.
Можем сохранить, компилируем и переходим в Build Folder. Здесь мы видим файлик cxem3 с расширением TFT, который нужно перенести на SD-карту и на LCD-экран, чтобы тот скопировал в свою флэш-память.
Далее разберем программку для Arduino IDE. Взаимодействовать просто – зная ID-ник элемента, как мы помним t0 – это текстовый компонент, прогресс-бар у нас был там j0, картинка – p0. Т.е. зная ID элемента мы можем менять свойства через UART-интерфейс. В комментариях показано для примера, т.е. чтобы поменять текст у компонента t0, мы просто должны послать вот такую вот последовательность t0.txt=”текс наш”. Если мы хотим поменять страничку, нужно послать просто page, пробел, номер странички (0, 1, 2, 3 и т.д.).
Также можем менять различные параметры, цвет, номера картинок и т.д. К примеру хотим изменить значение прогрессбара (j0 у нас ID был). Мы должны послать вот такую вот последовательность. Хотим поменять цвет текста – посылаем вот такую t1.pco=2016. И в конце каждой команды посылаем вот такую последовательность. В принципе разработчики предоставили библиотеку, вот она здесь подключается HPI.
В скетче показано 2 варианта взаимодействия – через библиотеку и напрямую через UART. Т.к. библиотека еще сырая, и некоторых функций к примеру смены цвета пока что еще разработчики не внедрили. Ну что касается логики программы, то тут не так уж и сложно. Вот у нас переменная bar, которая при каждом прохождении цикла увеличивается на 5 и выводится в текстовом компоненте t0 и в прогрессбаре j0. Как только превысило значение 100, она у нас обнуляется, также в этом условии случайным образом выводится одна из трех картинок при помощи библиотечных функций и генерируется случайный цвет для фона BCO и для самого текста PCO. Вот в принципе и вся программа.
Итак скетч закачали в платку, подключаем теперь питание и смотрим за элементами, которые у нас должны меняться. Вот он наш t0, картинка меняется и прогресс-бар, значение прогресс-бара. Здесь у нас меняется текстовый элемент от 0 до 100, что соответствует прогресс-бару и цвета. И случайным образом картинка. Фоновая картинка статическая, также ка и надпись t1. Что касается стоимости, то на сайте написано, что комплект за 2 экрана с бесплатной доставкой почтой оценивается в 50 долларов. В следующем видео показано, как взаимодействовать с динамическими элементами, т.е. мы отобразим какие-нибудь кнопочки, может быть сделаем какой-нибудь проект с датчиками или что-нибудь подключим. И уже будет у нас более полноценное взаимодействие с экранчиком, т.е. задействуем его touch-способности. На этом обзор Nextion подошел к концу, спасибо за внимание.

Вторая часть видеоотзыва.

Скачать Проект HMI и скетч для Arduino
Скачать Nextion IDE 0.9

Есть интересная статья о светящемся мониторе.

Один комментарий

  1. Спасибо за видео освоению Nextion дисплея на начальном уровне. Жаль не выложили схему.
    Хотелось бы увидеть аналогичное видео по проекту высокой сложности.

Оставить комментарий

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