{"id":703,"date":"2021-02-26T10:55:33","date_gmt":"2021-02-26T10:55:33","guid":{"rendered":"https:\/\/picockpit.com\/raspberry-pi\/?p=703"},"modified":"2023-08-30T09:51:28","modified_gmt":"2023-08-30T09:51:28","slug":"raspberry-pi-pico-video-output","status":"publish","type":"post","link":"https:\/\/picockpit.com\/raspberry-pi\/pl\/wyjscie-wideo-raspberry-pi-pico\/","title":{"rendered":"Raspberry Pi Pico Wyj\u015bcie wideo"},"content":{"rendered":"<h2 class=\"wp-block-heading\">TL;DR<\/h2>\n\n\n\n<p>Raspberry Pi Pico to niesamowity ma\u0142y mikrokontroler. Chocia\u017c nie ma wbudowanego interfejsu wyj\u015bcia wideo, tak jak jego wi\u0119ksze rodze\u0144stwo Raspberry Pi Zero \/ 1 \/ 2 \/ 3 \/ 4 \/ 400 (HDMI \/ podw\u00f3jne HDMI w ich przypadku), <strong>mo\u017cliwe jest dodanie wyj\u015bcia wideo do Pico!<\/strong> (Jako VGA lub DVI przez z\u0142\u0105cze HDMI, czytaj dalej, aby uzyska\u0107 szczeg\u00f3\u0142owe informacje) <\/p>\n\n\n\n<p>W tym po\u015bcie wyja\u015bnimy, dlaczego wyj\u015bcie wideo jest bardzo specjaln\u0105 funkcj\u0105 dla mikrokontroler\u00f3w i jakie typy wyj\u015b\u0107 wideo mo\u017cna zbudowa\u0107 lub kupi\u0107 dla swojego Pico. Poka\u017cemy r\u00f3wnie\u017c przyk\u0142adowy kod - ju\u017c wst\u0119pnie skompilowany, wi\u0119c mo\u017cna go pobra\u0107 bezpo\u015brednio, a nast\u0119pnie porozmawiamy o tym, co nale\u017cy zmodyfikowa\u0107, aby go uruchomi\u0107. <\/p>\n\n\n\n<p>Nasz siostrzany sklep, <a href=\"https:\/\/buyzero.de\">buyzero.de<\/a>sprzedaje r\u00f3\u017cnorodne akcesoria Pico - w tym <a href=\"https:\/\/buyzero.de\/products\/raspberry-pi-pico-dvi-sock-videoausgabe-fur-den-pico\">DVI Sock<\/a>i <a href=\"https:\/\/buyzero.de\/products\/raspberry-pi-pico-vga-audio-sd-expansion-board?variant=39412666335412\">P\u0142ytka no\u015bna VGA dla Pico<\/a>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/buyzero.de\/products\/raspberry-pi-pico-dvi-sock-videoausgabe-fur-den-pico?variant=39321578832052\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/03\/Raspberry-Pi-Pico-Video-Output-DVI-Sock-withPicoComfort-1024x683.jpg\" alt=\"\" class=\"wp-image-768\" style=\"width:438px;height:292px\" width=\"438\" height=\"292\" srcset=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/03\/Raspberry-Pi-Pico-Video-Output-DVI-Sock-withPicoComfort-1024x683.jpg 1024w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/03\/Raspberry-Pi-Pico-Video-Output-DVI-Sock-withPicoComfort-300x200.jpg 300w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/03\/Raspberry-Pi-Pico-Video-Output-DVI-Sock-withPicoComfort-768x512.jpg 768w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/03\/Raspberry-Pi-Pico-Video-Output-DVI-Sock-withPicoComfort-1536x1024.jpg 1536w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/03\/Raspberry-Pi-Pico-Video-Output-DVI-Sock-withPicoComfort.jpg 1600w\" sizes=\"auto, (max-width: 438px) 100vw, 438px\" \/><\/a><figcaption class=\"wp-element-caption\"><a href=\"https:\/\/buyzero.de\/products\/raspberry-pi-pico-dvi-sock-videoausgabe-fur-den-pico?variant=39321578832052\">Skarpeta Pico DVI<\/a><\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/buyzero.de\/products\/raspberry-pi-pico-vga-audio-sd-expansion-board?variant=39412666335412\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/03\/raspberry-pi-pico-vga-audio-expansionboard-diagonal1-1024x640.jpeg\" alt=\"\" class=\"wp-image-770\" style=\"width:488px;height:305px\" width=\"488\" height=\"305\" srcset=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/03\/raspberry-pi-pico-vga-audio-expansionboard-diagonal1-1024x640.jpeg 1024w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/03\/raspberry-pi-pico-vga-audio-expansionboard-diagonal1-300x188.jpeg 300w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/03\/raspberry-pi-pico-vga-audio-expansionboard-diagonal1-768x480.jpeg 768w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/03\/raspberry-pi-pico-vga-audio-expansionboard-diagonal1.jpeg 1280w\" sizes=\"auto, (max-width: 488px) 100vw, 488px\" \/><\/a><figcaption class=\"wp-element-caption\"><a href=\"https:\/\/buyzero.de\/products\/raspberry-pi-pico-vga-audio-sd-expansion-board?variant=39412666335412\">Karta rozszerze\u0144 Pico VGA i audio (obs\u0142uguje r\u00f3wnie\u017c microSD!)<\/a><\/figcaption><\/figure>\n<\/div>\n\n\n<p>Uwaga: Pico nie posiada systemu operacyjnego Linux, takiego jak <a href=\"https:\/\/buyzero.de\/collections\/boards-kits\/products\/raspberry-pi-zero-w?variant=6146390491163\">Raspberry Pi Zero W<\/a> na przyk\u0142ad. Wi\u0119c najprawdopodobniej b\u0119dziesz musia\u0142 nieco g\u0142\u0119biej zag\u0142\u0119bi\u0107 si\u0119 w nauk\u0119 kodowania i przesy\u0142ania aplikacji do Pico. Je\u015bli to nie twoja sprawa, <a href=\"https:\/\/buyzero.de\/collections\/boards-kits\/products\/raspberry-pi-zero-w?variant=6146390491163\">Pi Zero W<\/a> mo\u017ce by\u0107 lepszym wyborem do rozpocz\u0119cia zabawy \ud83d\ude42<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" hcb-fetch-image-from=\"https:\/\/youtu.be\/H4qketn6QzI\" title=\"Wyj\u015bcie wideo pico przy u\u017cyciu gniazda DVI\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/H4qketn6QzI?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><figcaption class=\"wp-element-caption\">Wyj\u015bcie wideo Pico za pomoc\u0105 gniazda DVI - mo\u017cliwe s\u0105 dzikie animacje. Czy rozpoznajesz twarz? Daj nam zna\u0107 w komentarzach<\/figcaption><\/figure>\n\n\n\n<p><strong>Je\u015bli uda\u0142o Ci si\u0119 zrealizowa\u0107 w\u0142asny projekt wideo z Raspberry Pi Pico, daj nam zna\u0107 w komentarzach!<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Dlaczego dodanie wyj\u015bcia wideo Raspberry Pi Pico jest wyzwaniem?<\/h2>\n\n\n\n<p> <a href=\"https:\/\/buyzero.de\/products\/raspberry-pi-400?variant=32091938881638\">Raspberry Pi 400<\/a>na przyk\u0142ad, jest oparty na BCM2711 SoC. Ten system-on-a-chip ma wyspecjalizowany sprz\u0119t, kt\u00f3ry dba o wyj\u015bcie wideo, doskonale przygotowuj\u0105c je w formacie okre\u015blonym dla konkretnego interfejsu (interfejs\u00f3w) wideo, dw\u00f3ch port\u00f3w HDMI w przypadku <a href=\"https:\/\/buyzero.de\/products\/raspberry-pi-400?variant=32091938881638\">Pi 400<\/a>. Posiada r\u00f3wnie\u017c ogromn\u0105 pami\u0119\u0107 (4 GB), w kt\u00f3rej mo\u017cna przechowywa\u0107 dane wyj\u015bciowe wideo.<\/p>\n\n\n\n<p>Aby lepiej to zrozumie\u0107, musimy przyjrze\u0107 si\u0119 niekt\u00f3rym podstawom komputerowego wyj\u015bcia wideo:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Wy\u015bwietlanie i transmisja wideo<\/h3>\n\n\n\n<p>Widzimy obraz na ekranie \"jednocze\u015bnie\". Nasz m\u00f3zg ma masowo r\u00f3wnoleg\u0142e okablowanie, w kt\u00f3rym pobiera informacje ze wszystkich dost\u0119pnych kom\u00f3rek siatk\u00f3wki jednocze\u015bnie (kom\u00f3rki sto\u017ckowe i pr\u0119cikowe).<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/02\/cat.jpg\" alt=\"\" class=\"wp-image-712\" style=\"width:584px;height:439px\" width=\"584\" height=\"439\" srcset=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/02\/cat.jpg 1000w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/02\/cat-300x226.jpg 300w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/02\/cat-768x578.jpg 768w\" sizes=\"auto, (max-width: 584px) 100vw, 584px\" \/><figcaption class=\"wp-element-caption\">kot z motylem, przyk\u0142ad tego, co chcemy pokaza\u0107 naszym u\u017cytkownikom. <br>Zdj\u0119cie autorstwa <a href=\"https:\/\/unsplash.com\/@_k_arinn?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Karina Vorozheeva<\/a> na stronie <a href=\"https:\/\/unsplash.com\/s\/photos\/cat?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Unsplash<\/a><\/figcaption><\/figure>\n<\/div>\n\n\n<p><em>(* mechanizm transmisji do m\u00f3zgu integruje informacje z kilku kom\u00f3rek siatk\u00f3wki, ale faktem jest, \u017ce wiele informacji jest przesy\u0142anych r\u00f3wnolegle. Zobacz<a href=\"https:\/\/en.wikipedia.org\/wiki\/Retina_bipolar_cell\"> kom\u00f3rki dwubiegunowe <\/a>je\u015bli chcesz dowiedzie\u0107 si\u0119 wi\u0119cej)<\/em><\/p>\n\n\n\n<p>M\u00f3zg ma jednak op\u00f3\u017anienia - nie jest w stanie rozstrzygn\u0105\u0107 <a href=\"https:\/\/www.pubnub.com\/blog\/how-fast-is-realtime-human-perception-and-technology\/\">zmiany bod\u017ac\u00f3w wzrokowych szybsze ni\u017c 13 ms<\/a>. (czyli oko\u0142o 1 na 75 klatek na sekund\u0119). <\/p>\n\n\n\n<p>Dla nas oznacza to, \u017ce je\u015bli chcemy wy\u015bwietli\u0107 naprawd\u0119 p\u0142ynn\u0105 animacj\u0119, musimy pokaza\u0107 oko\u0142o 60 r\u00f3\u017cnych statycznych obraz\u00f3w na sekund\u0119.  Nasz m\u00f3zg zinterpretuje te statyczne obrazy jako p\u0142ynne i realistyczne odtwarzanie. <\/p>\n\n\n\n<p>Zazwyczaj chcemy, aby te zdj\u0119cia by\u0142y kolorowe. <\/p>\n\n\n\n<p>Mamy trzy r\u00f3\u017cne fotoreceptory dla kolor\u00f3w, wi\u0119c ekran wy\u015bwietla tylko te trzy r\u00f3\u017cne kolory o r\u00f3\u017cnej jasno\u015bci. Ponownie, nasz m\u00f3zg zsyntetyzuje kolory pomi\u0119dzy nimi na podstawie otrzymanych informacji. (Na marginesie, <a href=\"https:\/\/en.wikipedia.org\/wiki\/Purple\">fioletowy <\/a>tak naprawd\u0119 nie istnieje jako w\u0142asna d\u0142ugo\u015b\u0107 fali - jest mieszank\u0105 czerwonego i niebieskiego).<\/p>\n\n\n\n<p>Istniej\u0105 trzy kolory podstawowe:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>czerwony<\/li>\n\n\n\n<li>zielony <\/li>\n\n\n\n<li>niebieski<\/li>\n<\/ul>\n\n\n\n<p>Razem znane s\u0105 jako <a href=\"https:\/\/en.wikipedia.org\/wiki\/RGB_color_model\">RGB<\/a>. Po dodaniu wszystkich trzech otrzymujemy kolor bia\u0142y. Dodanie czerwonego do zielonego daje \u017c\u00f3\u0142ty, dodanie zielonego do niebieskiego daje cyjan, dodanie niebieskiego do czerwonego daje magent\u0119.  <\/p>\n\n\n\n<p>Wi\u0119c to, co naprawd\u0119 chcemy uzyska\u0107, to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li> trzy r\u00f3\u017cne kolory, <\/li>\n\n\n\n<li>ka\u017cdy z inn\u0105 warto\u015bci\u0105 jasno\u015bci<\/li>\n\n\n\n<li>Idealnie oko\u0142o 60 r\u00f3\u017cnych warto\u015bci na sekund\u0119 (60 Hz)<\/li>\n\n\n\n<li>okre\u015blona rozdzielczo\u015b\u0107 ekranu - np. 640 x 480<\/li>\n<\/ul>\n\n\n\n<p>Obliczmy, ile danych przypada na sekund\u0119:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>3 kolory<\/li>\n\n\n\n<li>x 8-bitowa g\u0142\u0119bia kolor\u00f3w<\/li>\n\n\n\n<li>x 60 <\/li>\n\n\n\n<li>x 640 x 480<\/li>\n<\/ul>\n\n\n\n<p>= 442 368 000 bit\u00f3w na sekund\u0119 = ok. 422 MBit\/s<\/p>\n\n\n\n<p>(We\u017amy pod uwag\u0119, \u017ce na przyk\u0142ad interfejs USB v1.1 w Pico ma oko\u0142o 10 Mbit\/s - oko\u0142o 40 razy mniejsz\u0105 przepustowo\u015b\u0107!)<\/p>\n\n\n\n<p>Aby wyprowadzi\u0107 te informacje, idealnie by\u0142oby r\u00f3wnie\u017c przechowywa\u0107 je jako bitmap\u0119 w pami\u0119ci RAM - jedna cz\u0119\u015b\u0107 aplikacji zaktualizuje obraz w pami\u0119ci RAM, podczas gdy inna zajmie si\u0119 dostarczeniem danych w formacie, z kt\u00f3rym mo\u017ce pracowa\u0107 monitor. Musi to by\u0107 pami\u0119\u0107 RAM, poniewa\u017c dzia\u0142amy z du\u017cymi pr\u0119dko\u015bciami i musimy by\u0107 w stanie odczyta\u0107 to niezawodnie z ma\u0142ymi op\u00f3\u017anieniami - czego nie zapewni pami\u0119\u0107 Flash.  <\/p>\n\n\n\n<p>Obliczmy, ile pami\u0119ci RAM potrzebujemy:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>640 x 480 (rozdzielczo\u015b\u0107)<\/li>\n\n\n\n<li>x 3 (kolory)<\/li>\n\n\n\n<li>x 8 bit\u00f3w (g\u0142\u0119bia kolor\u00f3w)<\/li>\n<\/ul>\n\n\n\n<p>= 7372800 bit\u00f3w = 900 kBajt\u00f3w (uwaga: 1 bajt = 8 bit\u00f3w)<\/p>\n\n\n\n<p>Podczas gdy 900 kBajt\u00f3w zmie\u015bci si\u0119 wielokrotnie w pami\u0119ci RAM komputera <a href=\"https:\/\/buyzero.de\/products\/raspberry-pi-400?variant=32091938881638\">Raspberry Pi 400<\/a>, <strong>Pico ma tylko 264 KB pami\u0119ci RAM<\/strong>.<\/p>\n\n\n\n<p>Jak wida\u0107, b\u0119dziemy musieli zmniejszy\u0107 niekt\u00f3re parametry (np. rozdzielczo\u015b\u0107, g\u0142\u0119bi\u0119 kolor\u00f3w, ...), je\u015bli chcemy zmie\u015bci\u0107 bitmap\u0119 w pami\u0119ci RAM, lub musimy wymy\u015bli\u0107 kilka sprytnych pomys\u0142\u00f3w, jak sprawi\u0107, by dzia\u0142a\u0142a bez przechowywania wszystkiego! <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">RP2040 PIO firmy Pico umo\u017cliwia wyprowadzanie danych wideo<\/h3>\n\n\n\n<p>Wreszcie, podczas gdy Raspberry Pi 400 i inne modele Raspberry Pi maj\u0105 dedykowane obwody sprz\u0119towe do przetwarzania wszystkich tych informacji i przesy\u0142ania ich w niezawodny spos\u00f3b, Pico nie ma specjalnych obwod\u00f3w dedykowanych tylko do wyj\u015bcia wideo. <\/p>\n\n\n\n<p>Ale ma jedn\u0105 sztuczk\u0119 w r\u0119kawie! RP2040 obs\u0142uguje PIO (programowalne IO).  PIO jest dedykowany do emulacji r\u00f3\u017cnych interfejs\u00f3w z precyzyjnym taktowaniem i jest bardzo pot\u0119\u017cny! Mo\u017ce by\u0107 zaprogramowany do odczytu z pami\u0119ci RAM i wyj\u015bcia z du\u017c\u0105 pr\u0119dko\u015bci\u0105. <\/p>\n\n\n\n<p>B\u0119dziemy u\u017cywa\u0107 PIO do wysy\u0142ania sygna\u0142u wideo do niekt\u00f3rych pin\u00f3w GPIO i u\u017cyjemy dodatkowych obwod\u00f3w (rezystor\u00f3w), aby doprowadzi\u0107 sygna\u0142 do po\u017c\u0105danego stanu, w zale\u017cno\u015bci od interfejsu wyj\u015bcia wideo, do kt\u00f3rego chcemy pod\u0142\u0105czy\u0107 Pico.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Historia format\u00f3w wyj\u015bciowych wideo<\/h2>\n\n\n\n<p>Zanim przejdziemy do tego, jak doda\u0107 wyj\u015bcie wideo do Raspberry Pi Pico, przyjrzyjmy si\u0119 troch\u0119 historii format\u00f3w wyj\u015bciowych wideo.<\/p>\n\n\n\n<p>Jak ju\u017c wspomniano, ludzkie oko nie jest w stanie wykry\u0107 zmian w obrazach szybciej ni\u017c oko\u0142o 13 ms. Dlatego te\u017c jednym z pierwszych podej\u015b\u0107 do budowy monitor\u00f3w komputerowych by\u0142o <a href=\"https:\/\/en.wikipedia.org\/wiki\/Cathode-ray_tube\">CRT (kineskop)<\/a> monitor.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/02\/CRT_color.png\" alt=\"\" class=\"wp-image-706\" style=\"width:444px;height:333px\" width=\"444\" height=\"333\" srcset=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/02\/CRT_color.png 800w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/02\/CRT_color-300x225.png 300w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/02\/CRT_color-768x576.png 768w\" sizes=\"auto, (max-width: 444px) 100vw, 444px\" \/><figcaption class=\"wp-element-caption\">Monitor CRT wykorzystuje kilka wi\u0105zek promieni (2) do zapisywania obrazu na ekranie linia po linii (4), (5) pokazuje zbli\u017cenie kolorowych luminofor\u00f3w, kt\u00f3re s\u0105 indywidualnie dostosowywane przez r\u00f3\u017cne promienie. <a href=\"http:\/\/creativecommons.org\/licenses\/by-sa\/3.0\/\" target=\"_blank\" rel=\"noreferrer noopener\">CC BY-SA 3.0<\/a> <a href=\"https:\/\/commons.wikimedia.org\/wiki\/User:Peo~commonswiki\">Peo~commonswiki<\/a>&nbsp;<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Kineskop ma trzy wyrzutnie promieni, kt\u00f3re omiataj\u0105 piksel po pikselu, linia po linii. (a nast\u0119pnie potrzebuj\u0105 troch\u0119 czasu, aby powr\u00f3ci\u0107 do punktu pocz\u0105tkowego). Ekran ma kolorowe luminofory, kt\u00f3re b\u0119d\u0105 emitowa\u0107 \u015bwiat\u0142o przez pewien czas po przej\u015bciu przez nie promienia. Przy kolejnym przeci\u0105gni\u0119ciu promienia nad tym konkretnym pikselem intensywno\u015b\u0107 promienia mo\u017ce si\u0119 zmieni\u0107, co zobaczymy jako ciemniejszy piksel. Nasz m\u00f3zg \u0142\u0105czy s\u0105siednie kolorowe piksele luminoforu w jeden piksel i nie jest w stanie zauwa\u017cy\u0107 zmian jasno\u015bci mi\u0119dzy kolejnymi przeci\u0105gni\u0119ciami promienia. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/02\/monitor-crt-kinescope-verrrr-1550196-1280x960-1-1024x768.jpg\" alt=\"\" class=\"wp-image-704\" style=\"width:466px;height:350px\" width=\"466\" height=\"350\" srcset=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/02\/monitor-crt-kinescope-verrrr-1550196-1280x960-1-1024x768.jpg 1024w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/02\/monitor-crt-kinescope-verrrr-1550196-1280x960-1-300x225.jpg 300w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/02\/monitor-crt-kinescope-verrrr-1550196-1280x960-1-768x576.jpg 768w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/02\/monitor-crt-kinescope-verrrr-1550196-1280x960-1.jpg 1280w\" sizes=\"auto, (max-width: 466px) 100vw, 466px\" \/><figcaption class=\"wp-element-caption\">Zbli\u017cenie kineskopu, pokazuj\u0105ce kolorowe punkty luminoforu. by: FreeImages.com \/ hubert jelen<\/figcaption><\/figure>\n<\/div>\n\n\n<p>W ten spos\u00f3b powstaje iluzja ruchomego obrazu. <\/p>\n\n\n\n<p>W efekcie nie musz\u0105 mie\u0107 wszystkich danych obecnych na pocz\u0105tku obrazu - ale <strong>tylko bie\u017c\u0105ca warto\u015b\u0107 jasno\u015bci piksela<\/strong>. Intensywno\u015b\u0107 promienia zostanie odpowiednio zmodyfikowana. Mo\u017cemy u\u017cy\u0107 do tego sygna\u0142u analogowego - na przyk\u0142ad zwi\u0119kszenie napi\u0119cia zwi\u0119kszy jasno\u015b\u0107. <\/p>\n\n\n\n<p>Potrzebujemy trzech r\u00f3\u017cnych przewod\u00f3w dla r\u00f3\u017cnych kolor\u00f3w (aby nap\u0119dza\u0107 ka\u017cdy pistolet promieniowy indywidualnie) i musimy mie\u0107 spos\u00f3b, aby poinformowa\u0107 monitor, kiedy nale\u017cy rozpocz\u0105\u0107 now\u0105 lini\u0119 i kiedy nale\u017cy rozpocz\u0105\u0107 nowy obraz (gdy wszystkie linie zosta\u0142y wy\u015bwietlone).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">VGA (matryca graficzna wideo)<\/h3>\n\n\n\n<p>VGA zosta\u0142o zaprojektowane z my\u015bl\u0105 o monitorach CRT. Nadal jest do\u015b\u0107 powszechne jako wej\u015bcie w monitorach, mimo \u017ce staje si\u0119 coraz bardziej przestarza\u0142e w miar\u0119 przechodzenia na ca\u0142kowicie cyfrow\u0105 transmisj\u0119 (wi\u0119cej na ten temat p\u00f3\u017aniej).<\/p>\n\n\n\n<p>Jest to r\u00f3wnie\u017c naj\u0142atwiejszy standard wyj\u015bcia wideo do uruchomienia na Pico.  <\/p>\n\n\n\n<p>Obok specyfikacji (z domy\u015blnymi trybami rozdzielczo\u015bci) okre\u015blono z\u0142\u0105cze, z\u0142\u0105cze VGA:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/02\/SVGA_port-1024x768.jpg\" alt=\"\" class=\"wp-image-716\" style=\"width:469px;height:352px\" width=\"469\" height=\"352\" srcset=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/02\/SVGA_port-1024x768.jpg 1024w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/02\/SVGA_port-300x225.jpg 300w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/02\/SVGA_port-768x576.jpg 768w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/02\/SVGA_port-1536x1152.jpg 1536w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/02\/SVGA_port.jpg 1547w\" sizes=\"auto, (max-width: 469px) 100vw, 469px\" \/><figcaption class=\"wp-element-caption\">Port VGA; zdj\u0119cie autorstwa Duncan Lithgow<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Posiada 15 pin\u00f3w:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>RED (czerwone wideo)<\/li>\n\n\n\n<li>GREEN (zielone wideo)<\/li>\n\n\n\n<li>BLUE (niebieskie wideo)<\/li>\n\n\n\n<li>ID2\/RES (zarezerwowane)<\/li>\n\n\n\n<li>GND (Uziemienie HSync)<\/li>\n\n\n\n<li>RED_RTN (czerwony powr\u00f3t, masa analogowa dla czerwonego)<\/li>\n\n\n\n<li>GREEN_RTN (zielony powr\u00f3t, masa analogowa dla koloru zielonego)<\/li>\n\n\n\n<li>BLUE_RTN (niebieski powr\u00f3t, masa analogowa dla niebieskiego)<\/li>\n\n\n\n<li>KEY\/PWR (+5 V DC zasila uk\u0142ad EDID EEPROM w niekt\u00f3rych monitorach)<\/li>\n\n\n\n<li>GND (Uziemienie VSync, DDC)<\/li>\n\n\n\n<li>ID0\/RES (zarezerwowane)<\/li>\n\n\n\n<li>ID1\/SDA (dane I2C od DDC2)<\/li>\n\n\n\n<li>HSync (synchronizacja pozioma)<\/li>\n\n\n\n<li>VSync (synchronizacja pionowa)<\/li>\n\n\n\n<li>ID3\/SCL (zegar I2C od DDC2)<\/li>\n<\/ol>\n\n\n\n<p>Uwaga: Kable VGA mog\u0105 obs\u0142ugiwa\u0107 r\u00f3\u017cne rozdzielczo\u015bci, g\u0142\u0119bie kolor\u00f3w i cz\u0119stotliwo\u015bci od\u015bwie\u017cania, podczas gdy s\u0142owo \"VGA\" w odniesieniu do rozdzielczo\u015bci zwykle oznacza 640 x 480.<\/p>\n\n\n\n<p>Jak wida\u0107, istniej\u0105 <strong>trzy przewody przenosz\u0105ce dane obrazu, po jednym dla ka\u017cdego koloru<\/strong>. Sygna\u0142 jest przesy\u0142any ze szczytowym (maksymalnym) napi\u0119ciem 0,7 V. Sygna\u0142y przesy\u0142ane dla kolor\u00f3w maj\u0105 charakter analogowy - wy\u017csze napi\u0119cia zwi\u0119kszaj\u0105 jasno\u015b\u0107, napi\u0119cie 0 oznacza, \u017ce piksel jest ciemny \/ wy\u0142\u0105czony. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Sprawianie, by wyj\u015bcie VGA dzia\u0142a\u0142o na Pico <\/h3>\n\n\n\n<p>Oznacza to, \u017ce Pico z wyj\u015bciem cyfrowym 3,3 V ma wystarczaj\u0105co wysokie napi\u0119cie, aby m\u00f3c pod\u0142\u0105czy\u0107 te piny RGB do kabla VGA (kt\u00f3ry oczekuje napi\u0119cia 0 - 0,7 V). W rzeczywisto\u015bci musimy zmniejszy\u0107 napi\u0119cie za pomoc\u0105 rezystor\u00f3w. <\/p>\n\n\n\n<p>Mo\u017cemy zbudowa\u0107 prosty DAC (przetwornik cyfrowo-analogowy), \u0142\u0105cz\u0105c kilka rezystor\u00f3w i pin\u00f3w GPIO. W zale\u017cno\u015bci od kombinacji pin\u00f3w GPIO, kt\u00f3re s\u0105 aktywne w danym momencie, mamy r\u00f3\u017cne poziomy napi\u0119cia (= poziomy jasno\u015bci): <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/02\/image-15.png\" alt=\"\" class=\"wp-image-717\" style=\"width:487px;height:284px\" width=\"487\" height=\"284\" srcset=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/02\/image-15.png 700w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/02\/image-15-300x175.png 300w\" sizes=\"auto, (max-width: 487px) 100vw, 487px\" \/><figcaption class=\"wp-element-caption\">Prosty przetwornik cyfrowo-analogowy VGA, zdj\u0119cie zaczerpni\u0119te z \"Hardware design with RP2040\" <\/figcaption><\/figure>\n<\/div>\n\n\n<p>Jak wida\u0107 na powy\u017cszym obrazku, pi\u0119\u0107 GPIO (0 -4) steruje jednym kana\u0142em (w tym przypadku czerwonym), co daje nam pi\u0119ciobitow\u0105 g\u0142\u0119bi\u0119. Rezystory s\u0105 wa\u017cone 1:2:4:8:16, na przyk\u0142ad najmniej znacz\u0105cy bit (LSB) koloru czerwonego ma rezystor 8,06K. <\/p>\n\n\n\n<p>Pr\u00f3buj\u0105c zbudowa\u0107 ten obw\u00f3d, powiniene\u015b wybra\u0107 <strong>1 rezystor tolerancji %<\/strong> aby uzyska\u0107 dobry obraz.<\/p>\n\n\n\n<p>Wi\u0119cej informacji mo\u017cna znale\u017a\u0107 w \"<a href=\"https:\/\/datasheets.raspberrypi.org\/rp2040\/hardware-design-with-rp2040.pdf\">Konstrukcja sprz\u0119towa z RP2040<\/a>\", aby zrozumie\u0107, w jaki spos\u00f3b obliczono warto\u015bci rezystor\u00f3w. Kr\u00f3tko m\u00f3wi\u0105c, je\u015bli wysterujemy wszystkie naraz, uzyskamy napi\u0119cie 0,74 V, kt\u00f3re jest w porz\u0105dku dla naszych cel\u00f3w.<\/p>\n\n\n\n<p>M\u00f3wi\u0105c dok\u0142adniej, ten projekt referencyjny sugeruje obs\u0142ug\u0119 powszechnie u\u017cywanego 16-bitowego formatu danych RGB (RGB-565), kt\u00f3ry wykorzystuje 5 bit\u00f3w dla koloru czerwonego i niebieskiego oraz 6 dla zielonego. Mo\u017cemy zmniejszy\u0107 rzeczywiste fizyczne wyj\u015bcie do zielonego do 5 pin\u00f3w GPIO, tak jak w przypadku innych kolor\u00f3w, aby zaoszcz\u0119dzi\u0107 jeden pin.<\/p>\n\n\n\n<p>Opr\u00f3cz tego potrzebne s\u0105 jeszcze 2 piny do poziomego i pionowego wygaszania (HSYNC i VSYNC)<\/p>\n\n\n\n<p>Daje nam to w sumie 17 pin\u00f3w GPIO do sterowania wyj\u015bciem VGA. Na szcz\u0119\u015bcie Pico ma 26 dost\u0119pnych pin\u00f3w GPIO, co pozwala nam na wysterowanie wyj\u015bcia VGA.<\/p>\n\n\n\n<p>Jak wspomniano wcze\u015bniej, Pico jest r\u00f3wnie\u017c w stanie sterowa\u0107 tymi pinami z wymagan\u0105 cz\u0119stotliwo\u015bci\u0105 i precyzyjnym taktowaniem, dzi\u0119ki funkcji RP2040 PIO (programowalne wej\u015bcia\/wyj\u015bcia). <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Sprz\u0119towe wyj\u015bcie wideo Raspberry Pi Pico VGA<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/buyzero.de\/products\/raspberry-pi-pico-vga-audio-sd-expansion-board?variant=39412666335412\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/02\/image-16.png\" alt=\"\" class=\"wp-image-724\" style=\"width:465px;height:320px\" width=\"465\" height=\"320\" srcset=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/02\/image-16.png 682w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/02\/image-16-300x207.png 300w\" sizes=\"auto, (max-width: 465px) 100vw, 465px\" \/><\/a><figcaption class=\"wp-element-caption\"><a href=\"https:\/\/buyzero.de\/products\/raspberry-pi-pico-vga-audio-sd-expansion-board?variant=39412666335412\">Raspberry Pi Pico VGA, karta SD i p\u0142ytka demonstracyjna audio<\/a> - Zdj\u0119cie pochodzi z podr\u0119cznika Hardware Design with RP2040<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Raspberry Pi zaprojektowa\u0142o i udost\u0119pni\u0142o p\u0142ytk\u0119 no\u015bn\u0105 dla Pico, kt\u00f3ra prezentuje r\u00f3\u017cne funkcje:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Wyj\u015bcie VGA<\/li>\n\n\n\n<li>przyciski<\/li>\n\n\n\n<li>Gniazdo microSD <\/li>\n\n\n\n<li>wyj\u015bcia audio (analogowe PWM, cyfrowe I2S)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Zakup karty Pico VGA \/ Audio \/ microSD<\/h3>\n\n\n\n<p><s>My (<a href=\"https:\/\/buyzero.de\">buyzero.de<\/a>) s\u0105 obecnie w trakcie budowy i monta\u017cu tej referencyjnej p\u0142ytki projektowej. <a href=\"https:\/\/buyzero.de\/pages\/kontakt\">Skontaktuj si\u0119 z nami, je\u015bli chcesz zosta\u0107 powiadomiony, gdy p\u0142yta b\u0119dzie mog\u0142a zosta\u0107 zakupiona<\/a>!<\/s><\/p>\n\n\n\n<p>Strona<a href=\"https:\/\/buyzero.de\/products\/raspberry-pi-pico-vga-audio-sd-expansion-board?variant=39412666335412\"> P\u0142ytka Pico VGA jest ju\u017c dost\u0119pna w sprzeda\u017cy, pocz\u0105tkowy stan magazynowy jest ograniczony<\/a>! <\/p>\n\n\n\n<p>W mi\u0119dzyczasie Pimoroni stworzy\u0142o r\u00f3wnie\u017c wersj\u0119 tej tablicy, kt\u00f3r\u0105 nazywaj\u0105 <a href=\"https:\/\/shop.pimoroni.com\/products\/pimoroni-pico-vga-demo-base\">Pimoroni Pico VGA Demo Base<\/a>.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Uwaga dodatkowa: ka\u017cdy z 15 pin\u00f3w wyj\u015bciowych rgb nadal b\u0119dzie musia\u0142 by\u0107 wysterowany z pr\u0119dko\u015bci\u0105 oko\u0142o 17,58 Mbit\/s, co nadal jest imponuj\u0105c\u0105 - ale znacznie \u0142atwiejsz\u0105 do opanowania liczb\u0105!<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">Oprogramowanie wymagane do sterowania wyj\u015bciem VGA<\/h3>\n\n\n\n<p>Poniewa\u017c pracujemy na Pico, nie ma \"sterownik\u00f3w graficznych\", kt\u00f3re mo\u017cemy po prostu zainstalowa\u0107. Musimy sami napisa\u0107 kod... lub nie \ud83d\ude42<\/p>\n\n\n\n<p>Na szcz\u0119\u015bcie ludzie, kt\u00f3rzy zaprojektowali dla nas p\u0142ytk\u0119 sprz\u0119tow\u0105, dostarczyli ju\u017c kod, kt\u00f3rego mo\u017cemy u\u017cy\u0107, dzi\u0119ki czemu mo\u017cemy skupi\u0107 si\u0119 na naszym projekcie. <\/p>\n\n\n\n<p>Przyk\u0142adowy kod mo\u017cna znale\u017a\u0107 w repozytorium pico-playground:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/raspberrypi\/pico-playground\">https:\/\/github.com\/raspberrypi\/pico-playground<\/a><\/li>\n<\/ul>\n\n\n\n<p>W tym repozytorium znajduje si\u0119 prosty odtwarzacz film\u00f3w o nazwie <a href=\"https:\/\/github.com\/raspberrypi\/pico-playground\/tree\/master\/apps\/popcorn\">popcorn<\/a> (kt\u00f3ra odtwarza filmy w niestandardowym formacie). A <a href=\"https:\/\/drive.google.com\/file\/d\/1q3szTVccPZ08v_TMDxy9ZgqeOOXXwHCX\/view?usp=sharing\">Big Buck Bunny o rozmiarze 1,6 GB mo\u017cna pobra\u0107 tutaj<\/a>. Nale\u017cy pami\u0119ta\u0107, \u017ce s\u0105 to nieprzetworzone obrazy dysk\u00f3w do zapisania na karcie SD - w tym przyk\u0142adzie za\u0142o\u017cono, \u017ce masz p\u0142yt\u0119 demonstracyjn\u0105 VGA, kt\u00f3ra ma gniazdo SD. Instrukcje dla <a href=\"https:\/\/github.com\/raspberrypi\/pico-playground\/blob\/master\/apps\/popcorn\/converter\/README.md\">konwertowanie film\u00f3w <\/a>s\u0105 r\u00f3wnie\u017c podane.<\/p>\n\n\n\n<p>Kod u\u017cywa <a href=\"https:\/\/github.com\/raspberrypi\/pico-extras\/blob\/master\/src\/common\/pico_scanvideo\">pico_scanvideo <\/a>(pico\/scanvideo.h) z biblioteki <a href=\"https:\/\/github.com\/raspberrypi\/pico-extras\">pico_extras <\/a>repozytorium. Zajrzyj r\u00f3wnie\u017c do tego repozytorium, aby zapozna\u0107 si\u0119 z przyk\u0142adowym kodem audio!<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/raspberrypi\/pico-extras\/tree\/master\/src\/common\/pico_scanvideo\">pico_scanvideo <\/a>- zawiera obszern\u0105 dokumentacj\u0119!<\/li>\n<\/ul>\n\n\n\n<p>API wyprowadza r\u00f3wnoleg\u0142e dane RGB i sygna\u0142 synchronizacji na pinach dla DPI VGA (przy u\u017cyciu rezystorowych przetwornik\u00f3w cyfrowo-analogowych, jak opisano powy\u017cej). <\/p>\n\n\n\n<p>Zgrabna uwaga:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Domy\u015blny program PIO scanline akceptuje dane o zakodowanej d\u0142ugo\u015bci przebiegu - oznacza to, \u017ce mo\u017cna zaoszcz\u0119dzi\u0107 pami\u0119\u0107 RAM w celu wygenerowania p\u0142askich obszar\u00f3w kolor\u00f3w (mam tu na my\u015bli gry!).<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Og\u00f3lnie rzecz bior\u0105c, powiniene\u015b u\u017cywa\u0107 <a href=\"https:\/\/github.com\/raspberrypi\/pico-extras\/blob\/master\/src\/common\/pico_scanvideo\">biblioteka pico_scanvideo <\/a>zamiast tworzy\u0107 kod wyj\u015bcia VGA od zera \ud83d\ude42<\/p>\n<cite>dobre praktyki kodowania<\/cite><\/blockquote>\n\n\n\n<p><strong>Wi\u0119cej wersji demonstracyjnych<\/strong><\/p>\n\n\n\n<p>Sprawd\u017a <a href=\"https:\/\/github.com\/raspberrypi\/pico-extras\/tree\/master\/src\/common\/pico_scanvideo\">katalog scanvideo repozytorium pico-playground<\/a>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/raspberrypi\/pico-playground\/blob\/master\/scanvideo\/mandelbrot\">mandelbrot<\/a>generator mandelbrota u\u017cywaj\u0105cy bufora ramki 320x240x16<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/raspberrypi\/pico-playground\/blob\/master\/scanvideo\/sprite_demo\">sprite_demo<\/a>: odbijaj\u0105ce si\u0119 g\u0142owy Ebena (wideo na g\u00f3rze naszej strony!)<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/raspberrypi\/pico-playground\/blob\/master\/scanvideo\/test_pattern\">test_pattern<\/a>: Wy\u015bwietlanie pask\u00f3w kolor\u00f3w<\/li>\n<\/ul>\n\n\n\n<p><strong>Korzystanie z karty VGA<\/strong><\/p>\n\n\n\n<p>Podczas kompilacji nale\u017cy przekaza\u0107 dodatkowy parametr do CMake:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewbox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"-DPICO_BOARD=vgaboard\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Kopia\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code data-no-translation=\"\"><span class=\"line\"><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">DPICO_BOARD<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9\">vgaboard<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/forums.pimoroni.com\/t\/pico-vga-demo-board-instructions-information\/16296\/8\">https:\/\/forums.pimoroni.com\/t\/pico-vga-demo-board-instructions-information\/16296\/8<\/a><\/li>\n<\/ul>\n\n\n\n<p><em><strong>TBD: Dodanie przewodnik\u00f3w krok po kroku<\/strong><\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">DVI: Cyfrowy interfejs wizualny<\/h2>\n\n\n\n<p>Technologia idzie naprz\u00f3d. \u017bycie idzie naprz\u00f3d. Kineskopy staj\u0105 si\u0119 coraz bardziej przestarza\u0142e, wypierane przez bardziej nowoczesne p\u0142askie ekrany z cyfrowymi interfejsami. \u017badnych ruchomych wi\u0105zek, tylko piksele. <\/p>\n\n\n\n<p>Przez pewien czas sygna\u0142y nadal by\u0142y analogowe - ale nie jest to zbyt po\u017c\u0105dane, poniewa\u017c musimy wzi\u0105\u0107 co\u015b cyfrowego, przekszta\u0142ci\u0107 to w co\u015b analogowego, a nast\u0119pnie ponownie przekszta\u0142ci\u0107 w co\u015b cyfrowego. Obraz b\u0119dzie mniej precyzyjny, a my mamy dodatkowe obwody, z kt\u00f3rych mogliby\u015bmy zrezygnowa\u0107. <\/p>\n\n\n\n<p>Pojawi\u0142o si\u0119 DVI. Sprytnie oferowa\u0142 on r\u00f3wnie\u017c opcj\u0119 przesy\u0142ania sygna\u0142\u00f3w analogowych, dzi\u0119ki czemu mo\u017cna by\u0142o zbudowa\u0107 proste adaptery \/ kable DVI do VGA. Oczywi\u015bcie karta graficzna musia\u0142a wysy\u0142a\u0107 zar\u00f3wno dane analogowe, jak i cyfrowe. Pomog\u0142o to jednak w zaakceptowaniu standardu i jego rozpowszechnieniu. <\/p>\n\n\n\n<p>Interesuj\u0105 nas tutaj sygna\u0142y cyfrowe (<strong>DVI-D<\/strong>), poniewa\u017c chcieliby\u015bmy bit-bangowa\u0107 je z Raspberry Pi Pico.<\/p>\n\n\n\n<p>W przypadku DVI-D dane obrazu s\u0105 przesy\u0142ane w spos\u00f3b szeregowy. <\/p>\n\n\n\n<p>\"Pojedyncze \u0142\u0105cze\" (najbardziej podstawowe) po\u0142\u0105czenie DVI sk\u0142ada si\u0119 z <strong>cztery <\/strong>tzw. \u0142\u0105cza TMDS (transition minimized differential signaling):<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>czerwony<\/li>\n\n\n\n<li>zielony <\/li>\n\n\n\n<li>niebieski<\/li>\n\n\n\n<li>zegar pikselowy<\/li>\n<\/ul>\n\n\n\n<p>Sygnalizacja r\u00f3\u017cnicowa jest stosowana w celu zminimalizowania zak\u0142\u00f3ce\u0144 (poniewa\u017c <\/p>\n\n\n\n<p>Mamy w sumie 24 bity na piksel (8 bit\u00f3w x 3 kolory) i kodujemy dane przy u\u017cyciu kodowania 8b10b (8 bit\u00f3w jest mapowanych na 10-bitowe symbole na rzeczywistej linii fizycznej, aby osi\u0105gn\u0105\u0107 mi\u0119dzy innymi r\u00f3wnowag\u0119 DC). <\/p>\n\n\n\n<p>DVI traktuje piksele podobnie do VGA: wszystko jest ponownie przesy\u0142ane za ka\u017cdym razem, gdy obraz \"zaczyna si\u0119\" ponownie, a dane s\u0105 precyzyjnie taktowane. Przypomina to lini\u0119 telefoniczn\u0105, gdzie linia jest stale u\u017cywana, gdy dwie osoby rozmawiaj\u0105. <\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Uwaga: w przeciwie\u0144stwie do tego, <a href=\"https:\/\/en.wikipedia.org\/wiki\/DisplayPort\">DisplayPort traktuje dane jako pakiety<\/a> - kt\u00f3ra ma wiele zalet.<\/p>\n<\/blockquote>\n\n\n\n<p>W przeciwie\u0144stwie do przyk\u0142adu VGA om\u00f3wionego powy\u017cej, poniewa\u017c dane s\u0105 przesy\u0142ane cyfrowo, zamiast analogowych warto\u015bci jasno\u015bci, oznacza to znacznie wi\u0119ksz\u0105 ilo\u015b\u0107 danych. <\/p>\n\n\n\n<p><a href=\"https:\/\/twitter.com\/wren6991\">Luke Wren<\/a>, in\u017cynier z Raspberry Pi, uwa\u017ca\u0142, \u017ce RP2040 (serce Pico) b\u0119dzie r\u00f3wnie\u017c w stanie sterowa\u0107 wyj\u015bciem DVI, ponownie u\u017cywaj\u0105c PIO.<\/p>\n\n\n\n<p>Rezultatem jest<a href=\"https:\/\/github.com\/Wren6991\/PicoDVI\"> Repozytorium PicoDVI<\/a> i projekty oraz <a href=\"https:\/\/github.com\/Wren6991\/Pico-DVI-Sock\">Skarpeta Pico DVI<\/a>.<\/p>\n\n\n\n<p>Luke Wren obliczy\u0142, \u017ce oko\u0142o <strong>Dane szeregowe 252 Mb\/s<\/strong> musi by\u0107 sterowany przez cyfrowe pady GPIO - szeregowe r\u00f3\u017cnicowe, kt\u00f3re s\u0105 emulowane przez dwa pady single-ended. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/github.com\/Wren6991\/PicoDVI\/blob\/master\/img\/dc_coupling.png?raw=true\" alt=\"dc_coupling.png\"\/><figcaption class=\"wp-element-caption\">\u0179r\u00f3d\u0142o: <a href=\"https:\/\/github.com\/Wren6991\/PicoDVI\/blob\/master\/img\/dc_coupling.png\">Repozytorium Luke'a Wrena<\/a> (licencja BSD-3)<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Powy\u017cej wida\u0107 obw\u00f3d u\u017cywany do sterowania wyj\u015bciem DVI (przy u\u017cyciu z\u0142\u0105cza HDMI, wi\u0119cej na ten temat poni\u017cej) - jest ich po prostu kilka <strong>270 Ohm<\/strong> rezystory.<\/p>\n\n\n\n<p>Luke Wren posun\u0105\u0142 si\u0119 nawet dalej i doda\u0142 podw\u00f3jne wyj\u015bcie DVI do swojego uk\u0142adu PicoDVI za pomoc\u0105 wtyczki:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/github.com\/Wren6991\/PicoDVI\/blob\/master\/img\/two_displays.jpg?raw=true\" alt=\"two_displays.jpg\" style=\"width:626px;height:324px\" width=\"626\" height=\"324\"\/><figcaption class=\"wp-element-caption\">Luke Wren demonstruje <a href=\"https:\/\/github.com\/Wren6991\/PicoDVI\">wyj\u015bcie na dw\u00f3ch wy\u015bwietlaczach <\/a>przy u\u017cyciu w\u0142asnego projektu <\/figcaption><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">HDMI: kompatybilne w d\u00f3\u0142 z DVI<\/h3>\n\n\n\n<p>HDMI to nast\u0119pna ewolucja z\u0142\u0105czy (i konkurencja dla DisplayPort). Jest w pe\u0142ni kompatybilny w d\u00f3\u0142 z cyfrowymi sygna\u0142ami DVI - dzi\u0119ki temu mo\u017cna mie\u0107 proste, czysto pasywne konwertery DVI \/ HDMI. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Skarpeta Pico DVI<\/h2>\n\n\n\n<p>Pico DVI Sock to proste i tanie rozwi\u0105zanie umo\u017cliwiaj\u0105ce dodanie cyfrowego wyj\u015bcia wideo do komputera Pi. Zosta\u0142a zaprojektowana przez Luke'a Wrena (patrz opis powy\u017cej). Jest to wyj\u015bcie DVI ze z\u0142\u0105czem HDMI. Poniewa\u017c HDMI jest kompatybilne w d\u00f3\u0142 z DVI, mo\u017cna u\u017cy\u0107 kabla HDMI do pod\u0142\u0105czenia Pico do wy\u015bwietlaczy HDMI:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><a href=\"https:\/\/buyzero.de\/products\/raspberry-pi-pico-dvi-sock-videoausgabe-fur-den-pico?variant=39321578832052\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/github.com\/Wren6991\/Pico-DVI-Sock\/blob\/master\/img\/soldering_04.jpg?raw=true\" alt=\"soldering_04.jpg\" style=\"width:612px;height:214px\" width=\"612\" height=\"214\"\/><\/a><figcaption class=\"wp-element-caption\">Zdj\u0119cie autorstwa <a href=\"https:\/\/github.com\/Wren6991\/Pico-DVI-Sock\">Luke Wren<\/a>, Licencja CC0-1.0<\/figcaption><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">Programowanie gniazda Pico DVI Sock<\/h3>\n\n\n\n<p><strong>TL;DR<\/strong><\/p>\n\n\n\n<p>Mo\u017cesz pobra\u0107 nasze <strong><a href=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/03\/picodvi-test.zip\">picodvi-test.zip<\/a><\/strong> i rozpocz\u0105\u0107 zabaw\u0119 z przyk\u0142adowymi kompilacjami .UF2. Zawiera r\u00f3wnie\u017c plik PDF, kt\u00f3ry zawiera przewodnik krok po kroku.<\/p>\n\n\n\n<p><strong>Przyk\u0142ady kodu<\/strong><\/p>\n\n\n\n<p>Luke Wren zapewnia <a href=\"https:\/\/github.com\/Wren6991\/PicoDVI\">przyk\u0142ady kodu w jego repozytorium<\/a>. Aby jednak u\u017cywa\u0107 ich z Pico DVI Sock, nale\u017cy ustawi\u0107 prawid\u0142ow\u0105 konfiguracj\u0119. W tym mini-poradniku poka\u017cemy, jak to zrobi\u0107.<\/p>\n\n\n\n<p><strong>Wymagania wst\u0119pne instalacji<\/strong><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewbox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi build-essential\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Kopia\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code data-no-translation=\"\"><span class=\"line\"><span style=\"color: #D8DEE9\">sudo<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">apt<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">install<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">cmake<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">gcc<\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">arm<\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">none<\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">eabi<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">libnewlib<\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">arm<\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">none<\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">eabi<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">build<\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">essential<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><strong>Sklonuj repozytorium PicoDVI od Luke'a Wrena:<\/strong><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewbox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"cd ~mkdir picocd pico git clone https:\/\/github.com\/raspberrypi\/pico-sdkcd pico-sdkgit submodule update --initcd ~\/picogit clone https:\/\/github.com\/Wren6991\/PicoDVI.git\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Kopia\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code data-no-translation=\"\"><span class=\"line\"><span style=\"color: #D8DEE9\">cd<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">~<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">mkdir<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">pico<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">cd<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">pico<\/span><span style=\"color: #D8DEE9FF\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">git<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">clone<\/span><span style=\"color: #D8DEE9FF\"> https<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #616E88\">\/\/github.com\/raspberrypi\/pico-sdk<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">cd<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">pico<\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">sdk<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">git<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">submodule<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">update<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">--<\/span><span style=\"color: #D8DEE9\">init<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">cd<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">~\/<\/span><span style=\"color: #D8DEE9\">pico<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">git<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">clone<\/span><span style=\"color: #D8DEE9FF\"> https<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #616E88\">\/\/github.com\/Wren6991\/PicoDVI.git<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Aby u\u017cy\u0107 przyk\u0142ad\u00f3w kodu z Pico DVI Sock, nale\u017cy ustawi\u0107 opcj\u0119 <strong>Prawid\u0142owa konfiguracja pin\u00f3w <\/strong>do u\u017cycia. Dodaj nast\u0119puj\u0105c\u0105 lini\u0119 do <strong>common_dvi_pin_configs.h<\/strong> po prostu <strong>przed <\/strong>pierwszy #ifndef<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewbox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"#define DEFAULT_DVI_SERIAL_CONFIG pico_sock_cfg\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Kopia\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code data-no-translation=\"\"><span class=\"line\"><span style=\"color: #D8DEE9FF\">#<\/span><span style=\"color: #D8DEE9\">define<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">DEFAULT_DVI_SERIAL_CONFIG<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">pico_sock_cfg<\/span><\/span><\/code><\/pre><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"552\" height=\"114\" src=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/03\/image.png\" alt=\"\" class=\"wp-image-762\" srcset=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/03\/image.png 552w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/03\/image-300x62.png 300w\" sizes=\"auto, (max-width: 552px) 100vw, 552px\" \/><\/figure>\n<\/div>\n\n\n<p><strong>Tworzenie przyk\u0142ad\u00f3w<\/strong><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewbox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"cd PicoDVI\/software\/mkdir buildcd buildexport PICO_SDK_PATH=~\/pico\/pico-sdkmake -j$(nproc)\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Kopia\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code data-no-translation=\"\"><span class=\"line\"><span style=\"color: #D8DEE9\">cd<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">PicoDVI<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">software<\/span><span style=\"color: #81A1C1\">\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">mkdir<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">build<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">cd<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">build<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">export<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">PICO_SDK_PATH<\/span><span style=\"color: #81A1C1\">=~\/<\/span><span style=\"color: #D8DEE9\">pico<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">pico<\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">sdk<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">make<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #88C0D0\">j$<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #D8DEE9\">nproc<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><strong>Zainstaluj przyk\u0142ady na Pico<\/strong><\/p>\n\n\n\n<p>Zbudowane przyk\u0142ady b\u0119d\u0105 znajdowa\u0107 si\u0119 w folderze software\/build\/apps. <\/p>\n\n\n\n<p>Naci\u015bnij i przytrzymaj przycisk BOOTSEL na Pico, a nast\u0119pnie pod\u0142\u0105cz p\u0142ytk\u0119 do komputera za pomoc\u0105 z\u0142\u0105cza microUSB. Skopiuj i wklej odpowiedni plik .uf2, kt\u00f3ry chcesz wypr\u00f3bowa\u0107 - np. sprite_bounce.uf2 - do Pico. <\/p>\n\n\n\n<p>Pico automatycznie uruchomi si\u0119 ponownie i powiniene\u015b by\u0107 w stanie zobaczy\u0107 wyj\u015bcie na z\u0142\u0105czu HDMI (pami\u0119taj, \u017ce tak naprawd\u0119 jest to DVI :-)). <\/p>\n\n\n\n<p><strong>Pobierz<\/strong><\/p>\n\n\n\n<p>Mo\u017cesz pobra\u0107 nasze <strong><a href=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/03\/picodvi-test.zip\">picodvi-test.zip<\/a><\/strong> i rozpocz\u0105\u0107 zabaw\u0119 z przyk\u0142adowymi kompilacjami .UF2. Zawiera r\u00f3wnie\u017c plik PDF, kt\u00f3ry zawiera przewodnik krok po kroku. Je\u015bli <em>sprite_bounce.uf2<\/em> przyk\u0142ad nie dzia\u0142a, wypr\u00f3buj inny monitor - prawdopodobnie nie wszystkie monitory s\u0105 kompatybilne z tym wyj\u015bciem wideo.<\/p>\n\n\n\n<p>Je\u015bli uda\u0142o Ci si\u0119 dotrze\u0107 tak daleko, daj nam zna\u0107 w komentarzach, jak Ci si\u0119 to uda\u0142o i jakie pomys\u0142y na projekty wpad\u0142y Ci do g\u0142owy!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Zakup skarpety Pico DVI Sock<\/h3>\n\n\n\n<p>Nasza siostrzana strona, buyzero.de, oferuje nast\u0119puj\u0105ce produkty <strong><a href=\"https:\/\/buyzero.de\/products\/raspberry-pi-pico-dvi-sock-videoausgabe-fur-den-pico?variant=39321578799284\">Skarpeta Pico DVI <\/a><\/strong>w dw\u00f3ch wariantach: <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/buyzero.de\/products\/raspberry-pi-pico-dvi-sock-videoausgabe-fur-den-pico?variant=39321578799284\">Tylko gniazdo DVI Pico<\/a> (do samodzielnego lutowania) @ 6,58 \u20ac obecnie<\/li>\n\n\n\n<li><a href=\"https:\/\/buyzero.de\/products\/raspberry-pi-pico-dvi-sock-videoausgabe-fur-den-pico?variant=39321578832052\">Pico DVI Sock na Pico, z wst\u0119pnie przylutowanymi nag\u0142\u00f3wkami<\/a> 17,89 \u20ac obecnie<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Uwaga: wy\u015bwietlacze DBI i DSI<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/raspberrypi\/pico-extras\/tree\/master\/src\/common\/pico_scanvideo\">https:\/\/github.com\/raspberrypi\/pico-extras\/tree\/master\/src\/common\/pico_scanvideo<\/a><\/li>\n<\/ul>\n\n\n\n<p>Na marginesie, repozytorium Raspberry Pi Pico Extras zawiera symbole zast\u0119pcze dla DBI (16-bitowe wy\u015bwietlacze MIPI DBI - z danymi przekazywanymi r\u00f3wnolegle) i DSI (szeregowe wy\u015bwietlacze MIPI), wi\u0119c by\u0107 mo\u017ce w przysz\u0142o\u015bci zobaczymy r\u00f3wnie\u017c wsparcie dla tych wy\u015bwietlaczy.<\/p>\n<div class=\"shariff shariff-align-center shariff-widget-align-left shariff-buttonstretch\"><ul class=\"shariff-buttons theme-white orientation-horizontal buttonsize-medium\"><li class=\"shariff-button twitter shariff-nocustomcolor\" style=\"background-color:#595959\"><a href=\"https:\/\/twitter.com\/share?url=https%3A%2F%2Fpicockpit.com%2Fraspberry-pi%2Fpl%2Fwyjscie-wideo-raspberry-pi-pico%2F&text=Raspberry%20Pi%20Pico%20Video%20Output\" title=\"Udost\u0119pnij na X\" aria-label=\"Udost\u0119pnij na X\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#000; color:#000\" target=\"_blank\"><span class=\"shariff-icon\" style=\"fill:#000\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 24 24\"><path fill=\"#000\" d=\"M14.258 10.152L23.176 0h-2.113l-7.747 8.813L7.133 0H0l9.352 13.328L0 23.973h2.113l8.176-9.309 6.531 9.309h7.133zm-2.895 3.293l-.949-1.328L2.875 1.56h3.246l6.086 8.523.945 1.328 7.91 11.078h-3.246zm0 0\"\/><\/svg><\/span><span class=\"shariff-text\" style=\"color:#000\">udost\u0119pnij<\/span>&nbsp;<\/a><\/li><li class=\"shariff-button facebook shariff-nocustomcolor\" style=\"background-color:#4273c8\"><a href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=https%3A%2F%2Fpicockpit.com%2Fraspberry-pi%2Fpl%2Fwyjscie-wideo-raspberry-pi-pico%2F\" title=\"Udost\u0119pnij na Facebooku\" aria-label=\"Udost\u0119pnij na Facebooku\" role=\"button\" rel=\"nofollow\" class=\"shariff-link\" style=\"; background-color:#3b5998; color:#3b5998\" target=\"_blank\"><span class=\"shariff-icon\" style=\"fill:#3b5998\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 18 32\"><path fill=\"#3b5998\" d=\"M17.1 0.2v4.7h-2.8q-1.5 0-2.1 0.6t-0.5 1.9v3.4h5.2l-0.7 5.3h-4.5v13.6h-5.5v-13.6h-4.5v-5.3h4.5v-3.9q0-3.3 1.9-5.2t5-1.8q2.6 0 4.1 0.2z\"\/><\/svg><\/span><span class=\"shariff-text\" style=\"color:#3b5998\">udost\u0119pnij<\/span>&nbsp;<\/a><\/li><li class=\"shariff-button telegram shariff-nocustomcolor\" style=\"background-color:#4084A6\"><a href=\"https:\/\/telegram.me\/share\/url?url=https%3A%2F%2Fpicockpit.com%2Fraspberry-pi%2Fpl%2Fwyjscie-wideo-raspberry-pi-pico%2F&text=Raspberry%20Pi%20Pico%20Video%20Output\" title=\"Udost\u0119pnij przez Telegram\" aria-label=\"Udost\u0119pnij przez Telegram\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#0088cc; color:#0088cc\" target=\"_blank\"><span class=\"shariff-icon\" style=\"fill:#0088cc\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 32 32\"><path fill=\"#0088cc\" d=\"M30.8 6.5l-4.5 21.4c-.3 1.5-1.2 1.9-2.5 1.2L16.9 24l-3.3 3.2c-.4.4-.7.7-1.4.7l.5-7L25.5 9.2c.6-.5-.1-.8-.9-.3l-15.8 10L2 16.7c-1.5-.5-1.5-1.5.3-2.2L28.9 4.3c1.3-.5 2.3.3 1.9 2.2z\"\/><\/svg><\/span><span class=\"shariff-text\" style=\"color:#0088cc\">udost\u0119pnij<\/span>&nbsp;<\/a><\/li><li class=\"shariff-button reddit shariff-nocustomcolor\" style=\"background-color:#ff5700\"><a href=\"https:\/\/www.reddit.com\/submit?url=https%3A%2F%2Fpicockpit.com%2Fraspberry-pi%2Fpl%2Fwyjscie-wideo-raspberry-pi-pico%2F\" title=\"Udost\u0119pnij przez Reddit\" aria-label=\"Udost\u0119pnij przez Reddit\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#ff4500; color:#ff4500\" target=\"_blank\"><span class=\"shariff-icon\" style=\"fill:#ff4500\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 512 512\"><path fill=\"#ff4500\" d=\"M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z\"\/><\/svg><\/span><span class=\"shariff-text\" style=\"color:#ff4500\">udost\u0119pnij<\/span>&nbsp;<\/a><\/li><\/ul><\/div>","protected":false},"excerpt":{"rendered":"<p>TL;DR Raspberry Pi Pico to niesamowity ma\u0142y mikrokontroler. Chocia\u017c nie ma wbudowanego interfejsu wyj\u015bcia wideo, tak jak jego wi\u0119ksze rodze\u0144stwo Raspberry Pi Zero \/ 1 \/ 2 \/ 3 \/ 4 \/ 400 (HDMI \/ podw\u00f3jne HDMI w ich przypadku), mo\u017cliwe jest dodanie wyj\u015bcia wideo do Pico!...<\/p>","protected":false},"author":2,"featured_media":716,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[358,973,975,974,976,978,985,827,986,970,971,983,688,831,789,11,984,982,981,738,486,447,187,972,977,909,969,979,968,980],"class_list":["post-703","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-raspberry-pi-pico","tag-audio","tag-bcm2711-soc","tag-black-and-white","tag-color","tag-crt","tag-dac","tag-dbi","tag-display","tag-dsi","tag-dual-screens","tag-dvi","tag-dvi-d","tag-gpio","tag-hdmi","tag-microcontrollers","tag-pico","tag-pico-dvi-sock","tag-pico-playground","tag-pimoroni-pico-vga","tag-pio","tag-project","tag-projects","tag-raspberry-pi","tag-raspberry-pi-zero-w","tag-rgb","tag-rp2040","tag-screen","tag-vga","tag-video","tag-video-output"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Raspberry Pi Pico Video Output | PiCockpit<\/title>\n<meta name=\"description\" content=\"Raspberry Pi Pico can output video in VGA and DVI formats - we show you how to do it, including hardware &amp; software instructions.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/picockpit.com\/raspberry-pi\/pl\/wyjscie-wideo-raspberry-pi-pico\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Raspberry Pi Pico Video Output | PiCockpit\" \/>\n<meta property=\"og:description\" content=\"Raspberry Pi Pico can output video in VGA and DVI formats - we show you how to do it, including hardware &amp; software instructions.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/picockpit.com\/raspberry-pi\/pl\/wyjscie-wideo-raspberry-pi-pico\/\" \/>\n<meta property=\"og:site_name\" content=\"PiCockpit\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/pi3gshop\" \/>\n<meta property=\"article:published_time\" content=\"2021-02-26T10:55:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-30T09:51:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/02\/SVGA_port.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1547\" \/>\n\t<meta property=\"og:image:height\" content=\"1160\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"raspi berry\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@pi3g\" \/>\n<meta name=\"twitter:site\" content=\"@pi3g\" \/>\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"raspi berry\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/raspberry-pi-pico-video-output\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/raspberry-pi-pico-video-output\\\/\"},\"author\":{\"name\":\"raspi berry\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#\\\/schema\\\/person\\\/7af3a7a8c999bc722029ef9ca9d78eee\"},\"headline\":\"Raspberry Pi Pico Video Output\",\"datePublished\":\"2021-02-26T10:55:33+00:00\",\"dateModified\":\"2023-08-30T09:51:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/raspberry-pi-pico-video-output\\\/\"},\"wordCount\":3281,\"commentCount\":21,\"publisher\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/raspberry-pi-pico-video-output\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/SVGA_port.jpg\",\"keywords\":[\"Audio\",\"BCM2711 SoC\",\"black and white\",\"color\",\"CRT\",\"DAC\",\"DBI\",\"display\",\"DSI\",\"dual screens\",\"DVI\",\"DVI-D\",\"GPIO\",\"hdmi\",\"microcontrollers\",\"Pico\",\"Pico DVI sock\",\"pico playground\",\"Pimoroni Pico VGA\",\"PIO\",\"project\",\"Projects\",\"Raspberry Pi\",\"Raspberry Pi Zero W\",\"RGB\",\"RP2040\",\"screen\",\"VGA\",\"video\",\"video output\"],\"articleSection\":[\"Raspberry Pi Pico\"],\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/raspberry-pi-pico-video-output\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/raspberry-pi-pico-video-output\\\/\",\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/raspberry-pi-pico-video-output\\\/\",\"name\":\"Raspberry Pi Pico Video Output | PiCockpit\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/raspberry-pi-pico-video-output\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/raspberry-pi-pico-video-output\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/SVGA_port.jpg\",\"datePublished\":\"2021-02-26T10:55:33+00:00\",\"dateModified\":\"2023-08-30T09:51:28+00:00\",\"description\":\"Raspberry Pi Pico can output video in VGA and DVI formats - we show you how to do it, including hardware & software instructions.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/raspberry-pi-pico-video-output\\\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/raspberry-pi-pico-video-output\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/raspberry-pi-pico-video-output\\\/#primaryimage\",\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/SVGA_port.jpg\",\"contentUrl\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/SVGA_port.jpg\",\"width\":1547,\"height\":1160},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/raspberry-pi-pico-video-output\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Raspberry Pi Pico\",\"item\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/category\\\/raspberry-pi-pico\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Raspberry Pi Pico Video Output\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#website\",\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/\",\"name\":\"PiCockpit\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#organization\",\"name\":\"PiCockpit.com\",\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/Screenshot-from-2023-07-24-15-01-24.png\",\"contentUrl\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/Screenshot-from-2023-07-24-15-01-24.png\",\"width\":1165,\"height\":283,\"caption\":\"PiCockpit.com\"},\"image\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/pi3gshop\",\"https:\\\/\\\/x.com\\\/pi3g\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#\\\/schema\\\/person\\\/7af3a7a8c999bc722029ef9ca9d78eee\",\"name\":\"raspi berry\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c10c423ceeff34163dd54a5472d6da17d71c0e360e0cf8cdb8847006372f216b?s=96&d=blank&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c10c423ceeff34163dd54a5472d6da17d71c0e360e0cf8cdb8847006372f216b?s=96&d=blank&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c10c423ceeff34163dd54a5472d6da17d71c0e360e0cf8cdb8847006372f216b?s=96&d=blank&r=g\",\"caption\":\"raspi berry\"},\"description\":\"I'm here to help you with all your Raspberry Pi related questions &amp; love to share about new project ideas for the Raspberry Pi, and give quick tips. Of course I'll also help you with PiCockpit and how to make your Raspberry Pi even easier to use with this raspberry pi monitoring solution :-)\",\"sameAs\":[\"https:\\\/\\\/picockpit.com\"],\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/pl\\\/author\\\/raspi-berry\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Wyj\u015bcie wideo Raspberry Pi Pico | PiCockpit","description":"Raspberry Pi Pico mo\u017ce wy\u015bwietla\u0107 wideo w formatach VGA i DVI - pokazujemy, jak to zrobi\u0107, w tym instrukcje dotycz\u0105ce sprz\u0119tu i oprogramowania.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/picockpit.com\/raspberry-pi\/pl\/wyjscie-wideo-raspberry-pi-pico\/","og_locale":"pl_PL","og_type":"article","og_title":"Raspberry Pi Pico Video Output | PiCockpit","og_description":"Raspberry Pi Pico can output video in VGA and DVI formats - we show you how to do it, including hardware & software instructions.","og_url":"https:\/\/picockpit.com\/raspberry-pi\/pl\/wyjscie-wideo-raspberry-pi-pico\/","og_site_name":"PiCockpit","article_publisher":"https:\/\/www.facebook.com\/pi3gshop","article_published_time":"2021-02-26T10:55:33+00:00","article_modified_time":"2023-08-30T09:51:28+00:00","og_image":[{"width":1547,"height":1160,"url":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/02\/SVGA_port.jpg","type":"image\/jpeg"}],"author":"raspi berry","twitter_card":"summary_large_image","twitter_creator":"@pi3g","twitter_site":"@pi3g","twitter_misc":{"Napisane przez":"raspi berry","Szacowany czas czytania":"17 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/picockpit.com\/raspberry-pi\/raspberry-pi-pico-video-output\/#article","isPartOf":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/raspberry-pi-pico-video-output\/"},"author":{"name":"raspi berry","@id":"https:\/\/picockpit.com\/raspberry-pi\/#\/schema\/person\/7af3a7a8c999bc722029ef9ca9d78eee"},"headline":"Raspberry Pi Pico Video Output","datePublished":"2021-02-26T10:55:33+00:00","dateModified":"2023-08-30T09:51:28+00:00","mainEntityOfPage":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/raspberry-pi-pico-video-output\/"},"wordCount":3281,"commentCount":21,"publisher":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/#organization"},"image":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/raspberry-pi-pico-video-output\/#primaryimage"},"thumbnailUrl":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/02\/SVGA_port.jpg","keywords":["Audio","BCM2711 SoC","black and white","color","CRT","DAC","DBI","display","DSI","dual screens","DVI","DVI-D","GPIO","hdmi","microcontrollers","Pico","Pico DVI sock","pico playground","Pimoroni Pico VGA","PIO","project","Projects","Raspberry Pi","Raspberry Pi Zero W","RGB","RP2040","screen","VGA","video","video output"],"articleSection":["Raspberry Pi Pico"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/picockpit.com\/raspberry-pi\/raspberry-pi-pico-video-output\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/picockpit.com\/raspberry-pi\/raspberry-pi-pico-video-output\/","url":"https:\/\/picockpit.com\/raspberry-pi\/raspberry-pi-pico-video-output\/","name":"Wyj\u015bcie wideo Raspberry Pi Pico | PiCockpit","isPartOf":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/#website"},"primaryImageOfPage":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/raspberry-pi-pico-video-output\/#primaryimage"},"image":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/raspberry-pi-pico-video-output\/#primaryimage"},"thumbnailUrl":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/02\/SVGA_port.jpg","datePublished":"2021-02-26T10:55:33+00:00","dateModified":"2023-08-30T09:51:28+00:00","description":"Raspberry Pi Pico mo\u017ce wy\u015bwietla\u0107 wideo w formatach VGA i DVI - pokazujemy, jak to zrobi\u0107, w tym instrukcje dotycz\u0105ce sprz\u0119tu i oprogramowania.","breadcrumb":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/raspberry-pi-pico-video-output\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/picockpit.com\/raspberry-pi\/raspberry-pi-pico-video-output\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/picockpit.com\/raspberry-pi\/raspberry-pi-pico-video-output\/#primaryimage","url":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/02\/SVGA_port.jpg","contentUrl":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2021\/02\/SVGA_port.jpg","width":1547,"height":1160},{"@type":"BreadcrumbList","@id":"https:\/\/picockpit.com\/raspberry-pi\/raspberry-pi-pico-video-output\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/picockpit.com\/raspberry-pi\/"},{"@type":"ListItem","position":2,"name":"Raspberry Pi Pico","item":"https:\/\/picockpit.com\/raspberry-pi\/category\/raspberry-pi-pico\/"},{"@type":"ListItem","position":3,"name":"Raspberry Pi Pico Video Output"}]},{"@type":"WebSite","@id":"https:\/\/picockpit.com\/raspberry-pi\/#website","url":"https:\/\/picockpit.com\/raspberry-pi\/","name":"PiCockpit","description":"","publisher":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/picockpit.com\/raspberry-pi\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/picockpit.com\/raspberry-pi\/#organization","name":"PiCockpit.com","url":"https:\/\/picockpit.com\/raspberry-pi\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/picockpit.com\/raspberry-pi\/#\/schema\/logo\/image\/","url":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/Screenshot-from-2023-07-24-15-01-24.png","contentUrl":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/Screenshot-from-2023-07-24-15-01-24.png","width":1165,"height":283,"caption":"PiCockpit.com"},"image":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/pi3gshop","https:\/\/x.com\/pi3g"]},{"@type":"Person","@id":"https:\/\/picockpit.com\/raspberry-pi\/#\/schema\/person\/7af3a7a8c999bc722029ef9ca9d78eee","name":"jagoda malina","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/secure.gravatar.com\/avatar\/c10c423ceeff34163dd54a5472d6da17d71c0e360e0cf8cdb8847006372f216b?s=96&d=blank&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c10c423ceeff34163dd54a5472d6da17d71c0e360e0cf8cdb8847006372f216b?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c10c423ceeff34163dd54a5472d6da17d71c0e360e0cf8cdb8847006372f216b?s=96&d=blank&r=g","caption":"raspi berry"},"description":"Jestem tutaj, aby pom\u00f3c Ci we wszystkich pytaniach zwi\u0105zanych z Raspberry Pi i uwielbiam dzieli\u0107 si\u0119 nowymi pomys\u0142ami na projekty dla Raspberry Pi, a tak\u017ce udziela\u0107 szybkich wskaz\u00f3wek. Oczywi\u015bcie pomog\u0119 Ci r\u00f3wnie\u017c z PiCockpit i jak sprawi\u0107, aby Twoje Raspberry Pi jeszcze \u0142atwiejsze w u\u017cyciu z tym rozwi\u0105zaniem monitorowania Maliny Pi :-)","sameAs":["https:\/\/picockpit.com"],"url":"https:\/\/picockpit.com\/raspberry-pi\/pl\/author\/raspi-berry\/"}]}},"_links":{"self":[{"href":"https:\/\/picockpit.com\/raspberry-pi\/pl\/wp-json\/wp\/v2\/posts\/703","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/picockpit.com\/raspberry-pi\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/picockpit.com\/raspberry-pi\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/picockpit.com\/raspberry-pi\/pl\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/picockpit.com\/raspberry-pi\/pl\/wp-json\/wp\/v2\/comments?post=703"}],"version-history":[{"count":29,"href":"https:\/\/picockpit.com\/raspberry-pi\/pl\/wp-json\/wp\/v2\/posts\/703\/revisions"}],"predecessor-version":[{"id":5042,"href":"https:\/\/picockpit.com\/raspberry-pi\/pl\/wp-json\/wp\/v2\/posts\/703\/revisions\/5042"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/picockpit.com\/raspberry-pi\/pl\/wp-json\/wp\/v2\/media\/716"}],"wp:attachment":[{"href":"https:\/\/picockpit.com\/raspberry-pi\/pl\/wp-json\/wp\/v2\/media?parent=703"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/picockpit.com\/raspberry-pi\/pl\/wp-json\/wp\/v2\/categories?post=703"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/picockpit.com\/raspberry-pi\/pl\/wp-json\/wp\/v2\/tags?post=703"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}