NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Lekce 14 - Raspberry Pi - Dotykový displej

V předchozí lekci, Pestrý šatník Raspberry Pi - Přehled HAT modulů, jsme si trochu neobvykle povídali o všech zajímavých kloboucích (HAT) pro naše Raspberry Pi.

Dnes si k našemu Raspberry Pi připojíme dotykový displej. Něco málo si o displejích řekneme, nakalibrujeme si ten náš a vytvoříme program, který vypíše pozici určující kde jsme se na displeji dotknuli.

Potřebné součástky

K úspěšnému zapojení budeme potřebovat:

  • Raspberry Pi
  • dotykový displej
  • klávesnice a myš

LCD Display vs OLED Display

Zobrazovacím zařízením nyní dominují technologie OLED a LCD.

Co je LCD?

LCD je zobrazovací technologie , která funguje na principu tekutých krystalů. Tekutý krystal je látka, která dokáže být jak v kapalném tak pevném skupenství. Tekutý krystal svou strukturu mění podle míry elektrického náboje, který je krystalu dodáván. Tyto krystaly jsou vloženy mezi průhledné elektrody a polarizační filtry. Elektrickým nábojem je řízeno natočení těchto krystalů, a díky tomu dochází k řízení průchodu světla.

Zobrazovaná jednotka obrazu, jeden bod, má název pixel. Ten se skládá ze subpixelů, které jsou v každém pixelu 3. A to známé RGB (červený, zelený, modrý). Kombinací rozsvěcování těchto subpixelů lze dosáhnout vykreslení všech barev spektra.

Co je OLED?

OLED funguje na principu LED diod. Máme organickou látku umístěnou mezi dvěma elektrodami z nichž jedna musí být průhledná. Mezi průhlednou anodou a kovovou katodou je několik vrstev organické látky. V momentě když je přivedeno napětí, jsou vyvolány kladné a záporné náboje, které se spojují ve vyzařovací vrstvě, a tím produkují světelné záření.

Spotřeba

Velmi důležitým bodem je spotřeba. OLED má ve spotřebě výhodu. Každá dioda generuje své vlastní světlo a barvu uvnitř OLED panelu. Aby byly barvy jasné, nepotřebuje OLED panel žádné podsvícení protože si vytváří světlo sám. Proto je OLED výrazně úspornější.

Zobrazení

Budeme-li porovnávat zobrazení, LCD displej vydává realističtější barvy, naopak OLED vydává spíše barvy živější. OLED Displej je pak také například špatně viditelný pod světlem nebo dokonce i při použití venku za denního světla. To je způsobeno tím že všechno jeho světlo je tvoře pouze diodami bez podsvícení. Dále vytváří tmavší černou než LCD a má lepší pozorovací úhly. Lepší pozorovací úhel OLED displeje vychází ze skutečnosti, že jeho jednotlivé organické pixely vytvářejí světlo i barvu. U LCD Světlo pochází z podsvícení, ale barvy jsou vytvářeny jednotlivými pixely. Nakonec ještě zmíním že LCD je pomalejší než OLED, pokud jde o obnovovací frekvenci.

Dělení displejů k Raspberry Pi

Představme si základní dělení displejů k Raspberry Pi.

Podle velikosti

Raspberry Pi displeje se často dělí podle velikosti. Nejčastější velikosti jsou 7" nebo 3,5". Nejmenší displeje velikosti kolem 1,5" jsou stejné jako například u Arduina. Tyto displeje se nepoužívají místo monitoru, ale pouze pro zobrazení času nebo jiných základních dat.

Raspberry Pi

Podle možnosti připojení

Většina displejů se k Raspberry Pi připojuje pomocí FFC/FPC kabelu. Existují také displeje se zapojení typu HAT nebo klasické HDMI. Jednoduší displeje se dají stejně jako u Arduina připojit pomocí pinů. Velmi častá je také kombinace FFC/FPC kabelu a pinů.

Zapojení displeje

Display se stejně jako například kamera Raspberry Pi dá připojit pomocí FFC/FPC kabelu. Proto se stačí pouze do zdířky naproti USB portům strčit druhý konec kabelu a zajistit pojistkou.

Naše zapojení displeje vypadá takto:

Raspberry Pi

Kalibrace displeje

