Skocz do zawartości

Dostosowanie rozdzielczości wyświetlacza monochromatycznego 2k


Pomocna odpowiedź

Napisano (edytowany)

Mam panel TFT https://pl.aliexpress.com/item/1005006131650939.html?gatewayAdapt=glo2pol#nav-specification z którego za pomocą Pi4B chcę kiedyś zbudować naświetlarkę PCB. Problem w tym że nie umiem dostosować ustawień rozdzielczości tak aby były zachowane proporcje, nie wiem czy próbować pobrać dedykowane oprogramowanie dla Pi jako drukarki żywicznej czy jednak udałoby się to tak skonfigurować aby wszystko zadziałało. Obecnie mam taki zapis w pliku /boot/firmware/txt
 

hdmi_force_hotplug=1
#overscan_left=0
#overscan_right=0
#overscan_top=0
#overscan_bottom=0

hdmi_group=2
#disable_overscan=1
hdmi_mode=87
#hdmi_cvt=540 2560 60 2 0 0 0
hdmi_cvt=1620 2560  60 6 0 0 0
display_hdmi_rotate=1
dtoverlay=vc4-kms-v3d
#dtoverlay=vc4-fkms-v3d
max_framebuffer_width=1620
max_framebuffer_height=2560
config_hdmi_boost=4

W trybie który jest teraz obraz jest nazbyt rozciągnięty w pionie, z resztą, przy wielu różnych próbach nie udało mi się uzyskać poprawnego skalowania pionowego

Edytowano przez _LM_
3 minuty temu, ethanak napisał:

jaka jest rzeczywista wyświetlana rozdzielczość

to jest ciekawe bo w opisie jest podane:

Cytat

6 Inch 1620*2560 LCD 2K Display Mono Monochrome LCD Display MIPI 50PIN for 3D Printer LCD

A później

Cytat
Panel size:  6.08"
Resolution:  540 × 2560
Aspect ratio:  10:16 (width: height)
Maximum thickness:  1.3 mm
LCD family:  IPS hard screen
Polarizer:  transmissive
Transmission contrast:  1000: 1 (Typ.)
Viewing angle:  80/80/80/80
Display color:  monochrome mono
Backlight type:  no backlight
Signal type:  MIPI 50 pins
 
6 minut temu, ethanak napisał:

czego używasz do wyświetlania?

HDMI 0 o to chodzi? Wyświetlam standardowy pulpit systemu póki co.
Natomiast kiedy wejdę w interfejs graficzny mam 540x2560 bez innych opcji

1 minutę temu, ethanak napisał:

Czekaj, jaki pulpit, nie mów że jakieś gui masz włączone.

kurde, no a jak to mam testować 😄
 

mode "540x2560"
    geometry 540 2560 540 2560 16
    timings 0 0 0 0 0 0 0
    rgba 5/11,6/5,5/0,0/0
endmode

Frame buffer device information:
    Name        : vc4drmfb
    Address     : 0
    Size        : 2764800
    Type        : PACKED PIXELS
    Visual      : TRUECOLOR
    XPanStep    : 1
    YPanStep    : 1
    YWrapStep   : 0
    LineLength  : 1080
    Accelerator : No
pi@raspberrypi:~ $

 

Ja bym zaczął od sprawdzenia, czy to 1620 czy 540... a cyferek do mode teraz nie pamiętam 😞

Rozumiem że patrzysz na konsolę i zalogowany jesteś na konsoli, bo wszystkie vnc/ssh żyją swoim życiem.

(edytowany)

no niema znaczenia jak wpiszę(rozdzielczość), te wymiary nigdy nie są odwzorowane, vnc wyłączę, jeszcze spróbuję usunąć wpisy z config.txt 
Ogólnie cały ten pulpit (GUI) nie jest mi do niczego potrzebny chodzi o przesłanie wzoru PCB podświetlenie tego LED UV i ma to być pasowne. Teraz próbując wyświetlić kwadrat 10mm wychodzi prostokąt o bliżej nieokreślonych wymiarach

Edytowano przez _LM_

A jeszcze pytanko... masz ekran w pionie? Bo takiej kombinacji na framebufferze nie próbowałem.

Jakiego polecenia używasz do wyświetlenia obrazka i w jakiej rozdzielczości jest obrazek? Bo teoretycznie można pchać dane bezpośrednio do framebuffera ale to trochę skomplikowane.

(edytowany)

do wyświetlenia kwadratu używam prostego skryptu pythona
 

import tkinter as tk

# Wymiary kwadratu w pikselach (dla 10mm)
SQUARE_SIZE_PX = 169

def create_test_square():
    root = tk.Tk()
    root.attributes('-fullscreen', True) 
    root.config(bg='black') 
    root.title("Test skali wyświetlacza")

    # Pobierz aktualne wymiary ekranu
    screen_width = root.winfo_screenwidth()
    screen_height = root.winfo_screenheight()


    center_x = screen_width / 2
    center_y = screen_height / 2


    canvas = tk.Canvas(root, width=screen_width, height=screen_height, bg='black', highlightthickness=0)
    canvas.pack()


    x1 = center_x - SQUARE_SIZE_PX / 2
    y1 = center_y - SQUARE_SIZE_PX / 2
    x2 = center_x + SQUARE_SIZE_PX / 2
    y2 = center_y + SQUARE_SIZE_PX / 2

    # Narysuj czerwony kwadrat
    canvas.create_rectangle(x1, y1, x2, y2, fill='red', outline='white', width=2)

    # Dodaj tekst z informacje o rozmiarze
    canvas.create_text(center_x, center_y - SQUARE_SIZE_PX / 2 - 20, text=f"{SQUARE_SIZE_PX}x{SQUARE_SIZE_PX} px (approx 10x10 mm)", fill="white", font=("Arial", 16))


  
    root.bind("<Key>", lambda event: root.destroy())
  
    root.bind("<Button-1>", lambda event: root.destroy())
    # Zamknij po 15 sekundach
    root.after(15000, root.destroy)

    root.mainloop()

if __name__ == "__main__":
    create_test_square()

Tak to wygląda na rzeczywistym ekranie:
 

1760200880801.jpg

Edytowano przez _LM_

Ale robisz to w X a nie na konsoli. Ustaw ekran np. na 2560 1620 5, i nie wyświetlaj żadnych bzdur tylko zrób sobie png w tej rozdzielczości i wrzuć jakimś programem co nie korzysta z x. Od tego trzeba zacząć a dopiero potem sprawdzać co jest źle. Ewentualnie możesz się pobawić pchaniem bezpośrednio do db z pythona, piksel u Ciebie to dwa bajty.

A po co włączasz w ogóle? Zrób magię żeby bootował do czystej konsoli. Nie wiem jaki tam siedzi display manager ale jeśli to lightdm to:

sudo systemctl stop lightdm

Zresztą gdzieś to się w raspi-config ustawia.

A do wyświetlania to nie wiem co teraz jest modne, omxiv raczej nie ruszy ale może fim

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...