logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Pytanie o uniwersalną bibliotekę do wyświetlaczy LCD

kk.krz 28 Mar 2018 12:33 1353 24
REKLAMA
  • #1 17133133
    kk.krz
    Poziom 4  
    Posty: 186
    Ocena: 2
    Witam,

    mam taki wyświetlacz:

    https://www.waveshare.com/2.2inch-320x240-touch-lcd-a.htm

    Czy istnieją uniwersalne biblioteki wspierające obsługę tego (lub innego rodzaju) wyświetlaczy?
    Chodzi mi o sprawne rysowanie prymitywnych struktur geometrycznych (koła, elipsy, wypełnione figury) , wypełnianie obrazami? Ogólnie jakieś naprowadzenie na takie biblioteki byłyby mile widziane.
    To działa po SPI, więc wg moich pobieżnych obserwacji demon prędkości to nie jest, ale do
    prototypowania jak znalazł, bo przewodów nie trzeba wiele :).

    Niskopoziomowo to mam w miare opanowane, inicjalizacja, stawianie punktów w różnych kolorach etc...są do tego gotowce, coś tam skleciłem. Ale pisanie od zera czegoś, co ewentualnie może funkcjonuje w sieci wydaje się stratą czasu...
  • REKLAMA
  • #2 17133202
    NoweMillennium
    Poziom 17  
    Posty: 192
    Pomógł: 23
    Ocena: 10
    Istnieją ale sprzedawcy najczęściej nie wiedzą co sprzedają. To, ze piszą iz jest sterownik xxxx nie znaczy, ze taki będzie. Jesteś skazany na dochodzenie typu wyświetlacza metoda prób i błędów. Mnie się udało juz za piątym razem.
  • #3 17133213
    Samuraj
    Poziom 35  
    Posty: 2792
    Pomógł: 286
    Ocena: 616
    Podejdź do tematu z drugiej strony. Każda figura to zestaw punktów, czy to koło, elipsa, kwadrat. Podobnie jest z tekstem. Jeśli potrafisz zaincjować wyświetlacz i narysować jedne punkt to podpatrz funkcje dla innych wyświetlaczy. One niczym się nie różnią, zazwyczaj i tak sprowadzają się do narysowania odpowiedniej ilości punktów.
  • #4 17133244
    kk.krz
    Poziom 4  
    Posty: 186
    Ocena: 2
    Oj, chyba się nie zrozumieliśmy. Ja niskopoziomowo to obczaiłem i punkty wyświetlać umiem, linie sobie napisałem, okręgi też, troszke trudniej z wypełnionymi figurami, ale też do ogarnięcia.

    Pytanie moje dotyczy tego, czy aby nie jest tak, że to co teraz sobie skrzętnie piszę (i nie ukrywam, że sklecam z różnych wygooglanych przykładów) jest gdzieś już napisane w formie ładnej, rozbudowanej biblioteki, którą mogę sobie po prostu wrzucić w projekt i korzystać z czego tam chcę.
  • #5 17133254
    Samuraj
    Poziom 35  
    Posty: 2792
    Pomógł: 286
    Ocena: 616
    Nie znasz powiedzenia że jak coś jest do wszystkiego to jest do niczego :)
    Ja mam swoje funkcje, kiedyś tam napisane, podpatrzone i zmieniam tylko inicjacje oraz rysowanie punktu. Nigdy do projektu nie wklejam całej biblioteki tylko wybrane funkcje z których będę korzystał. Np. nie wklejam do projektu funkcji rysowania okręgów gdy będę korzystał tylko z trybu tekstowego .
  • REKLAMA
  • #7 17134242
    tmf
    VIP Zasłużony dla elektroda
    Posty: 14318
    Pomógł: 2090
    Ocena: 2203
    kk.krz napisał:
    To działa po SPI, więc wg moich pobieżnych obserwacji demon prędkości to nie jest

    Wbrew pozorom SPI wcale nie musi być takie wolne. Zwykle kontrolery LCD pozwalają na transfer rzędu 1-2MB/s, a to już dla QVGA wystarczy, aby sensownie wyświetlać GUI.
    Same funkcje kreślące prymitywy graficzne są dosyć uniwersalne i w miarę niezależne od użytego kontrolera. Aczkolwiek, jeśli kontroler ma jakieś dodatkowe bajery, to czasami można je mocno zoptymalizować. Zerknij do darmowych przykładów do mojej książki o LCD - masz tam wiele przykładów funkcji kreślących prymitywy graficzne z całkiem niezłą wydajnością.
  • #8 17135147
    kk.krz
    Poziom 4  
    Posty: 186
    Ocena: 2
    Bardziej chodzi mi teraz o tekst. Potrzebuję większej czcionki. Mam takie wyświetlanie znaków (nie moje):

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    A tablica jest taka:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    i próbuje rozkminić jak na podstawie tablicy 8x16 zrobić czcionki większe rozmiarowo. Chodzi o to, by interpolować piksele i zrobić np. 16x32 z wykorzystaniem tej tablicy, która jest.
  • #9 17135661
    tmf
    VIP Zasłużony dla elektroda
    Posty: 14318
    Pomógł: 2090
    Ocena: 2203
    kk.krz napisał:
    i próbuje rozkminić jak na podstawie tablicy 8x16 zrobić czcionki większe rozmiarowo. Chodzi o to, by interpolować piksele i zrobić np. 16x32 z wykorzystaniem tej tablicy, która jest.

    Z 8x16 zrobić 16x32 to prosto - wystarczy każdy p;iksel wyświetlać dwukrotnie w poziomie i dwukrotnie w pionie. Tyle, że wygląda to paskudnie i lepiej umieścić dodatkowy plik z czcionką 16x32.
  • REKLAMA
  • #10 17135821
    kk.krz
    Poziom 4  
    Posty: 186
    Ocena: 2
    Takoż uczyniłem, ale się nie chwalę, bo ... wygląda to paskudnie :). Pogrzebałem trochę w necie i w sumie nie znalazłem Linuksowego narzędzia, które przerobi mi czcionki na tablice w C. Znalazłem jakieś Ghoscriptowe narzędzia, jednak niestety nie działają. Zna ktoś jakieś Linuksowe rozwiązanie?
  • #11 17135847
    tmf
    VIP Zasłużony dla elektroda
    Posty: 14318
    Pomógł: 2090
    Ocena: 2203
    Używam lcd image converter:
    https://github.com/riuson/lcd-image-converter
    Bardzo fajne, bo można sobie stworzyć szablon eksportu pliku i program generuje plik wg tego co potrzebujesz. W dodatku ma ogromen możliwości przeksztaceń bitowych plików na różne formaty zapisu.
  • REKLAMA
  • #12 17135878
    Samuraj
    Poziom 35  
    Posty: 2792
    Pomógł: 286
    Ocena: 616
    Do czcionek znalazłem ostatnio narzędzie o nazwie TheDotFactory.
    Na plus jest to iż tworzy tablice czcionek o rożnej szerokości znaków, wymaga to co prawda trochę zmiany funkcji generującej znak ale efekt końcowy zadowala.

    Np:

    Pytanie o uniwersalną bibliotekę do wyświetlaczy LCD

    lcd image converter - bardzo ciekawy program, szczególnie do grafiki. Od razu można ustawić sobie zapis np RGB565.
  • #14 17137461
    kk.krz
    Poziom 4  
    Posty: 186
    Ocena: 2
    FCh...ja z Pytona to wiem tyle, że istnieje :) ale dzięki.

    tmf - skompilowałem lcd image converter - wygląda bardzo obiecująco. Biorę się za niego. Ale
    bez przygotowania szablonu generowanego pliku się nie obejdzie, bo to, co generuje mi program
    nie nadaje się wprost do zaincludowania projektu uC...
  • #15 17137529
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    kk.krz napisał:
    FCh...ja z Pytona to wiem tyle, że istnieje :) ale dzięki.

    Warto się nauczyć - zrobiony dla celów projektu którym się aktualnie zajmuję konwerter grafiki na tablice w C, dokładnie takie jak są potrzebne, zajmuje 96 linii kodu Pythona. Na bazie skryptu dla obrazków mamy też skrypt dla czcionek (bazuje zasadniczo na plikach BDF, czyli czcionkach-bitmapach, ale nic nie stoi na przeszkodzie aby go rozbudować i użyć TTF czy czegokolwiek innego), który ma aż 87 linii kodu Pythona. Jak się nauczysz go trochę (a jest to prosty język), to nagle okazuje się, że te 10000 narzędzi które zwykle są "niezbędne" okazują się łatwe do zastąpienia bardzo prostymi skryptami w Pythonie. Żeby nie było - osobiście zacząłem się interesować Pythonem rok temu, wiec to nie jest język na opanowanie którego (w podstawowym stopniu) trzeba poświęcić 10 lat.

    Tak BTW to opcja eksportu do tablic w C jest też w GIMPie.
  • #17 17137680
    Konto nie istnieje
    Konto nie istnieje  
  • #18 17137711
    tmf
    VIP Zasłużony dla elektroda
    Posty: 14318
    Pomógł: 2090
    Ocena: 2203
    Pong.Chu napisał:
    Mam podłączony wyświetlacz na ILI9341 po SPI i bez problemu daje się wyciągnąć (jak pamiętam) 18 kl./s. Zegar SPI ma 50 MHz. Ale myślę że jeszcze można go przyspieszyć.

    Może kolega zanim coś napisze zajrzy do noty układu, w której jest napisane:
    Tabela 19.3.3:
    Serial Clock Cycle (Write) - 100 ns.
    Czyli maksymalne taktowanie magistrali SPI to 10 MHz dla zapisu (dla odczytu ok. 7,5 MHz).
  • #19 17137759
    Konto nie istnieje
    Konto nie istnieje  
  • #20 17137921
    tmf
    VIP Zasłużony dla elektroda
    Posty: 14318
    Pomógł: 2090
    Ocena: 2203
    Pong.Chu napisał:
    uszę się przyznać, zrobiłem błąd - SPI jest taktowane z częstością 25 MHz. Dowód jest pod linkiem na dole mojego postu.


    Ale co to ma udowodnić? Że wiesz lepiej niż producent układu jakie są jego maksymalne możliwości? W nocie jest jasno napisane, że okres zegara SPI musi wynosić >100ns. O czym tu jeszcze dyskutować?
  • #21 17137947
    Konto nie istnieje
    Konto nie istnieje  
  • #22 17137955
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    Pong.Chu napisał:
    Nie wiem lepiej jakie są maksymalne możliwości ponieważ nie mam wglądu w projekt tego układu. Ale mam wystarczająco dużo doświadczenia aby nie wierzyć w to, co jest napisane w nocie i prócz tego umiejętności aby sprawdzić jak szybko taki układ będzie chodził. A o czym dyskutować? Ano o tym że da się uzyskać w tych wyświetlaczach szybszą transmisję a co za tym idzie szybsze odświeżanie.

    https://en.wikipedia.org/wiki/Anecdotal_evidence

    To że działa na Twoim biurku, z Twoim egzemplarzem (lub kilkoma egzemplarzami), w danej temperaturze i wilgotności, przy danym prądzie i napięciu, przy konkretnych poziomach zakłóceń EMC w otoczeniu itd., to niewiele znaczy. Jeśli nie wierzysz, to jak potraktowałbyś kogoś, kto opowiadałby Ci, że sygnalizacja świetlna na skrzyżowaniu jest tylko dla takich którzy nie mają doświadczenia i wiedzy żeby sobie sami ocenić czy mogą przejechać, bo przecież dany rozmówca przejechał już parę razy na czerwonym świetle z pełną prędkością i nic się nie stało, a tym sposobem uzyskał szybszą transmisję swojej osoby do innego miejsca a co za tym idzie szybsze podróżowanie. Brzmi równie przekonująco? (;

    Dodano po 1 [minuty]:

    Pong.Chu napisał:
    To tak, jakbyś się kłócił ze mną o to, że w mojej miejscowości nie może być słonecznie i +20 stopni bo Ty uważasz że np. wczesną wiosną takie temperatury są niemożliwe.

    Bardziej jakbyś tym nam wmawiał, że wszędzie jest ciepło bo Ty się właśnie opalasz na tarasie.
  • #23 17137970
    tmf
    VIP Zasłużony dla elektroda
    Posty: 14318
    Pomógł: 2090
    Ocena: 2203
    Pong.Chu napisał:
    Nie wiem jaki masz w tym cel aby udowadniać mi, że to co działa nie ma prawa działać. Nie rozumiem dlaczego nie potrafisz przyjąć tego do wiadomości i po prostu zaakceptować że tak może być. Czy masz jakieś problemy z przyznaniem się do niewiedzy na publicznym forum? Czy uważasz że to wpływanie negatywnie na Twój autorytet?


    Kolego, to forum techniczne, a nie forum hokus-pokus. W technice stosuje się specyfikacje, wg których buduje się urządzenia. Gdyby kontroler mógł działać w całym gwarantowanym przez producenta przedziale z szybkością większą, to zapewne producent nie ograniczałby się, podając, że 10 MHz to max. Widać jakieś powody ma, aby parametry ograniczać. To, że ci to działa, to fajnie, ciesz się, że masz szczęście. Natomiast opieranie działania układu na szczęściu to nie jest poprawny sposób budowy czegokolwiek.
    Tu zrzut strony noty z parametrami:
    Pytanie o uniwersalną bibliotekę do wyświetlaczy LCD
    Pong.Chu napisał:
    Ale mam wystarczająco dużo doświadczenia aby nie wierzyć w to, co jest napisane w nocie i prócz tego umiejętności aby sprawdzić jak szybko taki układ będzie chodził.

    Gratuluję ego. To pochwal się jakie to specjalne umiejętności posiadasz umożliwiające ci sprawdzenie szybkości działania układu? Proponuje też rebranding - kupuj te układy i sprzedawaj jako lepsze z nowymi parametrami, określonymi dzięki twoim specjalnym umiejętnościom. Sporo kasy można na tym zarobić.
  • #24 17138045
    kk.krz
    Poziom 4  
    Posty: 186
    Ocena: 2
    To już mój 2. (jeśli nie trzeci) wątek, w którym się forumowicze kłócą. I to forumowicze elitarni.
    Fatum jakieś?

    Peace ! Przetaktowywać to sobie można sterownik światełek choinkowych. Do woli, choćby dla zdobycia doświadczeń i bez wdrażania w komercje, bo w zimie, na zewnątrz (u nas się mówi - na polu) może nie zadziałać i wróci z reklamacją :)

    Sterownika łopat helikoptera już raczej się nie przetaktowuje. I już. :)
  • #25 17138180
    Konto nie istnieje
    Konto nie istnieje  

Podsumowanie tematu

✨ Użytkownik pyta o uniwersalne biblioteki do obsługi wyświetlacza LCD 2.2" 320x240, który działa po SPI, z naciskiem na rysowanie prymitywnych figur geometrycznych i wypełnianie obrazami. Odpowiedzi sugerują, że wiele funkcji graficznych jest uniwersalnych i można je zaadaptować z innych bibliotek. Użytkownicy dzielą się doświadczeniami z tworzeniem własnych funkcji oraz narzędzi do konwersji obrazów i czcionek, takich jak lcd image converter i TheDotFactory. Dyskusja obejmuje również kwestie wydajności SPI oraz różnice w maksymalnych prędkościach transferu danych, co prowadzi do kontrowersji na temat specyfikacji technicznych.
Wygenerowane przez model językowy.
REKLAMA