[3] JAVA i STM32 – ekspresowy kurs programowania z MicroEJ – obsługa ADC i DAC

Uwaga! Wszystkie opublikowane odcinki kursu są dostępne pod adresem.

Systemy wbudowane są coraz częściej wyposażane w kolorowe wyświetlacze graficzne. Umożliwiają one sterowanie oraz konfigurację urządzenia, a także prezentację danych. Rodzi to konieczność tworzenia aplikacji opartych na graficznych interfejsach użytkownika. Środowisko MicroEJ (JAVA na STM32) zawiera biblioteki ułatwiające ich przygotowanie. W tej części cyklu pokażemy przykład prostej aplikacji, napisanej w języku JAVA na STM32, umożliwiającej sterowanie przetwornikami ADC i DAC oraz prezentację uzyskanych wyników na wyświetlaczu zestawu STM32F429I-DISCO.

 

Przygotowanie platformy

Platforma potrzebna do uruchomienia opisywanej aplikacji musi zawierać szereg modułów. Są to między innymi:

  • MICROUI – obsługa wejść/wyjść,
  • MWT – framework do tworzenia widgetów, takich jak przyciski, suwaki, pola tekstowe, itp.,
  • SNI – wywoływanie funkcji C z aplikacji Javy.

Wymienione moduły zawiera platforma Full znajdująca się w środowisku MicroEJ (rysunek 1).

Rys. 1. Platforma Full zawiera moduły wymagane w tym projekcie

Biblioteka Widgets

Przy tworzeniu aplikacji warto użyć istniejących modułów i bibliotek dostarczających gotowych rozwiązań. Jedną z nich jest biblioteka Widgets zawierająca gotowe elementy interfejsów graficznych. Biblioteka z przykładami jest publicznie dostępna w serwisie github pod adresem: https://github.com/MicroEJ/ExampleJava-Widget. Archiwum ze źródłami można pobrać klikając przycisk Download ZIP na stronie projektu.

Po rozpakowaniu archiwum można zaimportować przykładowy projekt do MicroEJ wybierając File?Import, a z wyświetlonego okna opcję General?Existing Projects into Workspace (rysunek 2).

Rys. 2. Importowanie istniejącego projektu do MicroEJ

Aby sprawdzić możliwości biblioteki wystarczy uruchomić symulację klikając prawym przyciskiem myszy na nowo zaimportowany projekt i wybierając opcję Run As?Run Configurations… W konfiguracji Widgets STM32429I-DISCO Sim, w zakładce Execution, należy wybrać przygotowaną wcześniej platformę oraz zaznaczyć opcję Execute on SimJPF. W otwartym oknie symulatora można przetestować przykładową aplikację biblioteki Widgets (rysunek 3). Wykorzystuje ona panel dotykowy, który w symulatorze można kontrolować za pomocą myszy.

Rys. 3. Przykładowa aplikacja biblioteki Widgets

Przykład użycia biblioteki Widgets

Kolejnym krokiem jest utworzenie projektu korzystającego z biblioteki Widgets do sterowania przetwornikami mikrokontrolera. Należy to zrobić wybierając File?New?Java Project. W oknie tworzenia nowego projetu należy podaj jego nazwę i wybrać potrzebne moduły. Tym razem będą to:

  • EDC,
  • MICROUI,
  • MWT,
  • SNI.

Do projektu należy również dodać samą bibliotekę Widgets, która znajduje się we wcześniej pobranym archiwum ze strony github. Można to zrobić klikając prawym przyciskiem myszy na projekt i wybierając Properties. Na liście opcji należy wybrać Java Build Path, a w zakładce Libraries – Add External JARs… Następnie trzeba wskazać lokalizację pliku widgets.jar z pobranego archiwum (rysunek 4).

Rys. 4. Dodawanie biblioteki widgets.jar do projektu

Biblioteka Widgets zawiera gotowe komponenty umożliwiające tworzenie złożonych interfejsów użytkownika opartych m.in. o wyświetlacze graficzne i panele dotykowe. Poza komponentami służącymi użytkownikowi do interakcji z aplikacją, takimi jak np. przyciski i suwaki, biblioteka udostępnia również obiekty pomagające w ich rozmieszczeniu na ekranie.

Na listingu 1 przedstawiono przykładowy kod generujący menu na potrzeby obsługi dwóch przetworników: DAC i ADC. Całe menu tworzone jest w metodzie main.

Do pobrania

O autorze