K nastavení displeje bude potřeba zapojení klávesnice a myši. Displej by po připojení k Raspberry Pi měl zobrazovat vše jako běžný monitor.

Funkci dotyku pak můžeme zkalibrovat pomocí programu xinput-calibration. Ukažme si, jak na to.

Instalace programu xinput-calibration

Otevřeme si terminál. První zkontrolujeme, zda již existuje složka pro displej LCD-show/. Pokud ano, odstraníme ji:

sudo rm -rf LCD-show

Příkaz rm může v linuxovém terminálu vymazat soubor, ale ne složku. Složku lze vymazat pomocí příkazu rm -rf.

Stáhneme si z githubu soubory k instalaci kalibračního software:

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

Nastavíme si nejvyšší práva ke složce LCD-show/:

chmod 777 LCD-show
  • Příkaz chmod v linuxu nastavuje vlastníkovi složky, skupinám a všem ostatním uživatelům přístupová práva ke složce.
  • Pomocí čísla 777 získávají všichni právo na čtení, zápis a provádění změn.

Pomocí příkazu cd se přesuneme do složky LCD-show/ a nainstalujeme si instalační soubor aplikace:

sudo dpkg -i -B xinput-calibrator_0.7.5-1_armhf.deb

Balíček dpkg neboli debian package je speciální balíček na instalaci souborů (např. s koncovkou deb). Je velmi podobný například balíčkovacímu nástroji apt-get.

Spuštění kalibrace displeje

Když máme program nainstalovaný, přejdeme do složky LCD-show/ a do terminálu napíšeme:

DISPLAY=:0.0 xinput_calibration

Tento příkaz začne kalibrovat display od pozice y=0 , x = 0.

Instalace klávesnice na obrazovce

Abychom nepotřebovali externí klávesnici, můžeme si nainstalovat speciální program, který nám zobrazí na displej klávesnici stejně jako například na mobilu:

sudo apt-get install onboard

Mně osobně se nejvíce líbí onboard klávesnice:

Raspberry Pi

Raspberry Pi však nabízí více druhů virtuálních klávesnic, například florence nebo matchbox-keyboard.

Program "Ukaž pozici"

Náš program bude tentokrát velmi jednoduchý. Bude nám ukazovat pozici, kde jsme se na displeji dotknuli. Použijeme k tomu knihovnu pyautogui. Tato knihovna nám pomáhá pracovat s gui prostředím našeho systému. Můžeme s ní nastavit třeba právě automatické klikání na jedno místo na obrazovce.

Knihovnu si nainstalujeme příkazem:

sudo pip install pyautogui

Pak už jsi jen vytvoříme Python soubor, do kterého zapíšeme náš kód:

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

První řádek kódu je klasický import knihovny pyautogui. Druhý řádek je poté vytvoření nekonečné smyčky while. Nakonec to nejdůležitější: pomocí print si vypíšeme pozici určující, kde jsme se dotkli.

Použití knihovny pyautogui je trochu podvod, protože tato knihovna nesleduje, kde jsme se dotkli, ale kde se nachází kurzor myši, a vypisuje právě pozici tohoto kurzoru. Proto když ovládáme kurzor myši pomocí dotykové obrazovky, knihovna nám vypisuje pozici dotyku. Hlavní důvod vybrání právě této knihovny jsou však její velmi rozsáhlé možnosti uplatnění.

Nekonečnou smyčku bychom tvořit nikdy neměli! Vždy bychom měli napsat podmínku, při které nastává hodnota false a program ze smyčky vyskočí!

Shrnutí programu

Nekonečná smyčka bude neustále dokola vypisovat pozici našeho kurzoru, která je zjišťována pomocí importované knihovny pyautogui.

Věřím, že se vám připojení a nakódování programu pro displej podařilo. Své dojmy a případné dotazy můžete zanechat v diskusi pod článkem 🙂

V další lekci, Raspberry Pi - Vodní čerpadlo, si k Raspberry Pi připojíme vodní čerpadlo.


 

Předchozí článek
Pestrý šatník Raspberry Pi - Přehled HAT modulů
Všechny články v sekci
Raspberry Pi
Přeskočit článek
(nedoporučujeme)
Raspberry Pi - Vodní čerpadlo
Článek pro vás napsal Aleš Hlavín
Avatar
Uživatelské hodnocení:
9 hlasů
Raspberry
Aktivity