Dotykowy wyświetlacz TFT do komputera PC

Dotykowy wyświetlacz TFT do komputera PC
Pobierz PDF Download icon

Kontrolowanie komputera za pomocą skrótów klawiszowych i makr to świetny sposób na przyspieszenie pracy np. w oprogramowaniu CAD. Autor opisanego urządzenia, nazwanego FreeTouchDeck, postanowił rozwiązać problem makr klawiatury samodzielnie. Skonstruował proste urządzenie, które umożliwia zaawansowane korzystanie z makr i jednocześnie jest niedrogie, w porównaniu do komercyjnych odpowiedników.

Urządzenie bazuje na mikrokontrolerze ESP32 i wyświetlaczu dotykowym o przekątnej ekranu 3,5 cala. Informacje o naciśnięciu klawisza i potrzebnych makrach przesyłane są poprzez Bluetooth do komputera. Moduł działa z dowolnym systemem operacyjnym – Windows, MacOS i Linuxem.

Autor zapewnia, że jego konstrukcja jest bardzo prosta. Urządzenie da się zmontować w czasie ok. godziny. Zaprojektowane zostało tak, aby elementy były łatwo dostępne, tak na dużych portalach aukcyjnych, jak i w lokalnych sklepach. Do montażu potrzebne są w zasadzie dwa moduły:

  • dowolna płytka deweloperska z modułem ESP32-WROOM-32 z 38 pinami wyjściowymi,
  • wyświetlacz TFT ze sterownikiem ILI9488 z kontrolerem panelu dotykowego XPT2046,
  • opcjonalnie można zastosować zaprojektowaną przez autora płytkę PCB, która ułatwia połączenie powyższych tych dwóch elementów.

Ponadto potrzebne będą podstawowe narzędzia, takie jak lutownica wraz niezbędnym wyposażeniem, szczypce boczne i opcjonalnie drukarka 3D, jeśli chcemy wydrukować obudowę, którą zaprojektował autor.

Budowa urządzenia

Na początku ilość połączeń elektrycznych może wydawać się przytłaczająca, ale nie należy się zniechęcać. Gdy już przeanalizuje się schemat połączeń, wszystko okazuje się całkiem proste. Do połączenia modułów mikrokontrolera i wyświetlacza można użyć zwykłych przewodów, płytki uniwersalnej bądź specjalnej płytki drukowanej, na której można łatwo zainstalować oba elementy.

Oba moduły działają przy zasilaniu 3,3 V, dzięki czemu nie ma konieczności translacji poziomów. Należy jednak pamiętać, że podłączenie któregoś z nich do 5 V może spowodować uszkodzenie! W tabeli 1 zawarto listę połączeń, jakie trzeba wykonać pomiędzy modułem z ESP32 a wyświetlaczem ze sterownikiem ILI9488.

Rysunek 1. Schemat połączeń pomiędzy modułem mikrokontrolera i ekranem w urządzeniu

Schemat połączeń zaprezentowano także na rysunku 1, jednakże przy wykorzystaniu innego modułu z Mikrokontrolerem ESP32 niż zaprezentowany na schemacie, połączenia mogą być inne. Wtedy warto zajrzeć do karty katalogowej zastosowanego modułu przed przystąpieniem do montażu systemu. Ekran nie używa linii SDO (MOSI), ponieważ generalnie nie wysyła żadnych danych. Pin ten jest na ogół wyprowadzony na płytce, ale nie musimy go podłączać.

Fotografia 1. Opcjonalna płytka do połączenia ekranu i mikrokontrolera

Dokumentacja płytki drukowanej, która realizuje opisane w tabeli 1 połączenia dostępna jest na repozytorium autora na GitHubie, pod tym linkiem: http://bit.ly/3uIBS8T. Można użyć jej do wyprodukowania płytek samodzielnie, bądź zamówić je z wyznaczonego zakładu, zgodnie z informacjami, jakie zawarto w repozytorium. Wygląd płytki został pokazany na fotografii 1.

Obudowa w technologii druku 3D

Po połączeniu wszystkich elementów elektronicznych można zdecydować się na wykonanie dla urządzenia obudowy w technice druku 3D. Jest to w pełni opcjonalny krok, a urządzenie można umieścić w dowolnej innej obudowie. Obudowa mieści zarówno ekran TFT, jak i moduł z ESP32. Została wykonana z myślą o PCB dla ESP32 i ekranu, opisywanej wcześniej, ale będzie odpowiednia, także wtedy, gdy układ FreeTouchDeck znajdzie się na płytce prototypowej.

