Дисплей от компании Nextion 3.5″ для Arduino и не только

Цена: 24,90$

 

Очень! перспективный дисплей от Itead Studio для людей с прямыми руками и наличием свободного времени. Я не поленился и достал ближайший аналог на Алиэкспрессе для сравнения товара из двух разных ценовых категорий, почти неделю посидел с ними поигрался (в свободное время) и сформировал определенное мнение, которым хочу поделиться. То что у меня в руках отлично подойдет для панели управления умного дома и т.п. в том числе для arduino благодаря простй в освоении программе в комплекте. И да, в собственной среде разработки для дисплея есть поддержка русских шрифтов (кодировка iso 8859-5 при выборе шрифта из списка), все очень адаптивно.

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

фото




Для понимающих в электронике я постарался как можно лучше сфотографировать чипы

Чипы

По характеристикам это 3.5″ TFT дисплей разрешением 480×320 с резистивным тачем и 16M Flash памяти на борту для записи вашего проекта. Количество цветов 65k, что похоже на првду, тач адекватный. Может по ощущениям с последними емкостными экранами смартфонов и не сравнится, но все очень и очень достойно, а чтобы было наглядно будут еще фото.

Еще фото






С внешним видом закончили, идем дальше. У экрана на борту стоит микроконтроллер STM32, судя по всему это кортекс м3, и для него собрана среда разработки заточенная под дисплей. В качестве приятной изюминки — присутствует неплохой программный эмулятор дисплея, благодаря которому чтобы оценить его возможности совсем не обязательно что-то покупать. Ложка дегтя — ПО сырое и не обрабатывает некоторые функции, присутствуют определенные шероховатости. Но это все преодолимо, я посидел вечерок и освоился.

Итак, что на нем можно сделать? Да что угодно. Первое, что я сделал это бегло пролистал некоторую полезную информацию, подготовленную разработчиками и понял, что местами она не слишком понятная для не подготовленного пользователя. Nextion_Instruction_Set
Quick_Start_Guide
Но это меня мало смутило, вот несколько моментов, на которых я споткнулся и долго тупил:


if(va0.val>44)
{
  va0.val=0
}

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

Итак, мы подобрались к самому вкусному — испытаниям! Большинство пользователей ПК отлично помнит что такое gif анимация — это быстро сменяющие друг друга изображения, создающие эффект движения, чаще всего этот мини ролик закольцован и дарит зрителю иллюзию бесконечного движения. Я взял анимацию «метаморфоза» для примера. Для просмотра придется кликнуть по картинке ниже.

Воспользовался онлайн сервисом, разбил ее на кадры и подогнал под нужное разрешение экрана, получив на выходе 45 изображений для цикла. 6 строчек кода, потраченный вечер на поиски сервиса и понимание компилятора — вторую анимацию я сделаю за 3-4 минуты. ПРИЧЕМ! все это кликабельно, реагирует на нажатие и экран остается интерактивным.


p0.pic=va0.val
va0.val=va0.val+1
if(va0.val>44)
{
  va0.val=0
}

Т.е. можно запускать анимацию по нажатию, останавливать, запускать, пока поле нажато и останавливать когда нажатие исчезает. Проверено — работает. Т.е. можно писать интерактивные, анимированные меню, любители прекрасного оценят. Опытным путем выяснил, что скорость обновления 20 кадров в секунду, анимация плавная, полет отличный. И да, каждое нажатие может передавать по UART уникальный код для дальнейшей обработки, светодиодом на ардуине я помигал, спасибо библиотеке.

Как это выглядит в штатной среде разработки

ВАЖНО!!! Заливка прошивки через UART занимает минут пять, чтобы не ждать от неба погоды, как это делал я — идем в меню File —> Open build folder, откроется папка с файлами формата *.tft. Копируем на флэшку (формат FAT32, в моем случае 8Гб, 10 класс), вставляем в картридер на дисплее, и все прошивается секунд за 20-30. И да, картридер только для прошивки, иного применения я не нашел.
Итак можно сказать я усвоил основы — кнопки и анимации, поиграл со слайдером для изменения скорости все той же анимации и пошел дальше. На экране можно рисовать линии и прямоугольники программно, опробовал в эмуляторе. Можно гасить экран по истечению времени и выходить из спящего режима по нажатию и много чего еще, все описано в Nextion Instruction Set. Но описано местами кривое, не спроста простейший if умудрился вызвать у меня проблемы, с рандомом поленился разбираться, но это частности, которые не вошли в мои потребности.
Дальше я поигрался с инструментом Crup, если упрощенно, то он делает прозрачной область при нажатии. Берем два изображения найди 5 отличий, моя любимая детская игра, кстати, не смог удержаться и не повторить дэмо производителя с небольшими дополнениями.


