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.