Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

14. diel - Raspberry Pi - Dotykový displej

V predchádzajúcej lekcii, Pestrý šatník Raspberry Pi - Prehľad HAT modulov , sme sa trochu neobvykle rozprávali o všetkých zaujímavých klobúkoch (HAT) pre naše Raspberry Pi.

Dnes si k nášmu Raspberry Pi pripojíme dotykový displej. Niečo málo si o displejoch povieme, nakalibrujeme si ten náš a vytvoríme program, ktorý vypíše pozíciu určujúcu kde sme sa na displeji dotkli.

Potrebné súčiastky

Na úspešné zapojenie budeme potrebovať:

  • Raspberry Pi
  • dotykový displej
  • klávesnica a myš
LCD Display vs OLED Display

Zobrazovacím zariadeniam teraz dominujú technológie OLED a LCD.

Čo je LCD?

LCD je zobrazovacia technológia, ktorá funguje na princípe tekutých kryštálov. Tekutý kryštál je látka, ktorá dokáže byť ako v kvapalnom tak pevnom skupenstve. Tekutý kryštál svoju štruktúru mení podľa miery elektrického náboja, ktorý je kryštálu dodávaný. Tieto kryštály sú vložené medzi priehľadné elektródy a polarizačné filtre. Elektrickým nábojom je riadené natočenie týchto kryštálov, a vďaka tomu dochádza k riadeniu priechodu svetla.

Zobrazovaná jednotka obrazu, jeden bod, má názov pixel. Ten sa skladá zo subpixelov, ktoré sú v každom pixele 3. A to známe RGB (červený, zelený, modrý). Kombináciou rozsvecovania týchto subpixelov je možné dosiahnuť vykreslenie všetkých farieb spektra.

Čo je OLED?

OLED funguje na princípe LED diód. Máme organickú látku umiestnenú medzi dvoma elektródami z ktorých jedna musí byť priehľadná. Medzi priehľadnou anódou a kovovou katódou je niekoľko vrstiev organickej látky. V momente keď je privedené napätie, sú vyvolané kladné a záporné náboje, ktoré sa spájajú vo vyžarovacej vrstve, a tým produkujú svetelné žiarenie.

Spotreba

Veľmi dôležitým bodom je spotreba. OLED má v spotrebe výhodu. Každá dióda generuje svoje vlastné svetlo a farbu vo vnútri OLED panelu. Aby boli farby jasné, nepotrebuje OLED panel žiadne podsvietenie, pretože si vytvára svetlo sám. Preto je OLED výrazne úspornejší.

Zobrazenie

Ak budeme porovnávať zobrazenie, LCD displej vydáva realistickejšie farby, naopak OLED vydáva skôr farby živšie. OLED Displej je potom tiež napríklad zle viditeľný pod svetlom alebo dokonca aj pri použití vonku za denného svetla. To je spôsobené tým, že všetko jeho svetlo je tvorené iba diódami bez podsvietenia. Ďalej vytvára tmavšiu čiernu ako LCD a má lepšie pozorovacie uhly. Lepší pozorovací uhol OLED displeja vychádza zo skutočnosti, že jeho jednotlivé organické pixely vytvárajú svetlo aj farbu. U LCD Svetlo pochádza z podsvietenia, ale farby sú vytvárané jednotlivými pixelmi. Nakoniec ešte spomeniem že LCD je pomalší ako OLED, pokiaľ ide o obnovovaciu frekvenciu.

Delenie displejov k Raspberry Pi

Predstavme si základné delenie displejov k Raspberry Pi.

Podľa veľkosti

Raspberry Pi displeja sa často delia podľa veľkosti. Najčastejšie veľkosti sú 7" alebo 3,5". Najmenšie displeje veľkosti okolo 1,5" sú rovnaké ako napríklad u Arduina. Tieto displeje sa nepoužívajú namiesto monitora, ale iba pre zobrazenie času alebo iných základných dát.

Raspberry Pi

Podľa možnosti pripojenia

Väčšina displejov sa k Raspberry Pi pripája pomocou FFC/FPC kábla. Existujú aj displeje so zapojení typu HAT alebo klasické HDMI. Jednoduchšie displeje sa dajú rovnako ako u Arduina pripojiť pomocou pinov. Veľmi častá je aj kombinácia FFC/FPC kábla a pinov.

Zapojenie displeja

Display sa rovnako ako napríklad kamera Raspberry Pi dá pripojiť pomocou FFC/FPC kábla. Preto sa stačí iba do zdierky oproti USB portom strčiť druhý koniec kábla a zaistiť poistkou.

Naše zapojenie displeja vyzerá takto: Raspberry Pi

Kalibrácia displeja

