Demo projektu HMI jachtu

Stworzyliśmy nowoczesny i elegancki interfejs HMI dla jachtów, wykorzystując Qt, QML oraz możliwości systemu Embedded Linux. Projekt stanowi gotową do wdrożenia bazę dla produkcyjnych aplikacji z branży morskiej.

Qt frameworkC++Figma

Wyzwanie projektu

  • Stworzenie atrakcyjnego wizualnie, wieloekranowego interfejsu - w tym podglądu jachtu na żywo oraz interaktywnej mapy
  • Maksymalne wykorzystanie możliwości ograniczonego sprzętu
  • Utrzymanie płynnego i responsywnego działania dzięki starannemu zarządzaniu GPU i pamięcią
  • Efektywne zarządzanie zasobami dla każdej animacji i każdego efektu wizualnego

Jak to działa

W zależności od użytej platformy sprzętowej ta sama aplikacja działa na dwóch różnych środowiskach Embedded Linux - na dedykowanym obrazie zbudowanym przy użyciu Yocto Project lub na systemie Torizon OS firmy Toradex. Własny obraz oparty na Yocto zapewnia pełną kontrolę nad każdą warstwą systemu, co sprawdza się w bezpiecznych urządzeniach klasy produkcyjnej. Z kolei Torizon OS oferuje szybszą ścieżkę wdrożenia opartą na kontenerach, wraz z gotową obsługą aktualizacji OTA oraz narzędziami do zarządzania flotą urządzeń.

Ponieważ jest to wersja referencyjna bez podłączonych czujników morskich, stworzyliśmy warstwę symulacji danych w czasie rzeczywistym. Dzięki temu cały interfejs można zaprezentować od początku do końca w sposób odwzorowujący działanie rzeczywistej jednostki. Wskaźniki i zegary aktualizują się co sekundę z kontrolowaną zmiennością danych. Ta sama architektura jest gotowa do obsługi rzeczywistych danych z czujników w docelowym wdrożeniu produkcyjnym.

Animacje są obecne na niemal każdym ekranie - obejmują wskaźniki, ruch kompasu, poziom wody, sygnalizację oświetlenia, elementy sterujące oraz pokrętło radia. Starannie zarządzane przejścia i spójne krzywe animacji zapewniają płynne działanie zbliżone do aplikacji desktopowych, co jest szczególnie istotne przy ograniczonych zasobach sprzętu embedded.

Strony są ładowane tylko wtedy, gdy są potrzebne, a po przejściu do innego widoku usuwane z pamięci. Pozwala to ograniczyć wykorzystanie pamięci i GPU, a jednocześnie zapewnia, że każdy ekran otwiera się w czystym stanie. W zależności od platformy docelowej aplikacja może wykorzystywać wideo, animowane pliki GIF lub statyczne tła. Starannie dobrane zasoby i ukierunkowane optymalizacje pozwalają zachować płynność animacji, przejść i efektów wizualnych nawet na sprzęcie embedded o ograniczonych zasobach.

Wspierane płytki

Demo Yacht HMI zostało przetestowane i zoptymalizowane pod kątem różnych platform i może zostać wdrożone na:

  • platformach embedded opartych na NXP i.MX8
  • module Toradex Verdin i.MX8M Plus Quad 4 GB SoM z płytą bazową Toradex Mallow V1.1C
  • Renesas RZ/G3E Evaluation Board Kit
  • dowolnej platformie Embedded Linux obsługującej Qt 6 i sterownik wyświetlacza zgodny z OpenGL

Pracujemy z najlepszymi i korzystamy z ich technologii

Realizujemy komercyjne projekty na sprawdzonych platformach sprzętowych i programistycznych oraz jesteśmy oficjalnymi partnerami firm, które je rozwijają. Dzięki temu, gdy wybierasz płyty, wyświetlacze i moduły SoM do swojego produktu, możemy doradzić Ci na podstawie realnego doświadczenia i pomóc dobrać odpowiedni sprzęt.

Partnerzy
Qt Service Partner

Autorski projekt w Figmie

Interfejs jachtu powinien być równie dopracowany i prestiżowy jak sama jednostka - generyczne HMI może obniżyć odbiór całego produktu. Nasz zespół zaprojektował cały projekt w Figmie wewnętrznie, tak aby odpowiadał charakterowi marki z segmentu premium. A ponieważ projektujemy i wdrażamy wszystko w jednym zespole, gotowy interfejs wiernie odwzorowuje projekt i nic nie ginie po drodze.

Oferujemy również projektowanie UI/UX jako osobną usługę - dopasowaną do Twojego produktu, marki i platformy sprzętowej.

POROZMAWIAJMY

Zaangażowani w projekt

Jakub Wincenciak

Jakub Wincenciak

Starszy inżynier pracujący niemal wyłącznie nad oprogramowaniem embedded i HMI. Odpowiadał za rozwój aplikacji Yacht HMI - interfejs w Qt Quick, animacje oraz architekturę zoptymalizowaną pod kątem wydajności, która stoi za warstwą wizualną projektu.

Przemysław Adam Sowa

Adam Sowa

CTO w Somco Software. Odpowiadał za niskopoziomową część projektu - optymalizację wydajności na docelowym sprzęcie, portowanie aplikacji na platformę Renesas oraz przygotowanie środowiska Embedded Linux zarówno w oparciu o własny build Yocto, jak i Torizon OS.

Komentarz od naszego inżyniera

Największym wyzwaniem było uruchomienie rozbudowanego graficznie interfejsu - z podglądem jachtu na żywo, interaktywną mapą i licznymi animacjami - na platformach embedded, takich jak Renesas i i.MX8, gdzie zasoby GPU i pamięci są ograniczone. Na desktopie wszystko po prostu działa, ale na docelowym sprzęcie każda animacja i każdy efekt muszą być świadomie zoptymalizowane pod kątem kosztu zasobów. Ładujemy strony tylko wtedy, gdy są potrzebne, i usuwamy je po ich opuszczeniu. Dla każdej platformy dobieramy odpowiedni rodzaj tła - wideo, GIF lub statyczną grafikę - dzięki czemu interfejs działa płynnie jak na desktopie, nie przekraczając możliwości sprzętu. - Jakub Wincenciak, Starszy inżynier oprogramowania, twórca demo

Porozmawiajmy o Twoim projekcie

Łukasz Kosiński

Łukasz Kosiński

CEO, Somco Software

Na co dzień pracujemy z Qt i oprogramowaniem wbudowanym. Trzykrotnie otrzymałem tytuł Qt Champion.

Wiadomości wysłane przez ten formularz trafiają bezpośrednio do mojej skrzynki odbiorczej. Czytam je i odpowiadam na nie - zazwyczaj w ciągu jednego dnia roboczego.

Połącz się ze mną na LinkedIn

Administratorem danych osobowych jest Somco Software sp. z o.o., ul. Gen. Ottokara Brzozy-Brzeziny 13, 05-220 Zielonka, KRS: 855688. Dane osobowe przetwarzane są w celu udzielenia odpowiedzi na pytanie zawarte w formularzu kontaktowym. Więcej informacji, w tym opis praw przysługujących osobom, których dane dotyczą, jest dostępnych w klauzuli informacyjnej.