Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
TermopastyTermopasty
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji

p.kaczmarek2 27 Feb 2020 01:04 4476 6
  • Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Witajcie moi drodzy
    Dzisiaj przedstawię mojego pierwszego własnego shielda (nakładkę) dla Arduino UNO.
    Jest to shield VGA (generator obrazu video dla monitora VGA) z bonusową obsługą klawiatury PS/2 i bazuje na wcześniej już opisywanej przeze mnie bibliotece 'ASCII Video Terminal' autorstwa Geoff dostępnej na licencji CC-BY-NC-SA 3.0.
    Tak, pokażę tutaj jak praktycznie każdy początkujący (przy użyciu mojego shielda) może podłączyć monitor i klawiaturę do Arduino.

    Co to za shield?
    Shield VGA opracowałem z myślą o początkujących użytkownikach i miłośnikach Arduino. Jest prosty w użyciu i nie wymaga żadnego lutowania ani nawet kabelków by wyświetlać różne kształty na ekranie i obsługiwać klawiaturę PS/2. Moduł komunikuje się z Arduino z pomocą UART na wybranych przez użytkownika pinach.
    Płytkę shielda utworzyłem od zera w Eagle. Software shielda chodzi na PIC32 i pochodzi projektu na licencji Creative Commons-NC dostępnego tutaj:
    http://geoffg.net/terminal.html
    Shield oferuje:
    - kompatybilność z Arduino UNO
    - generowanie jednobarwnego obrazu VGA o rozdzielczości do 24 linii po 80 znaków
    - możliwość generowania obrazu PAL/NTSC dla telewizorów
    - rysowanie tekstu i prostych kształtów
    - wsparcie klawiatury PS/2
    - komunikację z Arduino przez UART (czyli Serial lub SoftwareSerial; w zależności które piny wybierzemy)
    - możliwość wyboru jednych z kilku pinów wejścia/wyjścia (UART)
    - wybór baud rate UART komunikacji poprzez zworki
    - jego użycie praktycznie nie zużywa wcale pamięci Arduino, wszystko dzieje się poza siedzącą tam ATmegą
    - kod firmware autorstwa Geoff jest Open Source i znajduje się na licencji Creative Commons-NC
    Schemat pierwowzoru shielda:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Ja na bazie tego schematu opracowałem shield dla Arduino i to poniżej opiszę.

    Poprzedni projekt (warto zapoznać się)
    Sam użyty tutaj firmware autorstwa Geoff (obsługa VGA/PS/2 na PIC32) opisywałem jakiś czas temu w dziale DIY Zagranica; polecam zapoznać się z tym opisem. Nie będę tutaj powtarzać drugi raz tych informacji.
    https://www.elektroda.pl/rtvforum/topic3559090.html
    W zalinkowanym powyżej temacie są też dodatkowe przykłady co można zrobić z pomocą tego modułu VGA.

    Projekt płytki
    PCB zaprojektowałem samodzielnie w programie Eagle. Wybrałem w pełni montaż przewlekany, aby ewentualnym naśladowcom mojego projektu było łatwo wszystko zlutować.
    Płytka wygląda tak:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Na płytce znajduje się PIC32MX250F128B, czyli główne serce układu, wraz z rezonatorem kwarcowym 8MHz. Do tego drobnica i złącza, jak również USB PICa wyprowadzone jest na piny (przyszłościowo).
    Pliki projektu Eagle można pobrać w załączniku:
    shield_vga...200227.zip Download (88.17 kB)Points: 4 for user
    Oraz pliki Gerber (dla płytkarni; jeśli nie chcemy generować ich sami):
    shield_vga...200227.zip Download (248.06 kB)Points: 3 for user


    Spis części - kosztorys
    Tutaj przedstawiam spis części wraz z ich dokładnymi opisami i nazwami pod jakimi można je znaleźć w sklepach (zdaję sobie sprawę z tego, że początkujący nie wie że np. złącze PS/2 to inaczej MDC6) i orientacyjnym kosztorysem.
    UWAGA: Drobnicę taką jak rezystory/kondensatory kupuje się po 50-100 sztuk, trudno jest tu podać cenę jednego elementu, więc podaje już ceny 'zbiorowe', dlatego w cenniku wygląda tak jakby kilka rezystorów kosztowało 1 zł, ale oczywiście wcale tak nie jest.

    Element Ilość Opis Cena
    PIC32MX250F128B 1 32-bitowy mikrokontroler w obudowie DIP28, powinien mieć wgrany wsad, możecie wgrać go sami z pomocą PICKIT3 lub podobnego programatora, bądź poprosić o to kogoś 15 zł
    Podstawka 28DIP 1 Podstawka DIP28 pod mikrokontroler, by można było go łatwo wyjąć w razie uszkodzenia lub potrzeby zaprogramowania (choć można go też programować bez wyjmowanie z pomocą ICSP, więc nie jest to niezbędne) 1 zł
    Złącze MDC6, Mini DIN 6Pin 1 Złącze na klawiaturę PS/2. Można wylutować z płyty głównej od komputera 1.5 zł
    Złacze VGA D-SUB 15 pin, DB15 1 Złącze na monitor VGA. Ma 3 rzędy pinów po 5 pinów. Można wylutować z płyty głównej od komputera. 2 zł
    Złącze RCA dla sygnału video, pojedyncze 1 Potrzebne tylko jeśli chcemy podłączyć do shielda telewizor a nie monitor, można wylutować z różnego rodzaju sprzętu 1 zł
    Rezonator kwarcowy 8MHz 1 Źródło zegara PICa. Może być w obudowie HC49 1 zł
    Kondensator ceramiczny 100nF 4 Kondensator odsprzęgający zasilanie PICa 1 zł
    Kondensator ceramiczny lub tantalowy 10uF 1 Kondensator wymagany przez PIC na pinie VCAP. Najlepiej low-ESR. 1 zł
    Kondensator ceramiczny 27pF 2 Dwa kondensatory dla oscylatora 8MHz od PICa 1 zł
    Rezystor 10k 2 Jeden rezystor 10k potrzebny jest dla pinu MCLR (RESET) od PICa, drugi do dzielnika napięcia przy pinie RxD od UART 1 zł
    Rezystor 4.7k 2 Rezystory pull-up od podłączenia PS/2 1 zł
    Rezystor 150 1 Rezystor do generowania poziomów sygnału HSYNC 1 zł
    Rezystor 470 1 Rezystor do generowania poziomów sygnału HSYNC 1 zł
    Rezystor 220 1 Rezystor do generowania sygnału VGA-VIDEO 1 zł
    Rezystor 100-1000R 1 Rezystor dla diody LED, jego wartość nie jest krytyczna i zależy też od tego jakiej diody użyjemy 1 zł
    Gniazdo szpilkowe 1x10 2.54mm długie 1 Inaczej pinheader, do podłączenia z Arduino 1.5 zł
    Gniazdo szpilkowe 1x8 2.54mm długie 2 Inaczej pinheader, do podłączenia z Arduino 1.5 zł
    Gniazdo szpilkowe 1x6 2.54mm długie 1 Inaczej pinheader, do podłączenia z Arduino 1.5 zł
    Listwa szpilkowa Goldpin 1x5 2.54mm 1 Jako złącze ICSP do programowania PICa. Nie potrzebujemy go jeśli dostaniemy PICa z wgranym wsadem od kogoś 1 zł
    Listwa szpilkowa Goldpin 2x3 2.54mm 1 Podwójny pinheader na PCB podpisany jako BAUD_SEL, na nim wybieramy prędkość transmisji UART z pomocą zworek 1 zł
    Dioda LED 1 Dowolny kolor, nie jest niezbędna do uruchomienia płytki, ale jej miganie informować nas będzie o aktywności układu 1 zł
    Zworka 3 Zworki przydadzą się nam przy ustawianiu prędkości transmisji BAUD z którą shield będzie komunikować się z Arduino 1 zł

    Dodatkowo oczywiście potrzeba PCB - w razie czego mam kilka.
    Bez PCB całość zamyka się w jakiś 30-40 zł, chociaż tak naprawdę jak ktoś ma mały zbiór części to pewnie kupować będzie tylko PICa...

    Lutowanie płytki
    Tutaj opiszę krok po kroku jak całość zlutowałem.
    Montaż całości jest bardzo prosty i przyjemny, bo tak jak już wspomniałem, wszystko zostało zaprojektowane z myślą o początkujących - dlatego nie użyłem SMD (montażu powierzchniowego).
    PCB pod projekt oczywiście nie wytrawiałem sam, tylko zamówiłem z Chin:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Jeśli ktoś chce, to kilka jeszcze tych płytek mam.
    Złącza VGA oraz PS/2 wziąłem z starej płyty głównej od komputera:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Odlutowywanie ich opalarką poszło dość szybko:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Odzyskane elementy z komputera:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Po wylucie warto jeszcze się upewnić, że nie ma na nich resztek cyny która może robić zwarcia.
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Złącze RCA dla wyjścia sygnału PAL/NTSC pod starsze telewizory z kolei wziąłem z szuflady, też z wylutu ze złomu elektronicznego, tyle że było podwójne i musiałem je przerobić::
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    W ten sposób przygotowałem sobie zestaw elementów:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Niestety pierwsza wersja PCB miała mały błąd na schemacie - jeden z pinów był podłączony do masy zamiast do zasilania. Wersja z załącznika jest już poprawna, ale ja musiałem to u siebie naprawić. Poradziłem sobie z tym poprzez odpowiednie poszerzenie jednego z otworów, usunięcie z niego miedzi, zaizolowanie pinu z podstawki i dodanie zworki:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji

    Następnie zacząłem lutować pozostałe elementy. Rezystory:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Kondensatory:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Złącza:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Złacza cd:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Reszta:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Prawie gotowy shield (kondensatorów 10-ileś pico nie miałem pod ręką):
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Zostało tylko zaprogramować...

    Wgrywanie firmware na PIC32
    Jeśli sami składamy shielda to niestety po jego zlutowaniu trzeba raz wgrać firmware na znajdujący się na pokładzie PIC32. Ewentualnie możemy dostać PIC32 już z wgranym wsadem, lub poprosić kogoś z forum o jego zaprogramowanie dla nas.
    Ja zaprogramowałem go z pomocą PICKIT3:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Użyłem do tego narzędzia MPLAB X IPE v5.20 na Windowsie:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Ale to jest jednokrotny proces, nie trzeba go powtarzać, więc do korzystania z tego shielda oczywiście nie potrzebujemy programatora PIC.
    W razie czego, wsad (plik .hex dla PICa) do pobrania jest tutaj:
    Firmware-v...shield.zip Download (87.27 kB)
    A tu jego źródła:
    Terminal_S..rce.zip Download (571.1 kB)

    Lutowanie zworek na płytce
    Po zlutowaniu płytki trzeba jeszcze dodać kilka zworek.
    Pierwsza z nich to wybór pinu TX od UART. Ja wybrałem pin numer 2 z Arduino:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Druga zworka którą musimy zrobić to wybór pinu RX od UART (jest na spodzie PCB); ja wybrałem pin 3:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Ostatnia niezbędna zworka to wybór koloru VGA. Bez niej nie będzie obrazu. Ja wybrałem G - zielony.
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji

    Shield na Arduino
    Po zlutowaniu wszystkiego, założeniu zworek i wgraniu firmware wystarczy tylko założyć shielda na Arduino i można sterować monitorem z poziomu skeczu, jak również odbierać znaki z klawiatury w skeczu.
    Nie potrzeba żadnego lutowania, kabelków, po prostu bierzemy Arduino:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    I nakładamy na niego mój shield:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Od tego momentu możemy obsługiwać monitor VGA i klawiaturę PS/2 poprzez bibliotekę Serial (software lub nie; zależy jakie piny wybierzemy) od Arduino.
    Dokładna dokumentacja protokołu komunikacji ze shieldem znajduje się tutaj:
    TerminalEs...eCodes.pdf Download (19.42 kB)

    Wybór baud rate komunikacji z Arduino
    Prędkość komunikacji UART z Arduino wybiera się tak jak w pierwowzorze z pomocą trzech zworek na PCB.
    Znajdują się one tutaj:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Wartości poszczególnych ich konfiguracji pokazuje obrazek:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Należy pamiętać by tą samą prędkość komunikacji UART ustawić w naszym kodzie Arduino, w przeciwnym razie shield nic od nas nie odbierze (ani my od shielda).

    Organizacja środowiska testów shielda
    Chciałbym tutaj tylko podkreślić, że przedstawione tu przykłady naprawdę wymagają do uruchomienia tylko:
    - Arduino UNO
    - opisanego tu shielda
    - zasilacza 5V dla Arduino
    - monitora VGA
    - klawiatury PS/2
    Tak wyglądało to u mnie:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Praktycznie jest to mini-komputerek dla miłośników Arduino:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Zbliżenie na jego serce - mój shield na górze, na spodzie Arduino UNO:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    I jeszcze zdjęcie zasilacza, którym zasiliłem Arduino. Zwykła ładowarka od telefonu. Wszystko działa bez komputera w pobliżu.
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji

    Mini-program 'Hello world'
    Aby ułatwić zainteresowanym rozpoczęcie działania ze shieldem przygotowałem prosty program który realizuje zarówno wyświetlanie tekstu jak i odbiór tekstu z klawiatury.
    Uruchamiałem go tak jak na zdjęciach powyżej. Jedynie podpinałem dodatkowo laptopa do Arduino by móc wgrywać skecz.
    Przy uruchamianiu programu należy pamiętać o:
    - o tym czy piny mySerial RX/TX zgadzają się z tymi na których mamy zworkę na PCB
    - o tym czy baud rate ustawiony dla mySerial zgadza się z tym wybranym na PCB zworkami
    Zasadniczo to tyle. Nie powinno być trudności z uruchomieniem. Oto kod:
    Code: c
    Log in, to see the code

    Kod korzysta z biblioteki SoftwareSerial aby poprzez piny 2 i 3 Arduino komunikować się ze shieldem. Najpierw wyświetla na nim tekst, a potem nasłuchuje naciśnięć klawiszy od klawiatury PS/2 i w razie takiego naciśnięcia podejmuje akcje.
    Rezultat działania:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Po wciśnięciu kilka razy przycisków 1, 2, 3:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji

    Program demonstracyjny
    Program demonstracyjny opracowałem samodzielnie od zera w Arduino IDE. Zawiera on mój własny parser wyrażeń matematycznych oraz system rysowania wykresów funkcji na monitorze VGA. Funkcje oczywiście podajemy mu poprzez klawiaturę na PS/2.
    Przy podawaniu funkcji obsługiwany jest backspace - można kasować znaki.
    Parser wspiera następujące operacje:
    - dodawanie, odejmowanie, mnożenie, dzielenie (wraz z kolejnością działań)
    - zmienna 'x' (dla obliczania wartości dla x oraz rysowania wykresu)
    - funkcja sinus
    - stała pi
    - różne kombinacje operacji są poprawnie parsowane, również poprawnie parsuje spacje
    Główne menu programu prezentuje się tak:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Wybieramy na nim opcje z pomocą klawiszy 1, 2, 3, 4 na klawiaturze PS/2.
    Po wyborze opcji 1 (obliczanie funkcji) mamy:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Możemy tu wpisać dowolną funkcję (w ramach tego co wspiera mój parser), przykładowo:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Po zatwierdzeniu enterem możemy podawać wartości X dla których program ma policzyć daną funkcję. Przykładowo:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Wychodzimy z tego z pomocą klawisza Escape.
    Po wyborze opcji 2 (rysowanie wykresu) mamy:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Analogicznie, możemy tu wpisać funkcję:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Po zatwierdzeniu klawiszem enter program rysuje jej wykres:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Wybór zakresu wykresu oraz jego przesunięcia nie jest dostępny dla ustawienia dla użytkownika, ale dodanie tego nie jest żadnym problemem. Po prostu zostawiam to jako ćwiczenia dla ewentualnych zainteresowanych moim kodem.

    Po wyborze opcji 3 (self-test parsera) mamy:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji

    To jest po prostu mini-test programu na bazie funkcji wpisanych do pamięci. Używałem tego w trakcie pisania kodu do sprawdzania czy wszystko jest okej.

    Program demonstracyjny - galeria
    Teraz pokażę więcej zrzutów ekranu z mojego programu demonstracyjnego - parsera wyrażeń matematycznych.
    Przypominam, że każde pokazane tu wyrażenie jest wpisywane poprzez klawiaturę PS/2 do Arduino, one nie są dane 'na sztywno' w kodzie.
    Liczenie wartości funkcji sinus:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Liczenie wartości wielomianu:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Stała pi:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Wykres funkcji liniowej:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Wykres funkcji kwadratowej:
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Wykres wyrażenia 4-1 (stała; dla testu parsera):
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Wykres funkcji 2*sin(3x):
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Wykres funkcji sin(x*x)
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Wykres funkcji x * sin(x)
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Arduino VGA Shield wraz z mini demkiem - parsing i rysowanie wykresów funkcji
    Kod źródłowy programu (.ino) demo do pobrania:
    mathParser...200227.zip Download (4.08 kB)Points: 4 for user
    UWAGA: Program demonstracyjny nie posiada obsługi błędów i jego zachowanie w przypadku wpisania niepoprawnego zapisu równania jest niezdefiniowane.

    Co można ulepszyć w projekcie?
    Propozycji co do ulepszenia shielda z chęcią posłucham od Was, ale mam już pewne wrażenia co można by zmienić:
    - można by zamienić miejsca do lutowania (te zworki 'cynowe') na zwykłe zworki, by jeszcze bardziej ułatwić użytkownikom konfigurację shielda
    - można by spróbować generować obraz RGB (ale użyłem biblioteki Geoff'a i ona generuje jednokolorowy obraz)
    - można by przerobić całość na SMD i na pokładzie zmieścić dodatkowo pamięci
    - można by dać stabilizator 3.3V na płytkę shielda by nie przeciążać tego od Arduino
    - ostatecznie można by całość przenieść na jakąś lepsza platformę do generowania sygnałów video (FPGA), ale dopiero zaczynam z tym przygodę dzięki pewnej książce...
    Z kolei w projekcie parsera matematycznego/rysowania funkcji można by ulepszyć dużo. Kod jego nie był pisany na pokaz, był tworzony na szybko, ale mimo wszystko go tu umieszczam. Może ktoś zechce go ulepszyć.

    Podsumowanie
    Myślę, że zaprezentowany przeze mnie shield Arduino może być ciekawym projektem nawet dla bardzo początkujących elektroników. Jego uruchomieniu jest bardzo proste a sama obsługa z poziomu Arduino wręcz banalna. Użycie mojego shielda otwiera miłośnikom UNO nowe możliwości i z pewnością daje im szanse na to by lepiej wykorzystali swoje Arduino. Oczywiście zdaję sobie sprawę z tego, że można tworzyć video na samym Arduino (np. biblioteka TVout), ale mój shield to znacznie ułatwia i zmniejsza użycie pamięci względem takich rozwiązań.
    Wszystkie pliki projektowe (kody, PCB, źródła płytki) załączam w temacie.

    Cool! Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    p.kaczmarek2
    Level 25  
    Offline 
  • TermopastyTermopasty
  • #2
    OliJot86
    User under supervision
    Bardzo fajna i przydatna konstrukcja ale dlaczego komunikacja przez UART a nie SPI lub I2C?
    UNO, NANO ma jeden UART użyty do konwertera USB.
  • TermopastyTermopasty
  • #3
    piotr_go
    DIY electronics designer
    Quote:
    resolution is 480x288 pixels in VGA 24 line mode, 480x432 pixels in VGA 36 line mode

    Dziwaczne te rozdzielczości. Pixele są jakoś dublowane? Jaką rozdzielczość wykrywa monitor?
  • #4
    ArturAVS
    Moderator of HydePark/Cars
    p.kaczmarek2 wrote:
    możliwość generowania obrazu PAL/NTSC dla telewizorów

    I tu widzę pewną nieścisłość. PAL/NTSC to sygnały TV kolorowej, a układ generuje sygnał mono. Chyba że chodzi o sygnały synchronizacji w tych standardach.
  • #5
    khoam
    Level 39  
    OliJot86 wrote:
    ale dlaczego komunikacja przez UART a nie SPI lub I2C?
    UNO, NANO ma jeden UART użyty do konwertera USB.

    Autor zastosował SoftwareSerial zamiast sprzętowego UART. Natomiast prędkość przesyłania danych powyżej 38400 z użyciem SoftwareSerial jest dość iluzoryczna.
  • #7
    grendel123
    Level 15  
    Niestety ten terminal ma ogromną wadę - wyświetla obraz w tak specyficznej rozdzielczości, że żaden z moich domowych monitorów nie potrafi jej obsłużyć.