Zdesperowany – Nowoczesne interfejsy użytkownika dotykowe z Pythonem

Twórz wydajne, wielodotykowe interfejsy użytkownika bezpośrednio w Pythonie – bez konieczności stosowania C++. Dzięki naszemu modułowi Ezpire dla Kivy możesz w pełni wykorzystać akcelerację sprzętową naszych platform i.MX 8M Plus, wygodnie pisząc logikę aplikacji w Pythonie. Zaoszczędź sobie kłopotu z konfiguracją sterowników ekranu i stosów graficznych: oferujemy w pełni funkcjonalną implementację demonstracyjną i szablon projektu dla i.MX 8M Plus, który idealnie łączy akcelerację sprzętową i obsługę dotyku.

Czym jest Kivy?

Kivy to framework Pythona o otwartym kodzie źródłowym do tworzenia aplikacji wielodotykowych. Idealnie nadaje się do systemów wbudowanych, ponieważ nie wymaga rozbudowanego systemu okienkowego (takiego jak X11 czy Wayland), ale może renderować bezpośrednio do bufora ramki za pośrednictwem OpenGL ES 2.0. Umożliwia to płynny, akcelerowany przez GPU interfejs użytkownika przy minimalnym zużyciu zasobów i maksymalnej swobodzie projektowania („Naturalne Interfejsy Użytkownika”), a wszystko to kontrolowane jest za pomocą prostego kodu Pythona.

Nasza usługa: gotowy interfejs użytkownika w Pythonie

Dzięki Ezpire eliminujemy przeszkodę związaną z łączeniem Pythona z akceleracją sprzętową. Nasze wsparcie Kivy obejmuje:

  • Wstępnie skonfigurowany obraz Yocto: Rozpocznij natychmiast pracę z obrazem zawierającym już Python 3, Kivy i wszystkie niezbędne sterowniki graficzne (GLES, DRM/KMS).

  • Włączono przyspieszenie sprzętowe: Zadbaliśmy o to, aby Kivy wykorzystywał procesor graficzny (Vivante) i.MX 8M Plus zamiast obciążać procesor.

  • Wersja demonstracyjna gotowa do użycia natychmiast: Nasz obraz phytec-kivy-demo pokazuje przykład działania sterowania dotykowego, widżetów i optymalizacji wydajności na naszym sprzęcie. Dzięki niemu możesz szybko rozpocząć pracę nad swoim projektem.

  • Kompleksowy przewodnik integracji: Nasza dokumentacja przeprowadzi Cię krok po kroku: od wgrania obrazka do pierwszego przycisku „Hello World” po zbudowanie własnej warstwy Yocto za pomocą meta-kivy.

Więcej szczegółów technicznych (rozszerzalne)

Nie tylko zainstalowaliśmy Kivy, ale także zoptymalizowaliśmy go pod kątem zastosowań przemysłowych na i.MX 8M Plus.

Używamy i utrzymujemy przepisy Yocto, które Kivy bezproblemowo integruje z naszymi BSP Integrujemy go. Opieramy się na meta-kivy i rozszerzamy go o specyficzne dla PHYTEC modyfikacje w meta-phytec. W przepisie python3-kivy_%.bbappend upewniamy się, że poprawne biblioteki EGL i GLES sterownika i.MX są połączone, aby akceleracja sprzętowa działała.

Kivy domyślnie działa na naszych obrazach w trybie EGLFS o wysokiej wydajności (lub bezpośrednio na DRM/KMS), bez obciążenia menedżera pulpitu. Pozwala to na szybsze uruchamianie systemu, mniejsze zużycie pamięci RAM i bezpośredni dostęp do GPU. Wstępnie skonfigurowaliśmy również zmienne środowiskowe (KIVY_BCM_DISPMANX_ID, KIVY_GL_BACKEND), aby zapewnić prawidłowe przekazywanie zdarzeń wielodotykowych z naszych wyświetlaczy pojemnościowych (zestawów phyCAM/display) do aplikacji Python.

Nasza aplikacja demonstracyjna na GitHubie to coś więcej niż tylko gadżet – może służyć jako szablon architektoniczny.

  • Wykazuje wyraźne oddzielenie interfejsu użytkownika (język KV) i logiki (Python).

  • Pokazuje, jak używać menedżerów ekranów w interfejsach użytkownika składających się z wielu stron.

  • Jest to test sprawdzający, czy Twój zestaw narzędzi jest skonfigurowany prawidłowo.

Zalecany sprzęt

W przypadku interfejsów graficznych opartych na Pythonie i korzystających z Kivy zalecamy platformy o wysokiej wydajności z dedykowanym procesorem graficznym, takie jak nasze phyBOARD-Pollux (i.MX 8M Plus)Zintegrowany NPU i wydajny procesor graficzny i.MX 8M Plus sprawiają, że płyta idealnie nadaje się do nowoczesnych aplikacji HMI wykorzystujących język Python (np. rozpoznawanie obrazów wspomagane sztuczną inteligencją bezpośrednio w interfejsie użytkownika).