PicoVGA - displej VGA/TV na Raspberry Pico

Raspberry, Arduino, Mini-PC a další

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
Panda38
Příspěvky: 713
Registrován: 21 lis 2012, 01:00
Bydliště: Most, Praha, Lanžhot
Kontaktovat uživatele:

PicoVGA - displej VGA/TV na Raspberry Pico

#1 Příspěvek od Panda38 »

Raspberry Pico s procesorem RP2040 je výsledně docela výkonný počítač, levný a se snadným použitím. Vytvořil jsem pro něj knihovnu pro výstup na VGA displej a na televizor PAL/NTSC. Knihovna umožňuje snadné použití díky frame bufferům v různých formátech (text, grafika).

www stránka projektu: http://www.breatharian.eu/hw/picovga/index.html
video s ukázkami na YouTube: https://www.youtube.com/watch?v=wX1IPa3Q0LU
Přílohy
picovga.jpg
picovga1_m.jpg

Uživatelský avatar
Zmije
Příspěvky: 1513
Registrován: 30 čer 2005, 02:00
Bydliště: Pardubický kraj

#2 Příspěvek od Zmije »

Skoro se mi nechce věřit že, něco takového jde, hluboká poklona!

Trochu škoda, že vaše zdrojáky nejsou na http://www.github.com nebo http://www.gitlab.com dnešní programátorská mládež je zvyklá chodit tam.

Uživatelský avatar
Panda38
Příspěvky: 713
Registrován: 21 lis 2012, 01:00
Bydliště: Most, Praha, Lanžhot
Kontaktovat uživatele:

#3 Příspěvek od Panda38 »

