Zmiana czcionki w MAX7456 - smopihub/smopiVTI GitHub Wiki

Układ scalony MAX7456, który jest sercem użytego przeze mnie OSD Shield, ma możliwość zmiany wyświetlanych czcionek i znaków graficznych. W bibliotece obsługi tego układu, w podkatalogu examples/UploadFont/, został załączony przykładowy program. Krój czcionek i znaków graficznych domyślnie wgranych do układu, delikatnie mówiąc, nie zachwyca:

Dlatego zdecydowałem się na wgranie zestawu "CUSTOM", który prezentuje się zdecydowanie lepiej:

W tym celu należy otworzyć plik źródłowy UploadFont.ino i w sposób normalny wgrać do VTI. Po restarcie Arduino, na ekranie podłączonego pod złącze TV OUT odbiornika, powinniśmy zobaczyć coś takiego:

Definicja czcionek i znaków znajduje się w plikach: CUSTOM.mcm, ASCII.mcm oraz MAXIM.mcm (domyślny). Ja zdecydowałem się na wgranie pliku CUSTOM.mcm. W tym celu musimy posłużyć się oprogramowaniem umożliwiającym transmisję szeregową w standardzie XMODEM. W systemie Windows może to być np. HyperTerminal. Osobiście wykorzystałem program Minicom w systemie Xubuntu 14.04 LTS. Po jego uruchomieniu i ustawieniu prawidłowych parametrów transmisji (38400 8N1, w moim systemie port: /dev/ttyACM0) powinniśmy zobaczyć w oknie terminala komunikat informujący o gotowości urządzenia do transmisji danych:

Naciskamy sekwencję klawiszy Ctrl-A, Z i S oraz wybieramy do przesłania plik CUSTOM.mcm:

i protokół transmisji XMODEM:

Cały proces powinien zająć kilkadziesiąt sekund:

Po ponownym uruchomieniu VTI, na ekranie podłączonego pod złącze TV OUT odbiornika, powinniśmy zobaczyć zestaw nowych czcionek i znaków:

Ostatnim krokiem jest ponowne wgranie oprogramowania VTI. Po restarcie urządzenia możemy się cieszyć nowymi czcionkami:

UWAGA! Aby po zmianie czcionek VTI działał prawidłowo, koniecznie musimy wprowadzić w kodzie niewielką poprawkę. Linię:

// OSD.setCharEncoding( MAX7456_ASCII ); // Only needed if ascii font.

zmieniamy (usuwamy komentarz) na:

OSD.setCharEncoding( MAX7456_ASCII ); // Only needed if ascii font.