Graficzne interfejsy użytkownika – możliwości najnowszych mikrokontrolerów
Wyniki badań preferencji użytkowników, analizy rynku, opinie klientów OEM oraz prognozy producentów układów półprzewodnikowych są zgodne: Projektanci systemów wbudowanych muszą dostosować się do rosnących wymagań dotyczących funkcjonalności, trybów pracy i interfejsów użytkownika, stawianych ich produktom.
Choć idea tworzenia interfejsów graficznych i dotykowych została zapoczątkowana głównie przez producentów urządzeń w rodzaju smartfonów i tabletów, zapotrzebowanie na wygodniejszą i bardziej atrakcyjną obsługę stało się powszechne na wielu innych rynkach. Motoryzacja, urządzenia przemysłowe, medyczne, a także sprzęt wojskowy i lotniczy również stawiają rosnące wymagania. Rozwój interfejsów HMI napędza kilka czynników:
- Czujniki, procesory i urządzenia bezprzewodowe stają się coraz doskonalsze i jednocześnie coraz tańsze, pozwalają też, aby system śledził własną pracę.
- Kolejne pokolenie użytkowników, tzw. millenialsów, stawia nowe wymagania producentom.
- Wyświetlacze TFT są teraz tańsze niż monochromatyczne wyświetlacze STN były jeszcze pięć lat temu. Udoskonalone zostały także ekrany dotykowe, a ekrany pojemnościowe stały się powszechnie dostępne – oferują lepsze, bardziej interaktywne interfejsy od starszych ekranów rezystancyjnych.
- Firmy odkryły możliwości zwiększenia wydajności i obniżenia kosztów operacyjnych dzięki łatwym w użyciu i intuicyjnym interfejsom. Wymagają one mniej nauki i zmniejszają ryzyko wystąpienia błędu po stronie użytkownika.
W przeszłości przeprojektowanie produktu w celu dodania interfejsu graficznego było nie do pomyślenia w przypadku systemów opartych na mikrokontrolerze. Istniała wyraźna granica między systemami wbudowanymi opartymi na mikroprocesorze z rozbudowanymi możliwościami graficznymi i zaawansowanym systemem operacyjnym, takim jak Windows lub Linux, a urządzeniami wykorzystującymi mikrokontroler. Zazwyczaj nie wykorzystywały one systemu operacyjnego i nie miały do dyspozycji niczego bardziej zaawansowanego, niż segmentowy wyświetlacz LCD.
Obecnie jednak zwiększone możliwości mikrokontrolerów dają możliwość spełnienia oczekiwań użytkowników bez rezygnacji z preferowanej platformy sprzętowej. Jakie możliwości oferują producenci mikrokontrolerów w zakresie interfejsów użytkownika?
Dlaczego i w jaki sposób interfejsy HMI ewoluują?
Zanim zastanowimy się nad metodami implementacji i udoskonalanie interfejsów HMI, warto zrozumieć powody, dla których te interfejsy w ogóle warto poprawiać.
Pierwotną przyczyną rozwoju interfejsów HMI jest opracowanie nowych, doskonalszych układów półprzewodnikowych. Czujniki, transceivery radiowe i mikrokontrolery stały się tak wydajne i przy tym tak tanie, że producenci OEM są w stanie umieścić dużą ich liczbę w pojedynczych produktach, a także wykorzystać w większej liczbie produktów, niż kiedykolwiek. Na przykład w fabrykach daje to systemom automatyki możliwość śledzenia stanu urządzeń fabrycznych oraz wytwarzanych produktów jednocześnie, w czasie rzeczywistym. W medycynie umożliwia to z kolei ciągłe monitorowanie stanu pacjenta i zgłaszanie alarmów w przypadku przekroczenia bezpiecznych wartości.
W takich scenariuszach powstają ogromne ilości danych, które następnie są przesyłane do jednostek sterujących. W miarę rozwoju Internetu Przedmiotów dane te są stopniowo przenoszone do chmur, dzięki czemu wyniki analizy można poznać z dowolnego terminala podłączonego do Internetu. W wyniku tego procesu zakres i rodzaje dostępnych danych ulegają znacznym zmianom.
Innym czynnikiem jest zmiana samej grupy użytkowników, zwłaszcza pracowników niskiego szczebla – urodzonych w latach 80. i później. Dla nich systemy cyfrowe są naturalne, gdyż przyzwyczaili się do nich od dziecka (rys. 1). Co ciekawe, preferencje i styl pracy pokolenia millenialsów różni się od poprzedniego pokolenia. Starsi pracownicy oczekiwali, że zostaną przeszkoleni w celu realizacji konkretnego procesu i ocenieni na podstawie jego wykonania. Natomiast millenialsi wolą zrozumieć system, śledzić jego pracę na bieżąco i dokonywać własne decyzje w oparciu o otrzymane dane, zamiast powtarzać wyuczony proces.
W opisywanej sytuacji mamy zatem ogromną masę danych generowanych przez czujniki, możliwość transmisji i odbioru tych danych w czasie rzeczywistym oraz ludzi naturalnie skłonnych do przetwarzania i wykorzystania tych danych. Jest jasne, że proste segmentowe wyświetlacze LCD i sterowanie za pomocą przycisków nie jest wystarczające do obsługi złożonych systemów działających na takich zasadach.
Wyświetlacze muszą prezentować dane w postaci menu
Kluczowym czynnikiem jest dostępność Big Data – danych, z których można uzyskać wartościowe informacje. W tak różnych zastosowaniach, jak medycyna czy prognozowanie zużycia maszyn, występują pewne szeregi zjawisk zapisane w zbiorze danych lub w wielu strumieniach danych, które dostarczają cennych wskazówek. Natomiast ludzie najłatwiej i najszybciej dostrzegają te powiązania wzrokowo. Możemy dowiedzieć się więcej o złożonych zbiorach danych z wykresów, diagramów i histogramów, niż z ciągów tekstu i liczb.
Aby umożliwić użytkownikom to, w czym są dobrzy – dokonywanie decyzji w oparciu o bogate dane dostępne w czasie rzeczywistym – urządzenia wbudowane muszą je prezentować w postaci graficznej i umożliwiać intuicyjną interakcję z tymi danymi. Z tego powodu systemy muszą obsługiwać grafikę oraz interfejsy wielodotykowe.
Bardziej zaawansowane systemy graficzne, zdolne do obsługi strumieni wideo wysokiej rozdzielczości, można tworzyć w oparciu o takie procesory, jak np. rodzina i.MX firmy NXP Semiconductors. Są to układy oparte na rdzeniu ARM Cortex-A pracujące z systemem Linux lub Android. Rozwiązania tego typu są złożone i kosztowne zarówno pod względem sprzętu, jak i oprogramowania, a ich implementacja może stanowić duży problem dla osób, które dotąd nie programowały urządzeń z zaawansowanym systemem operacyjnym.
Jednak coraz więcej systemów operacyjnych pracuje na platformach wykorzystujących mikrokontroler. Często zdarza się, że użytkownicy mikrokontrolerów wolą pozostawać przy swych platformach, zamiast dokonywać migracji na mikroprocesory. Mikrokontrolery są znajomym rozwiązaniami programowanymi w C, które często pozwalają na wielokrotne wykorzystanie starszego kodu systemów działających na tej samej platformie. Migracja z mikrokontrolera na mikroprocesor pociąga za sobą ogromne zmiany, jednak można jej uniknąć.
Zatem, jak dobrze system oparty na mikrokontrolerze jest w stanie emulować zaawansowany interfejs HMI wykorzystujący mikroprocesor?
Obecnie firma STMicroelectronics oferuje użytkownikom swych 32-bitowych mikrokontolerów STM32F7 opartych na rdzeniu ARM Cortex-M7 możliwość obsługi wyświetlacza w rozdzielczości XGA (1024 x 768 pikseli). Układy z serii STM32F7x7, STM32F7x8 oraz STM32F7x9 mają wbudowany kontroler wyświetlacza TFT oraz kodek obsługujący grafiki JPEG (obrazek 2). Wszystkie mikrokontrolery z rodziny STM32F7 zawierają ponadto akcelerator graficzny Chrom-ART, który pozwala na szybkie renderowanie grafiki bez obciążania głównego procesora. Taki akcelerator przetwarza grafikę dwa razy szybciej, niż byłby to w stanie zrobić sam rdzeń. Poza renderowaniem grafiki 2D, akcelerator Chrom-ART oferuje też dodatkowe funkcje, takie jak konwersja formatu obrazu i przenikanie warstwa, dzięki czemu użytkownicy mikrokontrolerów mogą zrealizować dość zaawansowane efekty graficzne.
Wbudowana pamięć Flash o pojemności do 2 MB i 512 kB pamięci SRAM oferują dużo miejsca na przechowywanie grafiki oraz bufor obrazu wymagany przez akcelerator Chrom-ART. Interfejs MIPI-DSI dostępny w mikrokontrolerach z serii STM32f7X9 również bywa przydatny w aplikacjach wykorzystujących bogatą grafikę, ponieważ pozwala na bezpośrednią komunikację z czujnikami obrazu i kamerami.
Inni producenci mikrokontrolerów zapewniają podobne możliwości obsługi grafiki i wyświetlacza w swoich najbardziej wydajnych modelach. Układy PIC32 MX3 oraz MX4 firmy Microchip są przeznaczone dla systemów wbudowanych wyposażonych w wyświetlacz. Obsługują ekrany TFT oraz OLED do rozdzielczości WVGA (800 x 480 pikseli) i wykorzystują technologię wykrywania dotyku opracowaną przez Microchip. Właśnie Microchip oferuje szczególne wsparcie dla aplikacji graficznych, udostępniając darmową bibliotekę graficzną, a także intuicyjne i proste w obsłudze narzędzie Graphics Display Designer.
Rodziny mikrokontrolerów NXP Semiconductor LPC5460x oraz LPC54S60x opartych na rdzeniu ARM Cortex-M4 także są zoptymalizowane pod kątem bogatych interfejsów HMI. Obsługują one wyświetlacz LCD o rozdzielczości do 1024 x 768 i oferują możliwość łatwego podłączenia zewnętrznej pamięci QSPI Flash w celu przechowywania dużych grafik lub kodów programu. NXP dostarcza cały ekosystem obejmujący darmowe biblioteki graficzne, takie jak Segger emWin. Cypress Semiconductor ma również duże doświadczenie w obszarze wyświetlaczy sterujących – jest liderem na rynku zintegrowanych kontrolerów dla desek rozdzielczych pojazdów, które współcześnie oferują ekrany z grafiką 2D lub 3D.
Dla urządzeń przemysłowych i sprzętów domowych przeznaczona jest rodzina mikrokontrolerów FM4, które oferują zróżnicowane możliwości i funkcje. Na przykład seria mikrokontrolerów S6E2D oparta na rdzeniu ARM Cortex-M4 potrafi obsługiwać aplikacje z kolorowym wyświetlaczem TFT. Wykorzystany w niej układ graficzny jest oparty na układzie wykorzystywanym w mikrokontrolerach Traveo przeznaczonych do obsługi wielu przyrządów. Seria S6E2D oferuje 512 kB pamięci wideo RAM i obsługuje złożone warstwy obrazu, translację, odbicia i skalowanie przy minimalnym udziale rdzenia Cortex-M4. Pozwala ona na implementację zaawansowanej i efektownej grafiki znacznie taniej, niż konkurencyjne rozwiązania.
Dodanie wyświetlaczy graficznych rodzi nowe wymagania
Możemy się cieszyć z faktu, że wielu producentów mikrokontrolerów oferuje drogę migracji do swych najbardziej zaawansowanych modeli, które pozwalają na implementację rozbudowanych, kolorowych wyświetlaczy, a nawet animacji w rozdzielczości osiągającej Full HD. Dzięki temu możliwa jest implementacja bardzo efektownych wyświetlaczy dostosowanych do oczekiwań nowych użytkowników bez konieczności stosowania zupełnie nowej architektury i kompletnego systemu operacyjnego.
Jednak projektanci implementujący po raz pierwszy złożony interfejs graficzny muszą się liczyć z tym, że:
- Złożoność systemu gwałtownie wzrośnie.
- Dotrzymanie terminu projektu może być znacznie trudniejsze.
- Zużycie pamięci będzie dużo wyższe, co może wymagać dodatkowych kroków związanych z zarządzaniem pamięcią.
Bezdyskusyjnie aplikacja wbudowana z rozbudowanym interfejsem HMI wymaga systemu operacyjnego czasu rzeczywistego (RTOS), który zapewni ramy dla kolejkowania i zarządzania priorytetami oraz zarządzania pamięcią. Dostępnych jest bardzo wiele rozmaitych systemów RTOS, istnieje również FreeRTOS – jak sama nazwa wskazuje, jest on dostępny bezpłatnie i obsługuje mikrokontrolery większości producentów.
Projektanci powinni również wykorzystać możliwości, jakie producenci mikrokontrolerów oferują w zakresie obsługi narzędzi graficznych niezależnych dostawców. Na przykład narzędzie do projektowania i symulacji emWin firmy Segger jest dostarczane za darmo użytkownikom mikrokontrolerów ST oraz NXP.
Widoczny trend wzbogacania interfejsów nie ogranicza się tylko do zaawansowanej grafiki, ale też dotyczy kontroli za pomocą gestów i obsługi audio – zarówno na wyjściu, jak i na wejściu. Microchip oferuje tutaj interesujące możliwości w postaci swej technologii GestIC. Na polu interfejsów głosowych duże osiągnięcia ma firma XMOS, która zaimplementowała funkcje ochrony mikrofonów dalekiego zasięgu w swych procesorach xCORE-VOICE, umożliwiając sterowanie głosem urządzeń elektronicznych w dowolnym otoczeniu.