при нажатии на область с отличием, «просвечивает» часть изображения со второй картинки, где оно обведено в красный кружок. При этом считается число найденных отличий и идет отсчет времени до победы, после чего появится надпись вы победили.

На вкусненькое, судя по описанию, командами области можно делать доступными/недоступными для нажатия, та же штука с видимостью, т.е. в теории можно потратив прорву времени и сломав мозг повторить неповторимое, доброе, знакомое с детства )))

Такая простенькая игрушка, как моя, делается минут за 5-10 вообще не напрягаясь, естественно после денька копания в программе.

Смотрим дальше. У экрана интерфейс UART, у блютуса UART… Пара HC-05, сцепленные в мастер-ведомый и мы получаем удлинитель UART. А веду я к тому, что можно получить беспроводной пульт, при нажатии на который будет анимировано действие, происходящее в железе. Нажали включить вентилятор и на экране он вращается и т.д., не говоря уже про детские игрушки. Те кто знаком с андроид приложениями должны оценить перспективу подцепить экран к смартфону или планшету, при этом не забываем, что блютус может быть подключен не в разрыв, а параллельно, т.е. та же ардуина будет делать свое дело, а на смартфоне отобразится информация о том, что происходит. Блин, да тут можно такого наворотить, найти бы только программиста…

Ладно, теперь альтернативы из соседней ценовой категории. Самый дешевый Nextion стоит примерно 14$ за 2.4 дюйма, я купил дисплэй 2.8 дюйма под ардуино примерно за 7.8$

Идем по аналогии с героем обзора




Можете поверить на слово, цвета хорошие, углы обзора аналогичные, по факту, если не учитывать то, что накосячили с расположением картридера — добротный шилд, но блин, как же с ним тяжело. Потратил пол часа на поиски библиотеки и еще час, чтобы направление осей тачскрина совпало с направлением движения пальца (аж целую строчку поменял, зато как талантливо!). А дальше пошли минусы (( Экран не жестко крепится к текстолиту, а на две узкие полоски двойного скотча по краям, все это проминается просто жесть. думаешь тач по краям тугой, ан нет, сначала проминается скотч, а только потом нажатие, да еще и экран при сильном продавливании садится на железные пины, что не особо радует, но все легко лечится парой капель термоклея по углам или отодрать к чертям и приклеить все нормально. Короче без напильника никак…

крепление


По итогам пользоваться можно результат тот же, но я не представляю, каким башковитым нужно быть, чтобы написать на нем игру на подобие той, что я написал на nexton минут за 10, да еще чтобы ничего не глючило и красиво смотрелось. Навыки и опыт работы с подобными дисплеями должен быть в разы выше. Ну и, конечно, без ардуины или чего-то подобного они работать не в состоянии, а вот у nexton вся работа с графикой ложится на встроенный STM и флэш память, а той же ардуине при этом должно дышаться легче. Сейчас вообще жалею о покупке шилда, а еще больше жалею, что ко мне едет еще один для меги на 3,5 дюйма, заказывал для этого обзора, но не дождался.
Настоятельно советую скачать среду разработки с сайта производителя, покопаться, понять, оценить и уже потом делать выбор. Далее при покупке обязательно уточняйте, что нужна европейская версия, иначе будете мучаться переводом с китайского. По личному опыту к покупке советую, знакомые уже дергают, тестовый образец из рук вырывают. Вот что получилось по итогу не полной недели баловства.

Резюме:
+ Относительно легко работать
+ Умопомрачительные перспективы
+ Энтузиасты уже начали делать формы для 3d принтера под корпус Сдесь же можно посмотреть демо прошивки под дисплеи ссылки в конце статьи
+ Поддерживает кириллицу, они же русские шрифты
+ UART интерфейс, что здорово экономит порты и дарит еще немножко перспектив, особенно под кортексы, где 3+1 uart, ардуино леонардо — 2 uart и так далее. Не суть, но однозначно отнесу к плюсам.
+ удобные инструменты для создания интерфейса, про которые я далеко не все рассказал, но тем интереснее будет копаться самому
+ Культура производства, ничего не проминается, не люфтит, не гнется, не отваливается. 
+ Отличная заводская упаковка, как минимум приятнее держать в руках, как максимум переживет транспортировку с гарантией.

— Сырая прошивка
— Капризный компилятор
— Не очень понравилось описание команд (спишу на свой английский)

— + Не так много примеров под этот дисплэй, ,и не столь подробно как хотелось бы
— + Скудный язык компилятора, но легкий в освоении
— + Тяжело с русскоязычной поддержкой (но дело сдвинулось с мертвой точки)
geektimes.ru/company/flprog/blog/273868/ — Туториал
support.iteadstudio.com/support/discussions/topics/1000065323 — полезная ссылочка

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

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