Фоторамка с нейросетью

Alex_48

✩✩✩✩✩✩✩
4 Дек 2023
23
9
И, кстати, тем, кто решится исправить мой корпус, прошу уменьшить размер окна на 0.5 -- 1.0мм в "Эскиз4" и увеличить толщину обрамления рамки в "выдавливание1"
..
а то у меня "лицензия" слетела 😱
 

rastaman29

★✩✩✩✩✩✩
15 Ноя 2019
64
20
Вот что пишет китаец, эти команды можно как то добавить? Инверсия я понял что включена, без нее мрак полный)
 

Вложения

Alex_48

✩✩✩✩✩✩✩
4 Дек 2023
23
9
@rastaman29,
Мне практически то же самое отвечала когда я запустить не мог. потом разобрался с библиотекой TFT_eSPI и все заработало.
Настройки ориентации изображения и инверсии цвета в конце файла tft.h проекта:
...
tft.setRotation(2); //* // разворот изображения на 180 (0,1,2,3,4)
tft.invertDisplay(true); //*** инверсия цвета (для ili9488 3.5")
...
Разворот изображения нужен для дисплея TN на ST7796S, у него матрица расположена шлейфом к разъему. Угол обзора со стороны шлейфа больше. На IPS-матрицах угол обзора со всех сторон одинаковый, как на мобильниках
1734589559860.png
 
Изменено:

Alex_48

✩✩✩✩✩✩✩
4 Дек 2023
23
9

Вложения

Изменено:
  • Лойс +1
Реакции: Syrion

rastaman29

★✩✩✩✩✩✩
15 Ноя 2019
64
20
У меня ещё вот такая проблема. Китаец мне +100500 раз написал это проблема с кодом. Может кто сталкивался?
 

Вложения

Alex_48

✩✩✩✩✩✩✩
4 Дек 2023
23
9
@rastaman29,

У меня что-то подобное повилось после того, как я попытался след от перманентного маркера спиртом оттереть. Похоже, он попал между самой матрицей и рассеивателем подсветки
Только пятно маленькое получилось и в самом низу экрана -- не так сильно заметно. Но за два месяца так и не исчезло :( :
1734669337807.png
 
Изменено:

rastaman29

★✩✩✩✩✩✩
15 Ноя 2019
64
20
Подключил подсветку без всего, такая же ерунда. Брак короче.
 

rastaman29

★✩✩✩✩✩✩
15 Ноя 2019
64
20
Под пивко запилюлил часики. Но вот проблема, при изменении времени, пиксели накладываются друг на друга, на третьем фото видно как минуты скрестились).
 

Вложения

Syrion

✩✩✩✩✩✩✩
13 Дек 2024
7
1
@rastaman29, тебе нужно затирать предыдущие символы, прежде чем рисовать новые. У тебя "отрисовываются" только новые необходимые пиксели, старые "не трогаются" и сохраняют свою информацию в памяти дисплея. Таким образом символы будут постоянно перекрывать друг друга, и это будет накапливаться, пока все возможные цифры на всех возможных местах не побывают)
Как это делать с учетом картинки-фона - хз. Думаю, что околоневозможно - разве только записывать в память кусок текущей картинки под временем, и перерисовывать его. Оно того не стоит, в общем
У меня пока на черном фоне отображается текст времени для теста, соответственное каждое обновление времени зарисовывается черный прямоугольник через tft.fillRect(0, height - 20, width, 20, TFT_BLACK), а поверх него уже печатается время.
 

Вложения

Изменено:

Syrion

✩✩✩✩✩✩✩
13 Дек 2024
7
1
@KNLL, а подскажите, как вы затираете предыдущий слой?
Время получать и показывать не сложно, но вот поверх картинки - та еще задачка. Пока пришло в голову либо кэшировать всю/часть картинки размером с фрейм часов, и перерисовывать ее перед обновлением времени, что пока выглядит геморно (пробую сейчас подойти с разных концов к задаче, например через readRect()); либо двойная буферизация (считай спрайты), но боюсь даже в ESP32 не хватит памяти под такое дело.
Вижу, вы вопрос как-то решили. Буду благодарен, если поделитесь секретом)
 
  • Лойс +1
Реакции: Alex_48

iamstven

✩✩✩✩✩✩✩
9 Апр 2021
11
1
У меня экран st7789 320х240, могу ли я его модифицировать, чтобы проект работал?
 

kukrpavt

✩✩✩✩✩✩✩
25 Дек 2023
19
6
@iamstven, Увы, экран модифицировать вы не можете. Можете модифицировать программный код проекта под ваш экран, чтоб микроконтролёр понимал с каким экраном он работает.
 
  • Лойс +1
Реакции: iamstven

iamstven

✩✩✩✩✩✩✩
9 Апр 2021
11
1
@iamstven, Увы, экран модифицировать вы не можете. Можете модифицировать программный код проекта под ваш экран, чтоб микроконтролёр понимал с каким экраном он работает.
извините, я имею в виду, можно ли его легко изменить под мой экран? Потому что мои возможности ограничены. и какие файлы нужно редактировать? Можете ли вы вести меня?
 