Na nastavenie displeja bude potrebné zapojenie klávesnice a myši. Displej by po pripojení k Raspberry Pi mal zobrazovať všetko ako bežný monitor.

Funkciu dotyku potom môžeme skalibrovať pomocou programu xinput-calibration. Ukážme si, ako na to.

Inštalácia programu xinput-calibration

Otvoríme si terminál. Prvé skontrolujeme, či už existuje zložka pre displej LCD-show/. Ak áno, odstránime ju:

sudo rm -rf LCD-show

Príkaz rm môže v linuxovom termináli vymazať súbor, ale nie priečinok. Zložku je možné vymazať pomocou príkazu rm -rf.

Stiahneme si z githubu súbory na inštaláciu kalibračného softvéru:

git clone https://github.com/goodtft/LCD-show.git

Nastavíme si najvyššie práva k zložke LCD-show/:

chmod 777 LCD-show
  • Príkaz chmod v linuxe nastavuje vlastníkovi zložky, skupinám a všetkým ostatným užívateľom prístupové práva k zložke.
  • Pomocou položky 777 získavajú všetci právo na čítanie, zápis a vykonávanie zmien.
Pomocou príkazu cd sa presunieme do zložky LCD-show/ a nainštalujeme si inštalačný súbor aplikácie:
sudo dpkg -i -B xinput-calibrator_0.7.5-1_armhf.deb

Balíček dpkg alebo debian package je špeciálny balíček na inštaláciu súborov (napr. s koncovkou deb). Je veľmi podobný napríklad balíčkovaciemu nástroju apt-get.

Spustenie kalibrácie displeja

Keď máme program nainštalovaný, prejdeme do zložky LCD-show/ a do terminálu napíšeme:

DISPLAY=:0.0 xinput_calibration

Tento príkaz začne kalibrovať display od pozície y=0 , x = 0.

Inštalácia klávesnice na obrazovke

Aby sme nepotrebovali externú klávesnicu, môžeme si nainštalovať špeciálny program, ktorý nám zobrazí na displej klávesnicu rovnako ako napríklad na mobile:

sudo apt-get install onboard

Mne osobne sa najviac páči onboard klávesnica:

Raspberry Pi

Raspberry Pi však ponúka viac druhov virtuálnych klávesníc, napríklad florence alebo matchbox-keyboard.

Program "Ukáž pozíciu"

Náš program bude tentokrát veľmi jednoduchý. Bude nám ukazovať pozíciu, kde sme sa na displeji dotkli. Použijeme k tomu knižnicu pyautogui. Táto knižnica nám pomáha pracovať s gui prostredím nášho systému. Môžeme s ňou nastaviť napríklad práve automatické klikanie na jedno miesto na obrazovke.

Knižnicu si nainštalujeme príkazom:

sudo pip install pyautogui

Potom si už len vytvoríme Python súbor, do ktorého zapíšeme náš kód:

import pyautogui
while True:
     print(pyautogui.position())

Prvý riadok kódu je klasický import knižnice pyautogui. Druhý riadok je potom vytvorenie nekonečnej slučky while. Nakoniec to najdôležitejšie: pomocou print si vypíšeme pozíciu určujúcu, kde sme sa dotkli.

Použitie knižnice pyautogui je trochu podvod, pretože táto knižnica nesleduje, kde sme sa dotkli, ale kde sa nachádza kurzor myši, a vypisuje práve pozíciu tohto kurzora. Preto keď ovládame kurzor myši pomocou dotykovej obrazovky, knižnica nám vypisuje pozíciu dotyku. Hlavný dôvod vybrania práve tejto knižnice sú však jej veľmi rozsiahle možnosti uplatnenia.

Nekonečnú slučku by sme tvoriť nikdy nemali! Vždy by sme mali napísať podmienku, pri ktorej nastáva hodnota false a program zo slučky vyskočí!

Zhrnutie programu

Nekonečná slučka bude neustále dookola vypisovať pozíciu nášho kurzora, ktorá je zisťovaná pomocou importovanej knižnice pyautogui.

Verím, že sa vám pripojenie a nakódovanie programu pre displej podarilo. Svoje dojmy a prípadné otázky môžete zanechať v diskusii pod článkom 🙂

V ďalšej lekcii, Raspberry Pi - Vodné čerpadlo , si k Raspberry Pi pripojíme vodné čerpadlo.


 

Predchádzajúci článok
Pestrý šatník Raspberry Pi - Prehľad HAT modulov
Všetky články v sekcii
Raspberry Pi
Preskočiť článok
(neodporúčame)
Raspberry Pi - Vodné čerpadlo
Článok pre vás napísal Aleš Hlavín
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Raspberry
Aktivity