Дисплей Nextion: азы. Arduino, ESP8266.

Тема в разделе "Глядите, что я сделал", создана пользователем ИгорьК, 9 авг 2016.

Метки:
  1. DIYMan

    DIYMan Guest

    Небольшой очерк полуночных копаний на предмет немного оживить GUI на Nextion. Итак:

    Не секрет, что GUI у Nextion - бедновато, и товарищи с ITEAD не хотят чесаться, от слова "совсем". Взять, например, кнопку-переключатель, как на Android, с двумя положениями - "вкл" и "выкл", и с плавной анимацией перехода между этими положениями: ну нет подобного на Nextion "из коробки", хоть ты тресни.

    Но, как говорится: не тут то было! Не спится мне ночью, и решил я эту кнопочку проэмулировать. Далее, что сделал, по шагам:

    1. Создаём проект Nextion;
    2. Помещаем компонент Progress bar на экран;
    3. Делаем два рисунка: один - состояние кнопки "ВКЛ", другой - состояние кнопки "ВЫКЛ", добавляем их в проект;
    4. У компонента прогресс-бара выбираем sta=Image, на bpic - указываем первый рисунок, на ppic - второй рисунок, val - ставим в 0;
    5. Добавляем на страницу таймер, интервал у него ставим минимальный - 50 (вот что им мешало минимальный интервал сделать поменьше, а? Тогда анимация была бы плавнее);
    6. Добавляем на страницу Variable, делаем ей sta=Number, значение - 0;
    7. Для прогресс-бара в Touch Release Event пишем следующий код:

    Код (C++):
    if(tm0.en==0)
    {
      if(va0.val==1)
      {
        va0.val=0
      }else
      {
        va0.val=1
      }
      tm0.en=1
    }
     
    8. Для таймера, в Timer Event - пишем следующий код:
    Код (C++):
    if(va0.val==1)
    {
      j0.val=j0.val+20
    }else
    {
      j0.val=j0.val-20
    }
    if(j0.val==0)
    {
      tm0.en=0
      get "ON"
    }
    if(j0.val==100)
    {
      tm0.en=0
      get "OFF"
    }
     
    В итоге - получаем то, что надо. В архиве - проект под Nextion и заснятая анимашка. По окончанию перехода от состояния к состоянию в порт пишется либо "ON", либо "OFF". По итогу: для эмуляции такой вот анимированной кнопки требуется три компонента: прогресс-бар, таймер, и переменная. Интервал шага приращения - выбран 20, можно сменить на любой, главное, чтобы до 100 нормально целочисленно билось. Пробовал 10 - медленно. На самом Nextion не проверял - только в эмуляторе. Но, кмк, решение годное для анимированной кнопки.

    Надеюсь, кому-нибудь будет полезно.
     

    Вложения:

    • Video.zip
      Размер файла:
      880,3 КБ
      Просмотров:
      440
    Mitrandir и ИгорьК нравится это.
  2. ldj76

    ldj76 Нуб

    Здравствуйте! Необходима помощь. Необходимо при замыкании цифровых контактов Ардуино, просто менять одну картинку Некстион на другую; а при размыкании контактов, менять обратно. Вопрос как бы не сложный, но сам допетрить никак не могу и в сети не находится данная информация.
    Буду благодарен любой полезной информации.
     
  3. Mitrandir

    Mitrandir Гуру

    посылаете ему по юарт
    pic x,y,id

    Х Y координаты куда картину вешать
    id номер картины

    Разумеется команду завершать как обычно.
     
  4. DIYMan

    DIYMan Guest

    Ждём вопроса "а как это - обычно?" :D:D:D
     
    Belkin и Mitrandir нравится это.
  5. ИгорьК

    ИгорьК Гуру

    Потому что эта тема не для изучения работы с Некстион, а для повторения одних и тех же вопросов.
    Нафига читать все что в начале написано...
     
    Mitrandir, Belkin и DIYMan нравится это.
  6. DIYMan

    DIYMan Guest

    И правда что ли :)
     
  7. ldj76

    ldj76 Нуб

    Большое спасибо! только еще не успел попробовать.
     
  8. ldj76

    ldj76 Нуб

    Простите уважаемый, считаю Ваш стеб не уместным. Я то как раз таки читал не только первую страницу и не только данного топика.
    PS. Что же люди то такие злые пошли???
     
  9. DIYMan

    DIYMan Guest

    Злость тут не при чём. Просто в теме - реально есть практически всё. К тому же спросили вы - элементарную вещь, поэтому у Игоря зародились смутные сомнения, читали ли вы тему. А я - смайлики поставил, да и отвечал, строго говоря, не вам - это просто шутка, не принимайте близко к сердцу.
     
  10. ldj76

    ldj76 Нуб

    Вы тоже поймите правильно: если кто то начал изучать этот вопрос, то не просто ради того что бы спросить; кому то это элементарная вещь, а для меня например другая и если кто то начнет меня спрашивать про ту другую, то это же не значит, что я должен устраивать стеб. Все 19 страниц я не стал читать, но во всяком случае первую читал и пару просмотрел и не углядел того, что мне любезно ответил Mitrandir.
     
  11. ldj76

    ldj76 Нуб

    все заработало. Мерси боку!
     
  12. ИгорьК

    ИгорьК Гуру

    Просто есть люди, которые читают документацию.
    Среди них есть Ненормальные, которые рассказывают об этом в темах.
    Но больше всего тех, кто просят рассказать уже рассказанное персонально для них.
    В этой теме всего 19 страниц. Полагаю потому, что Некстион вещь дорогая и у Лени Голубкова популярностью не пользуется.
    А вот тема про NRF.... Вот это шедевр.
     
    DIYMan нравится это.
  13. Mitrandir

    Mitrandir Гуру

    Игорь, как по вашим наблюдениям, имеет смысл поднимать скорость до 115200?
    гружу команды рисования картинки 60 на 60,
    пытаюсь слать 12 кадров в секунду, проц дисплея не успевает рисовать и экран даже на 9600 захлебывается.
     
  14. ИгорьК

    ИгорьК Гуру

    Не знаю. У меня 2 устройства на нем, оба статические более менее.
     
  15. Mitrandir

    Mitrandir Гуру

    Хотел анимашку сделать, но заметил что анимация продолжается хотя есп уже ничего не шлет. Т.е. экран набрал команд в буффер и выполняет потихоньку
     
  16. ИгорьК

    ИгорьК Гуру

    Дисплей медленный, экран отвратительный... и никакой альтернативы :)
     
  17. Stimul

    Stimul Нуб

    Добрый день,
    подскажите, а возможно ли в Nextion создавать двумерные массивы? перешерстил весь хелп, нашел что массивы вроде есть, но только, как я понял статичные, с обращением к компонентам или страницам, как их записать в переменную и /или использовать в них переменную не понял. Ниже вырезка с хелпа с гуглопереводом :

    ссылка на хелп - https://nextion.itead.cc/resources/documents/instruction-set/


    Мне нужны загонять в двумерный массив данные с разных страниц, далее передать их в Ардуинку. Может быть кто подскажет где почитать ?
     
  18. Belkin

    Belkin Гик

    Не возлагайте большие надежды на "недомозг" Nextion'a... ;)
    Передавайте данные с каждой страницы самостоятельно и уже в Ардуине складывайте хоть стопкой, хоть пирамидкой... ;)
     
    DetSimen нравится это.
  19. Stimul

    Stimul Нуб

    Эх 53 переменные пришлось на первую страницу цеплять. Жуть...
     
  20. Belkin

    Belkin Гик

    Жуть в том, что вы, по всей видимости, не удосужились пролистать эту тему сначала... ;)
    Глядишь, не пришлось бы выполнять этот "сизифов труд"...