GUIX Studio: mikrokontrolery Renesas Synergy w aplikacjach graficznych [1]
Uwaga! Druga część artykułu jest dostępna pod adresem.
W każdej aplikacji wymagającej interakcji z użytkownikiem powinien być wbudowany interfejs użytkownika. Coraz częściej do jego implementacji wykorzystuje się wyświetlacze graficzne o różnej rozdzielczości. Zastosowanie takiego wyświetlacza znacznie podnosi atrakcyjność urządzenia i pozwala na umieszczenie na ekranie wielu przydatnych informacji. Z drugiej strony zaprojektowanie dobrego interfejsu użytkownika z wyświetlaczem graficznym wymaga dobrego projektu i poza tym jest dość skomplikowane programowo i wymaga odpowiednich zasobów mikrokontrolera (moc obliczeniowa, interfejsy sterujące i pamięć).
Moduł ewaluacyjny SK-S7G2 firmy Renesas (fotografia 1), dedykowany do prototypowania i testowania aplikacji IoT, jest wyposażony w graficzny kolorowy wyświetlacz TFT o przekątnej 2,4 cala i rozdzielczości 240×320 pikseli. Panel wyświetlacza ma wbudowany sterownik ILI9341V produkowany przez firmę ILTEK. Komunikacja pomiędzy sterownikiem, a mikrokontrolerem odbywa się poprzez równoległą magistralę pracującą w przemysłowym standardzie Intel 8080 lub przez magistralę SPI. Magistrala może mieć szerokość 8, 9, 16 lub 18 bitów. Opcjonalnie dane można przesyłać za pomocą szeregowej magistrali SPI. W module SK-S7G2 wykorzystywana jest 16-bitowa magistrala równoległa wykorzystująca w sumie 27 linii portów mikrokontrolera. Moduł wyświetlacza jest połączony do płytki za pomocą taśmy elastycznej i specjalnego złącza. Jeżeli linie sterujące wyświetlaczem są potrzebne do innych celów, to można taśmę wypiąć ze złącza.
Na ekranie jest umieszczony dotykowy panel rezystancyjny współpracujący ze sterownikiem SX8656 produkowany przez firmę Semtech. Zmiany rezystancji są mierzone (metodą techniczną) przez przetworniki analogowo cyfrowe o rozdzielczości 12-bitowej. Sterownik komunikuje się z mikrokontrolerem poprzez szeregowa magistralę I2C.
Jak już wspomniałem oprogramowanie wyświetlacza graficznego jest pracochłonne. Żeby zaoszczędzić czas potrzebny na napisanie na przykład procedur rysowania elementów wykorzystuje się gotowe biblioteki prekompilowane, lub z kodami źródłowymi, albo aplikacje generujące procedury na podstawie graficznego projektu ekranu (ekranów) wyświetlacza. Obecnie takie biblioteki i aplikacje mogą być dystrybuowane bezpłatnie bez ograniczeń licencyjnych. W tym artykule pokażę krok po kroku jak zaprojektować i zaprogramować prosty ekran wyświetlający informację na ekranie wyświetlacza modułu.
Do tego celu będziemy potrzebowali:
- środowisko projektowe Synergy e2studio,
- bibliotekę Synergy Software Platform SSP,
- aplikację GUIX Studio.
Wszystkie te programy są dostępne bezpłatnie, po zarejestrowaniu się na stronach firmy Renesas.
Projekt w środowisku e2studio
Pracę zaczynamy od utworzenia i wstępnego skonfigurowania nowego projektu w środowisku e2studio. W tym momencie zakładamy, że e2studio zostało wcześniej skonfigurowane do wspierania projektów dla platformy Synergy i zainstalowano kompilator GCC ARM Embeded z plikiem licencji. Ponadto trzeba wcześniej pobrać ze strony Renesasa i zainstalować pakiet Synergy Software Package SSP. Te czynności zostały opisane w artykule opisującym pakiet e2studio.
Najpierw tworzymy nowe środowisko projektowe (workspace) File->Switch Workspace->Other (rysunek 2). W oknie Workspace Launcher nadajemy unikalną nazwę, w naszym przypadku będzie to GUI_APP (rysunek 3). Po kliknięciu na OK otworzy się okno pokazane na rysunku 4. Wybieramy opcję Workbench i otwiera się okno e2studio. Teraz pora na nowy projekt. E2studio tworzy nowy projekt po wybraniu File->New->Synergy project – rysunek 5.