Rysunek 2. Model obudowy do druku 3D, a) górna część, b) dolna część, c) obudowa zmontowana w całość

Obudowę z druku 3D pokazano na rysunku 2. Składa się metodą na wcisk, ale jeśli drukarka nie jest dostatecznie precyzyjna i nie planujemy rozbierać urządzenia, do połączenia elementów można użyć odrobinę kleju cyjanoakrylowego.

Projekt obudowy w postaci plików STL, można znaleźć w repozytorium na GitHubie: http://bit.ly/3dQqbqC. W zasobach znajdują się dwie wersje górnej części – jedna jest odrobinę wyższa, aby zmieścić ekran wyposażony w żeńskie złącza do podłączenia do PCB. W takim przypadku należy wybrać model Top_for_TFT_with_Headers.stl.

Autor projektu, oprócz samych projektów modeli, dostarcza także optymalne parametry druku 3D dla nich. Proponowane parametry są następujące:

Górna część (top), obie wersje:

  • orientacja: płaską częścią w dół,
  • wysokość warstwy: 0,2 mm,
  • infill: 100%,
  • wsporniki: brak.

Dolna część (bottom):

  • orientacja: element łączący się z górną częścią ustawiony do dołu,
  • wysokość warstwy: 0,2 mm,
  • infill: 20%,
  • wsporniki: wszystkie możliwe,
  • kąt dodawania wsporników: 70°.

Skonfigurowanie kąta dodawania wsporników na 70° zapewni, że otwory na złącza USB itp. otrzymają potrzebne wsporniki, ale nie zostaną one dodane w miejscach, które nie wymagają podparcia w czasie druku 3D.

Oprogramowanie

Autor udostępnia szkic Arduino na swoim repozytorium: http://bit.ly/2ZQ6bfq. Jednak zanim przystąpimy do kompilacji oprogramowana i programowania mikrokontrolera ESP32, wymagane jest przygotowanie środowiska i odrobina konfiguracji.

Rysunek 3. Konfiguracja Arduino IDE – dodawanie bibliotek dla ESP32

W pierwszej kolejności konieczne jest zainstalowanie Arduino IDE oraz dodanie do niego wsparcia dla rdzenia ESP32. Należy wejść w ustawienia Arduino IDE i otworzyć menedżer płytek, który pozwala dodać wsparcie dla innych mikrokontrolerów. Po uruchomieniu menedżera wpisujemy ścieżkę dla układów ESP32 Espressifa (rysunek 3): https://bit.ly/2MA5KTC.

Potwierdzamy wciskając OK i ponownie OK, a następnie wybieramy najnowszą wersje bibliotek dla układu ESP32 i instalujemy ją. Teraz możemy zamknąć menedżer płytek w Arduino.
Kolejnym krokiem jest zainstalowanie bibliotek wymaganych przez skrypt urządzenia. Układ korzysta z sześciu zewnętrznych bibliotek. Trzy z nich mogą być wbudowane w Arduino IDE:

  • Adafruit-GFX-Library,
  • TFT_eSPI,
  • ArduinoJson.

Kolejne trzy trzeba zainstalować manualnie, ściągając je z sieci. Pobieramy pliki z bibliotekami (w formacie zip) z następujących lokalizacji:

Po pobraniu biblioteki wchodzimy w menu Szkicu, gdzie z menu dodawania bibliotek wybieramy opcję pozwalającą na dodanie biblioteki w formacie pliku zip.

Ostatnim krokiem przed skompilowaniem szkicu FreeTouchDeck.ino jest konfiguracja systemu poprzez edycję pliku nagłówkowego User_Setup.h, który znajduje się w bibliotece TFT_eSPI.

Najprościej jest podmienić ten plik na taki, jaki znajduje się w repozytorium autora pod nazwą ESP32_Dev_Kit_V1_ILI9488_Resistive.h. Wystarczy zmienić nazwę na User_Setup.h i zapisać w folderze wspomnianej biblioteki. Uwaga, wielkość liter ma znaczenie.