O Githubu jsem už i uvažoval a díval se na to, ale stále ho jaksi neumím použít abych to tam dal. :-(

Uživatelský avatar
Zmije
Příspěvky: 1513
Registrován: 30 čer 2005, 02:00
Bydliště: Pardubický kraj

#4 Příspěvek od Zmije »

Základem je mít git, já s ním pracuji pod Linuxem, ale i na win10 mám klienta, ani nevím jak jsem k němu přišel. Možná se mi nainstaloval, když jsem zapínal WSL. Potom je potřeba udělat si účet na githubu, pro veřejné projekty je zdarma. Já jsem si kvůli tomu založil email na gmail.com

Pak už se jen porvat s gitem, je to sice moloch, ale já si vpodstatě vystačím s těmito příkazy

git clone https://github.com/Panda38/PicoVGA.git
git checkout master
git config --global user.name "Panda 38"
git config --global user.email "panda38@gmail.com"
git pull
git add src/
git commit -m "Initial commit"
git push

Občas se z větve odvážím i na git rebase -i master a následně git push -f, ale s tím opatrně.

Edit: Zapoměl jsem zmínit git status, je to přehled o aktuálním stavu, nedokončený merge, rebase, změněné soubory, přidané ale ne commit nuté soubory ...
Pro vytvoření větve
git branch jmeno-vetve
přepnutí na větev
git checkout jmeno-vetve
přepnutí zpět na master
git checkout master
merge větve (do aktuální větve)
git merge jmeno-vetve
smazání větve (nesmí se na ní stát)
git branch -D jmeno-vetve

Uživatelský avatar
Panda38
Příspěvky: 713
Registrován: 21 lis 2012, 01:00
Bydliště: Most, Praha, Lanžhot
Kontaktovat uživatele:

#5 Příspěvek od Panda38 »

PicoVGA na Githubu: https://github.com/Panda381/PicoVGA

Děkuji moc za pomoc!

Uživatelský avatar
Zerog
Příspěvky: 43
Registrován: 16 úno 2008, 01:00
Bydliště: Brno

#6 Příspěvek od Zerog »


Uživatelský avatar
Zmije
Příspěvky: 1513
Registrován: 30 čer 2005, 02:00
Bydliště: Pardubický kraj

#7 Příspěvek od Zmije »

Seriál na mcu.cz

Uživatelský avatar
Panda38
Příspěvky: 713
Registrován: 21 lis 2012, 01:00
Bydliště: Most, Praha, Lanžhot
Kontaktovat uživatele:

#8 Příspěvek od Panda38 »

Dostal jsem dotaz, jak v PicoVGA rozdělit HSYNC a VSYNC. Nejjednodušší je tento postup:
- Nastavit VSYNC pin na výstup.
- Jít do funkce VgaLine (v vga.cpp), před switch(linetype). Doplnit:
if (linetype==LINE_VSYNC), potom nastavit VSYNC pin na LOW, jinak na HIGH.

Uživatelský avatar
Zmije
Příspěvky: 1513
Registrován: 30 čer 2005, 02:00
Bydliště: Pardubický kraj

#9 Příspěvek od Zmije »

Šlo by to připravit pomocí podmíněného překladu?

Např. do x_config.h přidat

DEFINE += -DHSYNC_VSYNC_DIV

do kódu pak
#ifdef HSYNC_VSYNC_DIV
if (linetype==LINE_VSYNC) {
.....
}
#endif

Ten pin by se taky mohl někde definovat.

Uživatelský avatar
Panda38
Příspěvky: 713
Registrován: 21 lis 2012, 01:00
Bydliště: Most, Praha, Lanžhot
Kontaktovat uživatele:

#10 Příspěvek od Panda38 »

Do první verze knihovny jsem už nechtěl zasahovat, protože teď dělám na projektu retro mikropočítače s Pico (což byl původní účel knihovny), kde budou zahrnuta vylepšení vycházející z praxe, včetně podpory odděleného VSYNC. Tam bude pak nová verze PicoVGA, upravená pro tento konkrétní hardware.

Trochu je nepříjemné info, že nové televizory už nepodporují SCART vstup, už jen HDMI. S využitím pro televizory jsem počítal, na nich jede hezky prokládaný mód 640x480. Což je dost škoda že se o to přijde. Tak jedině buď starší televizor nebo novější s VGA-HDMI převodníkem. Realizovat HDMI u Pico nemá smysl - vyžaduje přetaktování sysclock na 250 MHz, jediné použitelné rozlišení je 640x480 a nedají se používat věci jako překryvné roviny, tedy silně nepraktické využití.

U VGA výstupu stále ještě váhám nad jednou možností - kdyby se jinak přeorganizovaly výstupní piny (shluknout k sobě barevné piny stejné váhy, tj. pořadí R0 G0 B0, R1 G1 B1,...), tak pak by bylo možné dělat výstup s volitelnou barevnou hloubkou. To znamená např. 4-bitová barva rychle přes DMA (bez nutnosti převodu přes palety), 8-bitové pixely, až po 16-bitové pixely. PIO vyžaduje spojitý úsek pinů a proto v současnosti nelze přepínat software mezi 8-bitovým a 16-bitovým výstupem. S touhle konfigurací pinů by to bylo možné přepínat. Ale - takové zařízení obsadí velké množství GPIO a stále mi vychází, že 16-bitový barevný mód se nedá moc využít kvůli málo interní RAM. Jediné praktické využití je přehrávání videa přes rychlý mód SD karty, jak to dělá originální VGA, ale jinak tu není 16-bitový mód smysluplný. Takže měnitelná barevná hloubka ztrácí význam. Šlo by to, je to zajímavá varianta, ale k ničemu, zbytečně by to obsadilo GPIO kterých je vždy málo.
Přílohy
Picoino.jpg

Uživatelský avatar
Panda38
Příspěvky: 713
Registrován: 21 lis 2012, 01:00
Bydliště: Most, Praha, Lanžhot
Kontaktovat uživatele:

#11 Příspěvek od Panda38 »

Vytvořil jsem pro Raspberry Pico novou zobrazovací knihovnu PicoQVGA - značně minimalizovanou, s grafickým módem 320x240/8. Má sloužit hlavně jako tutoriál k použití PIO a DMA na Raspberry Pico. Na stránce je podrobný popis kódu programu. ... Docela mě příjemně překvapilo, že videomód 320x240/8 je v praxi pro většinu aplikací postačující.

projekt: http://www.breatharian.eu/hw/picoqvga/index.html

Github: https://github.com/Panda381/PicoQVGA
Přílohy
picoqvga1.jpg

Uživatelský avatar
Panda38
Příspěvky: 713
Registrován: 21 lis 2012, 01:00
Bydliště: Most, Praha, Lanžhot
Kontaktovat uživatele:

#12 Příspěvek od Panda38 »

Pico16VGA - 16-barevný VGA displej na Raspberry Pico pro analogový VGA monitor a LCD panel s digitálním paralelním rozhraním (s generátorem hodin 25,2 MHz), rozlišení 640x480/16 barev.

projekt: http://www.breatharian.eu/hw/pico16vga/index.html
GitHub: https://github.com/Panda381/Pico16VGA
Přílohy
pico16vga_1m.jpg

Uživatelský avatar
RayeR
Příspěvky: 1167
Registrován: 02 srp 2009, 02:00
Bydliště: Praha
Kontaktovat uživatele:

#13 Příspěvek od RayeR »

Budem s kolegou obejdvavat par Pico z PiShopu za 109Kc, tak chcete-li se nekdo z Prahy pripojit k objednavce... (objednam asi zitra nebo pozitri vecer)

Uživatelský avatar
RayeR
Příspěvky: 1167
Registrován: 02 srp 2009, 02:00
Bydliště: Praha
Kontaktovat uživatele:

#14 Příspěvek od RayeR »

PicoVGA rozbehano, ted budu osazovat PicoDVI. Mam z JLCPCB navic 5ks desticek, kdyby nekdo chtel taky, tak se podelim.

Jinak na Pico uz beha i Doom :)
https://www.root.cz/zpravicky/doom-na-m ... y-pi-pico/

Uživatelský avatar
RayeR
Příspěvky: 1167
Registrován: 02 srp 2009, 02:00
Bydliště: Praha
Kontaktovat uživatele:

#15 Příspěvek od RayeR »

Přílohy
xmassnow.jpg

Odpovědět

Zpět na „Miniaturní počítače (Arduino, Raspberry a další)“