[KROK-PO-KROKU] Prosta aplikacja interfejsu dotykowego na mikrokontrolerze Atmel SAM D20 (Cortex-M0+)
Wraz z wprowadzeniem na rynek rodziny mikrokontrolerów SAM D20 z rdzeniem Cortex-M0+ producent – firma Atmel – opracował dla niej rozbudowany ekosystem narzędzi ewaluacyjnych. Jest nią platforma Xplained Pro, którą tworzy płytka uruchomieniowa z mikrokontrolerem oraz grupa kompatybilnych z nią płytek rozszerzeniowych. Opis samej platformy, jak również to w jaki sposób zacząć z nią pracę korzystając ze środowiska programistycznego Atmel Studio przedstawiliśmy w artykule opublikowanym w lutym tego roku. Teraz przyszedł czas na pokazanie jak przy pomocy tych narzędzi zrealizować przykładową aplikację.
W artykule pokazane zostanie jak krok po kroku korzystając z platformy Xplained Pro i środowiska Atmel Studio stworzyć aplikację implementującą interfejs dotykowy użytkownika.
Rozwiązania dla interfejsów dotykowych w ofercie produktowej firmy Atmel
Wybór aplikacji, która zostanie stworzona, nie jest przypadkowy. Atmel, który znany jest w naszym kraju głównie jako producent 8- i 32-bitowych mikrokontrolerów AVR, ma w swojej ofercie również inne grupy produktów. Są to między innymi mikrokontrolery i mikroprocesory z rdzeniem ARM, układy pamięci, układy komunikacji bezprzewodowej oraz rozwiązania dla interfejsów dotykowych. Portfolio tej ostatniej grupy produktów składa się z:
- kontrolerów maXTouch dla dotykowych nakładek dla wyświetlaczy,
- kontrolerów dla przycisków dotykowych oraz bibliotek programowych QTouch pozwalających zaimplementować obsługę przycisków dotykowych w mikrokontrolerach firmy Atmel,
- rozwiązań dla elastycznych i zakrzywionych ekranów (czujniki dotykowe o nazwie XSense oraz dedykowane im kontrolery).
Będąc jednym z wiodących producentów rozwiązań dla interfejsów dotykowych Atmel postanowił przenieść swoje doświadczenia z tej dziedziny na pole mikrokontrolerów. W wyniku tego wybrane mikrokontrolery AVR oraz z rdzeniem ARM Cortex-M0+ i M4 dysponują zintegrowanym kontrolerem czujników dotykowych o nazwie PTC (Peripheral Touch Controller). Układy tego typu stanowią około 10% całej oferty mikrokontrolerów firmy Atmel. Pełną ich listę można uzyskać korzystając z narzędzia internetowego firmy Atmel, jakim jest Microcontrollers Selector. Dobierając odpowiednie kryteria (Hardware QTouch Acquisition = yes) wyświetlone zostaną 52 rekordy wyszukiwania (rysunek 1).
Rys. 1. Wyniki wyszukiwania mikrokontrolerów ze zintegrowanym kontrolerem dotykowym za pomocą narzędzia Microcontroller Selector
W tym miejscu warto wspomnieć o dwóch narzędziach programowych, które niezwykle upraszczają i tym samym przyspieszają tworzenie systemów z interfejsem dotykowym na bazie mikrokontrolerów firmy Atmel. Pierwsze narzędzie to QTouch Library. Jest to zestaw bibliotek do obsługi pojemnościowych czujników dotykowych. Biblioteki te udostępniają interfejs programistyczny (API – Application Programming Interface), za pomocą którego programista może wywoływać funkcje odpowiedzialne między innymi za:
- konfigurowanie portów mikrokontrolera jako wejścia dla czujników pojemnościowych,
- ustawienie różnych parametrów związanych z czujnikami,
- interpretowanie czy dotknięcie czujnika miało miejsce.
Jest to zatem bardzo wygodny sposób obsługi czujników, gdyż nie wymaga od programisty samodzielnej implementacji żadnych mechanizmów pomiarowych, kalibracyjnych itp. Schemat blokowy bazującego na mikrokontrolerze Atmel systemu z interfejsem dotykowym pokazano na rysunku 2.
Rys. 2. Schemat blokowy bazującego na mikrokontrolerze Atmel systemu z interfejsem dotykowym [1]
Drugim narzędziem jest QTouch Composer. Jest to generator kodu konfiguracyjnego z graficznym interfejsem użytkownika. Za pomocą tego narzędzia użytkownik definiuje liczbę czujników i ich rodzaj (przycisk/suwak/kółko), określa które z wyprowadzeń mikrokontrolera są podłączone do czujników, ustawia także inne parametry. Po zakończeniu procesu konfiguracji QTouch Composer na bazie bibliotek QTouch Library generuje odzwierciedlający ustawienia kod źródłowy i dołącza go do projektu programistycznego.
Przygotowanie stanowiska testowego
Wśród mikrokontrolerów ze zintegrowanym kontrolerem czujników dotykowych znajdują się między innymi układy SAMD20 z rdzeniem Cortex-M0+. Aby w sposób szybki i wygodny móc w oparciu o te mikrokontrolery tworzyć aplikacje dotykowe, wykorzystane mogą zostać dedykowane do tego celu narzędzia sprzętowe i programowe.
Podstawę platformy sprzętowej tworzy płytka uruchomieniowa z mikrokontrolerem SAM D20 – SAM D20 Xplained Pro Evaluation Kit. Musi ona zostać połączona z jedną z dwóch płytek rozszerzeniowych QT1 Xplained Pro z pojemnościowymi czujnikami dotykowymi: QT1 Xplained Pro QTouch Self Capacitance lub QT1 Xplained Pro QTouch Mutual Capacitance (rysunek 3). Każda z płytek dysponuje dwoma przyciskami, suwakiem (slider) i kółkiem (wheel). Dodatkowo na wyposażeniu jest dziesięć diod LED oraz jedna dioda LED RGB.
Rys. 3. Widok płytek QT1 Xplained Pro QTouch Self/Mutual Capacitance [2]