Teraz można przejść do zasadniczego szkicu urządzenia. FreeTouchDeck używa SPIFFS (pamięci Flash w ESP32) do przechowywania konfiguracji i obrazków, jakie są wyświetlane na ekranie. Trzeba załadować je do ESP zanim załaduje się skrypt kontrolujący jego pracę. W tym celu stosuje się specjalny program, który jest dostępny na GitHubie Arduino dla ESP32: http://bit.ly/3r1M5uw. Wystarczy, krok po kroku, wykonywać instrukcje instalacji i użytkowania tego programu.

Kod szkicu FreeTouchDeck.ino należy pobrać z repozytorium autora. Po pobraniu można otworzyć skrypt w Arduino IDE i dokonać kilku ostatnich zmian, jakie są wymagane do poprawnej konfiguracji programu. Przede wszystkim konieczne jest ustawienie danych sieci Wi-Fi, w jakiej będzie pracowało urządzenie. W folderze, w którym znajduje się plik FreeTouchDeck.ino odnajdujemy w podfolderze plik /data/config/wificonfig.json. W tym miejscu możemy wpisać dane sieci, do której ma się podłączyć urządzenie na czas konfiguracji. Są tutaj dwa istotne parametry, jakich wartość zmieniamy:

  • YOUR_WIFI_SSID – identyfikator SSID sieci bezprzewodowej,
  • YOUR_WIFI_PASSWORD – hasło logowania do sieci.

Możemy teraz przejść do ostatniego etapu programowania urządzenia – konfiguracji folderów i wgrania szkicu. W pierwszej kolejności ustawiamy schemat partycjonowania pamięci ESP32, jako: No OTA (2 MB APP/ 2 MB SPIFFS). Następnie możemy skompilować i wgrać program do pamięci modułu.

Uruchomienie i konfiguracja

Po załadowaniu szkicu i wszystkich plików do ESP, przy pierwszym uruchomieniu pojawia się dotykowy ekran kalibracji (fotografia 2).

Fotografia 2. Ekran kalibracyjny, dostępny przy pierwszym uruchomieniu urządzenia

Dzieje się tak, aby program nauczył się parametrów ekranu dotykowego i aby mógł określić, czy dotknięcie mieści się w granicach przycisku. Plik kalibracyjny jest zapisywany w systemie plików ESP. Tak, więc, jeśli ponownie załadowane zostaną pliki do ESP za pomocą programu, który był użyty do jego programowania, plik kalibracji zostanie usunięty i ponownie pojawi się ekran kalibracji.

Ekran główny ma 6 przycisków, które przenoszą do menu dodatkowego. Przyciski te mają inny kolor niż przyciski funkcyjne w menu. Na ekranie głównym znajduje się również menu Ustawienia, które umożliwia skonfigurowanie działania urządzenia.

Po załadowaniu ekranu głównego uruchamiany jest również moduł Bluetooth Low Energy, umożliwiający połączenie z komputerem. Aby FreeTouchDeck znajdował się na liście dostępnych urządzeń może być konieczne odświeżenie listy urządzeń Bluetooth na komputerze. Po utworzeniu połączenia, aby sprawdzić czy Bluetooth działa poprawnie, można np. przejść do menu Muzyka i wybrać Wycisz.

Urządzenie udostępnia witrynę internetową na samym ESP32, na której można skonfigurować menu i przyciski, które zawiera każde menu. Można także dostosować kolory i przesłać własne logo. Aby uruchomić konfigurator należy kliknąć prawy dolny przycisk, przejść do strony Ustawienia, a następnie kliknąć przycisk „Wi-Fi” w lewym górnym rogu. Po uruchomieniu konfiguratora można otworzyć przeglądarkę internetową i przejść do witryny freetouchdeck.local w sieci lokalnej.

Więcej informacji o tym, jak korzystać z konfiguratora, można znaleźć na Wiki projektu na GitHubie: http://bit.ly/2Pho0C7.

Nikodem Czechowski, EP

Źródła:

Artykuł ukazał się w
Elektronika Praktyczna
marzec 2021
DO POBRANIA
Pobierz PDF Download icon
Materiały dodatkowe

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik maj 2021

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio czerwiec 2021

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka Podzespoły Aplikacje maj 2021

Automatyka Podzespoły Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna maj 2021

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich czerwiec 2021

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów