Графічний дисплей

Freddy
Повідомлень: 23
З нами з: П'ят лютого 10, 2023 5:00 pm

Графічний дисплей

Повідомлення Freddy »

Намагаюся розібратися як створювати зображення на графічному дисплеї , цікавить саме сам процес як створити картинку і записати її в программу щоб потім послати на дисплей. Гугл не дає потрібного мені результату , або не правильно задаю питання або щось не правильно розумію. Може хтось порадить матеріал на цю тему  ? 
 
Андрій_UR3ILF
Повідомлень: 32
З нами з: Суб жовтня 01, 2022 3:36 pm
Звідки: Царичанка
Позивний: UR3ILF
Has thanked: 2 times
Been thanked: 11 times
Контактна інформація:

Re: Графічний дисплей

Повідомлення Андрій_UR3ILF »

Більшість сучасних дисплеїв типа ILI9341, ILI9486 та подiбнi працюють так- спочатку вказуються координати поля по Х і У і далі в це поле виводиться по піксельно за допомогою горозонтальної розгортки. Тобто починаючи з лівого кута по горизонталі і при досягненні кордону по Х "каретка" переміщується на наступний рядок по У.
Найшвидше в мене працював вивiд написаний на ассемблері з оптимізацією на мінімум тактів процессора. Після відправки беру наступний піксель і не чекаю завершення відправки по spi як це зроблено в більшості бібліотек. Готовність spi перевiряю тiльки перед відправкою. Це відсотків на 40 збільшило швидкість виведення на дисплей.
Очищення або заливка одним колором spi дисплея 320х240 пікселів за 108мс.
Шрифт 42х24 пікселя час виведення 2.4мс на знак.
Це був гарний результат для АТмел328.

Картинка створюється у вигляді масиву і виводиться піксельно як зображення в телевiзорах виводилося. Це для дисплеїв без вiдеодрайверу.
 
 
 
iurii
Повідомлень: 61
З нами з: Суб жовтня 29, 2022 4:06 pm
Has thanked: 13 times
Been thanked: 21 time

Re: Графічний дисплей

Повідомлення iurii »

Особисто я коли розробляю графічне меню то роблю так:
1. В графічному редакторі створюю картинку потрібного розміру. Редактор може бути любим хоч і Paint.
2. Зберігаю в форматі BMP використовую або RGB565 або ж RGB888 формат кольорів
3. За допомого програми яку написав раніше з картинок генерую сішний файл в якому ця картинка представлена у вигляді масиву байтів.
(якщо чесно, то не зовсім масиву, а зазвичай я використовую (LUT) таблицю кольорів, але для початку можна просто все в масив записати)
4. Додаю цей файл до проекту і використовую в коді.
Для того щоб знати яку інформацію з bmp файлу потрібно записати в код раджу почитати https://en.wikipedia.org/wiki/BMP_file_format
 
oldPsyho
Повідомлень: 291
З нами з: П'ят жовтня 14, 2022 1:13 pm
Звідки: KO40ig
Позивний: nil
Has thanked: 46 times
Been thanked: 16 times

Re: Графічний дисплей

Повідомлення oldPsyho »

А можна й не городити лісапеда, візьміть  наприклад ту ж LVGL. Там все це є.
Freddy
Повідомлень: 23
З нами з: П'ят лютого 10, 2023 5:00 pm

Re: Графічний дисплей

Повідомлення Freddy »

iurii писав: Сер серпня 09, 2023 8:32 pm Особисто я коли розробляю графічне меню то роблю так:
1. В графічному редакторі створюю картинку потрібного розміру. Редактор може бути любим хоч і Paint.
2. Зберігаю в форматі BMP використовую або RGB565 або ж RGB888 формат кольорів
3. За допомого програми яку написав раніше з картинок генерую сішний файл в якому ця картинка представлена у вигляді масиву байтів.
(якщо чесно, то не зовсім масиву, а зазвичай я використовую (LUT) таблицю кольорів, але для початку можна просто все в масив записати)
4. Додаю цей файл до проекту і використовую в коді.
Для того щоб знати яку інформацію з bmp файлу потрібно записати в код раджу почитати https://en.wikipedia.org/wiki/BMP_file_format
 

 
Якраз це й цікавило як картинку перевести в масив.
UR5FFR
Повідомлень: 705
З нами з: Пон вересня 12, 2022 1:04 pm
Has thanked: 36 times
Been thanked: 218 times

Re: Графічний дисплей

Повідомлення UR5FFR »

oldPsyho писав: Сер серпня 09, 2023 9:34 pmА можна й не городити лісапеда, візьміть  наприклад ту ж LVGL. Там все це є.
 
LVGL дуже монстроідальна як на мій погляд. А якщо мова йде про 328му атмегу, то ще й прожерлива до ресурсів. Тільки шрифти там вже досить багато пам'яті споживають. А ще їй потрібний буфер у пам'яті для відмальовування. Це добре, коли оперативної пам'яті багато. А якщо її 2кб, з яких 1кб вже зайнято під стек?
Freddy писав: Вів серпня 15, 2023 3:13 am Якраз це й цікавило як картинку перевести в масив.
 
В мене теж самописна програма під Windows для транслювання файлу з малюнком у шматок коду з описом константи :) Но дещо з підвивертом - я використовую стиснення. Щось на кшталт RLE. На деяких зображеннях ступінь стиснення досягає 4-5 разів - це заощаджує пам'ять, що на системах типу атмегі 328 дуже критично. Звісно що при відмальовуванні необхідно виконувати декомпресію такої стисненої картинки, але це дуже невеликий шматок коду десь 10-15 строк, який працює досить швидко бо алгоритм стиснення дуже простий.
Код відмалювання працює однаково на атмегі 328 через драйвер PDQ_GFX та на ESP32 через TFT_eSPI. На ESP32 відмальовка прискорюється за допомогою DMA.

Якщо ви використовуєте бібліотеку Adafruit GXF, то там є утиліта для цього
Image2Code: This is a handy Java GUI utility to convert a BMP file into the array code necessary to display the image with the drawBitmap function.
Але ви не написала яку платформу ви використовуєте
 
Freddy
Повідомлень: 23
З нами з: П'ят лютого 10, 2023 5:00 pm

Re: Графічний дисплей

Повідомлення Freddy »

328 мега але розумію що вона це не потягне (точніше я таке не напишу аби вона тягла) тому скоріше за все стм32. Але хочу зрозуміти з якої сторони підходити до графічних дисплеїв 
oldPsyho
Повідомлень: 291
З нами з: П'ят жовтня 14, 2022 1:13 pm
Звідки: KO40ig
Позивний: nil
Has thanked: 46 times
Been thanked: 16 times

Re: Графічний дисплей

Повідомлення oldPsyho »

Перечитав тему...
Щось тз не сильно зрозуміле... Давайте для початку:

Які дісплеї у вас є?
Які девборди маєте (ардуїна, есп, стм, etc.)?
 
Freddy
Повідомлень: 23
З нами з: П'ят лютого 10, 2023 5:00 pm

Re: Графічний дисплей

Повідомлення Freddy »

oldPsyho писав: Суб серпня 19, 2023 9:48 pm Перечитав тему...
Щось тз не сильно зрозуміле... Давайте для початку:

Які дісплеї у вас є?
Які девборди маєте (ардуїна, есп, стм, etc.)?
 

 
є все ) нуклео , блю піл, нано і уно  на 328 . Дисплей є на ST7735
oldPsyho
Повідомлень: 291
З нами з: П'ят жовтня 14, 2022 1:13 pm
Звідки: KO40ig
Позивний: nil
Has thanked: 46 times
Been thanked: 16 times

Re: Графічний дисплей

Повідомлення oldPsyho »

Freddy писав: Вів серпня 22, 2023 4:51 pm
oldPsyho писав: Суб серпня 19, 2023 9:48 pm Перечитав тему...
Щось тз не сильно зрозуміле... Давайте для початку:

Які дісплеї у вас є?
Які девборди маєте (ардуїна, есп, стм, etc.)?
 


 
є все ) нуклео , блю піл, нано і уно  на 328 . Дисплей є на ST7735

 
То  в чому проблема? Не хочете використовувати наявні бібліотеки - беріть даташит на контроллер дисплея і вперед.
 
Відповісти