rastaman29

★✩✩✩✩✩✩
15 Ноя 2019
64
20
@Syrion,я вижу это так, сохранение сгенерированной картинки, при изменении времени просто моргнуть картинкой.
 

Syrion

✩✩✩✩✩✩✩
13 Дек 2024
7
1
@rastaman29, здесь сразу же есть ряд проблем.
  • если мы обновляем картинку, она затирает время;
  • мы не знаем, когда картинка пришла с бэка и отрисовалась, чтобы следом перерисовать время. Либо нужно подвязаться и прокинуть асинхронное событие через кучу кода, чтобы точно вызвать принудительную перерисовку времени сразу после отрисовки картинки;
  • чтобы сохранить картинку, нужна флешка, разъем которой для проекта мы выпаиваем. Надо корректировать заднюю стенку модельки + еще код работы с флешкой и т.д. Либо хранить ее так же, набором бит, но опять вопрос по памяти; Выгоднее хранить и перерисовывать нужный кусок.
  • если мы просто часто обновляем время, например каждую секунду, это создает заметное мерцание при перерисовке. Выглядит некрасиво. А "моргнуть всей картинкой" особо часто не получится, она перерисовывается довольно заметно, даже на ESP32, и не очень красиво.

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

С хранением куска картинки или двойной буферизацией решил пока не заморачиваться.

По остальному у меня пока такой прогресс: картинка сейчас генерируется с учетом времени суток, сезона и вот докручиваю погодные условия.
Делаю в подарок, с изображением льва (наш локальный мем с человеком).
Соответственно на улице утро, июнь, дождь - лев на картинке на фоне утреннего летнего пейзажа, под дождем.
На улице снежная ночь с метелью в январе - лев стоит в снегу, падают снежинки, сугробы, на небе луна и звезды, все дела.
То есть промт собирается из кусков в зависимости от разных параметров. Но пришлось много повозиться с экспериментами и форматом.

Часы периодически синхронизируются с pool.ntp.org и time.nist.gov

По погоде - тоже взят open meteo api, изначально хотел использовать Weather.h из проекта с погодным теримопринтером от кассового аппарата, но там избыточный функционал, поэтому пока сделал свою небольшую реализацию, ибо мне нужна только погода прямо сейчас, а не на весь день.

В планах так же выводить текущую погоду рядом с часами. С иконками осадков и прочим.

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

Иногда кандинского переклинивает и он начинает генерить людей вместо льва, очень долго выстраивал положительный и негативный промты. Так же он не всегда учитывает разные куски промта, может внезапно вместо зимы выдать траву рядом со снегом, но потихоньку продвигаюсь с экспериментами - уже все реже нарываюсь на это все.

И я так и не смог разобраться, как заставить работать сенсор на TFT 4(3.95) ILI9488, чтобы принудительно перегенеривать картинку по касанию экрана в любом месте. Там какие-то приколы со SPI.
 

rastaman29

★✩✩✩✩✩✩
15 Ноя 2019
64
20
@Syrion, я конечно теоретик, не кодер, но почему не брать за основу конец отрисовки, делать скрин, его запоминать допустим в spifs и обновлять перед обновлением времени
 

Павел Алексеевич

✩✩✩✩✩✩✩
13 Ноя 2024
2
0
Добрый день! Кто нибудь сталкивался с таким? Сначала все запустилось хорошо. Идеально черный экран, зеленая надпись, картинки нормальные. Потом что то случилось и от предыдущей картинки остаются пиксели, если перезагружаешь, то загрузочная надпись на фоне пикселов от старой картинки, даже если выключил питание. если жать кнопку ресет несколько раз, то количество их уменьшается, но не исчезают.
Перепрошивал. Схема с сайта, прошивка из воздуха.
Спасибо, если кто поможет.
 

Вложения

Павел Алексеевич

✩✩✩✩✩✩✩
13 Ноя 2024
2
0
самая крупная с наружи - это я так понимаю тачскрин. как экран от платы отсоединить? А как прошить ЕСП с нуля. Помню для флеш довнлоада был какой то файл... и инструкция. может что то в памяти осталось?
Удаление картридера не могло повлиять?
 

kukrpavt

✩✩✩✩✩✩✩
25 Дек 2023
19
6
@Павел Алексеевич, Не, не тачскрин... Я про драйвер экрана. 1) ну как отсоединять....? Аккуратно, лезвием. Обычно он на довольно твёрдом "скотче" приклеен. 2) что значит прошить "с нуля"? При любой прошивке ЕСП прошивается "с нуля"... 3) в памяти ничего не может остаться. Если прошивка сделана правильно (а она так и сделана, т.к. ни у кого больше подобного не замечено), то ей по барабану, что там в памяти осталось от прежней прошивки... 4) удаление картридера конечно могло повлиять, если вы соблаговолили сильно "накривить" при пайке... Проверьте, нет ли где сопли из припоя или наоборот, разрыва дорожки (глубокой царапины). А мог произойти перегрев, и тепло передалось на шлейф или драйвер экрана с последствиями....