Blog
2014.12.03 11:29

Adafruit PITFT mini kit - 320x240 2.8” TFT + érintőpanel telepítése Raspberry PI-hez

Segédlet az Adafruit PITFT érintőképernyő telepítéséhez - 1. rész.
A TFT kijelző és érintőpanel telepítése, kalibrálása.
Néhány perc munka és már működik is...

Áttekintés

Ugye szerinted is ez a legaranyosabb kis kijelző a Raspberry PI-hez?! A képességei: 2.8 inches kijelző, 320x240 képpont, képpontonként 16-bit színmélységgel. Ráadásként egy rezisztív érintő panelt is tartalmaz, így az ujjad hegyével irányíthatod kedvenc számítógépedet. A panel a nagysebességű SPI interfészt használja a Raspberry PI-hez kapcsolódáshoz. Emiatt használhatod mint mini konzol kijelzőt, vagy grafikus módban (X window port) megjeleníthetsz képeket, videókat stb… Mindezt a Raspberry PI méretében, annak tetejére “ültetve”!

Ez a hardver kialakítás az SPI lábakat (SCK, MOSI, MISO, CE0, CE1) valamint a GPIO #25 és #24 lábakat használja a Raspberry PI-n a működéséhez. A panel kialakítása lehetővé tette, hogy 4 miniatűr gombnak helyet biztosítsunk, melyeket 4 GPIO porthoz (GPIO #23, #22, #21, and #18) vezettünk. Ezeket saját célra használhatod, akár ki/be kapcsolhatod vele a Raspberry PI-t, vagy egyéb beviteli célra szabadon programozhatók.

A lehető legkönnyebb, legegyszerűbb használathoz készítettünk egy saját kernel driver csomagot, melynek a “félelmetes Notro's framebuffer” az alapja :). Így Te már könnyedén tudod telepíteni a létező Raspbian (vagy annak változatai) rendszeredre néhány parancs segítségével.

Ez a segédlet végigvezet lépésről lépésre a szoftver telepítésén, az érintőpanel kalibrálásának folyamatán és megmutatja, hogy hogyan lehet képeket, videókat megjeleníteni akár a RaspiCam kameramodulról, vagy egyéb forrásból!

Összeállítás

Mielőtt elkezded a munkát, ellenőrizd le, hogy minden alkatrész rendelkezésre áll e: szerelt PiTFT panel a 2.8”-as kijelzővel, extra magas “anya” csatlakozó tüskesor, 2x13 “apa” csatlakozó tüskesor. Fontos tudni: teljesen normális, hogy a kijelző “lazán” illeszkedik. Ez azért van, hogy könnyebben lehessen a csatlakozókat beforrasztani a helyükre!

A panel hátlapján ellenőrizd le, hogy a TFT kijelző csatlakoztatva van-e megfelelően. A hajlékony szalagkábel jól illeszkedik-e a panelen lévő FPC csatlakozóba!

Az összeszereléshez hívd segítségül a Raspberry PI-det. De legyen kikapcsolva, és minden csatlakozó legyen kihúzva!

Csatlakoztasd a Raspberry PI GPIO lábaira az “anya” csatlakozót úgy, ahogy a képen látod. Győződj meg arról, hogy stabilan, teljesen a helyén van.

Helyezd a PITFT panelt a tetejére úgy, hogy a csatlakozó összes lába a megfelelő forrasztási lyukba kerüljön. Óvatosan hajtsd félre a TFT kijelzőt, vigyázz ne sérüljön és ne legyen útban forrasztáskor.

Melegítsd fel a forrasztópákád hegyét és egy kis forrasztó ónt tegyél rá. Kezd a forrasztást a sarkokon. Közben támaszd az ujjaddal a panelt, hogy el ne mozdujon. Miután egy-két lábat beforrasztottál, akkor már fojtathatod a többivel, nem fog elmozdulni.

Mielőtt rögzítenéd a TFT kijelzőt, ellenőrizd le, hogy minden láb megfelelően be van-e forrasztva. Ne legyen  a lábak között rövidzárlatot okozó ón, vagy rosszul beforrasztott láb.

Most rögzíthetjük a TFT kijelzőt. Távolítsd el a két vékony szalagot az öntapadó csíkról.

Emeld fel a kijelzőt az oldalsó fehér peremnél fogva. Győződj meg arról, hogy legyen elég hely a csatlakozók és a kijelző fém alja között. Amíg nem nyomod erősen rá a panelra, addig tudod még módosítani az elhelyezkedését.

Ha már helyén a kijelző és biztos nem érintkezik a csatlakozókkal, akkor óvatosan nyomd a kijelzőt a panelra a ragasztószalagok mentén a stabil rögzítés érdekében.

Ha a védőfólia még rajta van a kijelzőn, akkor a kijelzővel lefelé fordítva az asztallapon is rá tudod nyomni a panelra. Így már biztonságosan rögzülni fog.

Ha szeretnél mást is csatlakoztatni a Raspberry PI GPIO lábaihoz, akkor be kell forrasztanod a 2x13 csatlakozós tüskesort. A csatlakozók panel alsó fele felé nézzenek! Így panel a felső fele sima marad, könnyen rögzíthető!

Ehhez tudsz 26 eres szalagkábelt csatlakoztatni. Csak figyelj oda, hogy az 1-es lábat jelölő csík a megfelelő oldalon legyen. Úgy mint a képen. Egyébként a panelon is található erre jelölés: ‘#1’

Szoftver telepítés

Ahhoz, hogy használni tudjuk a 2.8" TFT-t és érintőkijelzőt, telepítenünk kell egy új Linux Kernel-t. Szerencsédre készítettünk egy kernel csomagot, amit simán telepíteni tudsz a meglévő Raspbian rendszeredre, anélkül, hogy az egészet újra kellene telepíteni. Így könnyebb napra készen tartani a rendszeredet.

Fontos! Hogy használni tudd a kernel .deb fájlokat, mindenképp a Raspbian vagy ebből származtatott rendszert kell használj! Nem fog működni Arch vagy egyéb Linux variánsokkal. Mivel a Raspbian a hivatalos OS a Raspberry PI-hez, ezért ez az egyetlen Linux disztribúció amit támogatni fogunk! Akik nem ezt használják, azoknak újra kell fordítani a saját kernelüket az alábbi pathc-el. De ehhez nem tudunk támogatást nyújtani!

Mielőtt elkezded

Mielőtt neki kezdünk, szükség lesz egy működő Raspbian installációra és hálózati kapcsolatra

Ezt egy konzol kábel kapcsolaton keresztül csináljuk, de akár monitoron, vagy TV-n keresztül vagy távoli eléréssel SSH-n keresztül is nyithatsz shell konzolt, működni fog.

Futtasd le a  sudo apt-get update parancsot a frissítéshez!

Ahhoz, hogy az alábbiakban leírt parancsokat futtatni tudd a Raspberry PI-n, szükséges, hogy be légy rá jelentkezve egy Terminálra. Ezt megtheted SSH-n keresztül, vagy konzolkábellel, vagy egyszerű szöveges módban (TV,vagy monitort használva). A WebIDE konzolon keresztül nem biztos, hogy működik a telepítés folyamata.

Letöltés & Telepítés

Tölts le néhány fájlt az alábbi parancsok kiadásával:

cd ~
wget http://adafruit-download.s3.amazonaws.com/libraspberrypi-bin-adafruit.deb
wget http://adafruit-download.s3.amazonaws.com/libraspberrypi-dev-adafruit.deb
wget http://adafruit-download.s3.amazonaws.com/libraspberrypi-doc-adafruit.deb
wget http://adafruit-download.s3.amazonaws.com/libraspberrypi0-adafruit.deb
wget http://adafruit-download.s3.amazonaws.com/raspberrypi-bootloader-adafruit-112613.deb

Ezután telepítsd az új kernelt az alábbi paranccsal:

 sudo dpkg -i -B *.deb

Ez eltart egy pár percig, addig egyél egy szendvicset és igyál egy kávét

Most újraindítjuk a Raspberry PI-t

 sudo shutdown -h now (Ha nincs a TFT csatlakoztatva, akkor állítsd le a PI-t, csatlakoztasd majd indítsd újra)

vagy

 sudo reboot (Ha a TFT már csatlakoztatva van)

Most miután újraindúlt, jelentkezzbe ismét konzolon (vagy TV-n vagy SSH-n). Még nincs kép. Előtte le kell teszteljük, hogy mindent megfelelően csináltunk.

Futtasd a következő parancsokat a képernyő driver telepítéséhez. A képernyő fehérből feketébe fog váltani, jelezve, hogy a parancsok sikeresen lefutottak.

sudo modprobe spi-bcm2708
sudo modprobe fbtft_device name=adafruitts rotate=90
export FRAMEBUFFER=/dev/fb1
startx

A PI desktop-ját kell látnod, hogy megjelenik a TFT kijelzőn! Gratulálunk, sikeresen teljesítetted az első tesztet! Most beállítjuk, hogy bootoláskor automatikusan betöltődjön a TFT kernel modulja.

Nyomj Control-C-t a konzolban, hogy leállítsd az X szervert és folytassuk a konfigurálást.

Modul automatikus betöltése

Most beállítjuk az automatikus modul betöltést. Nyisd meg szerkesztésre az /etc/modules fájlt az alábbi parancs kiadásával:

sudo nano /etc/modules

add hozzá a következő két sort

spi-bcm2708
fbtft_device

Majd Control-X Y [return] megnyomásával elmented a változást

Még nem vagy kész! Még hozzá kell adni a konfurációs paramétereket egy új modprobe filehoz:

 sudo nano /etc/modprobe.d/adafruit.conf

add hozzá a következő sort

 options fbtft_device name=adafruitts rotate=90 frequency=32000000

és mentsd el úgy mint az előbb.

A rotate= változó mondja meg a drivernek, hogy forgassa el a képet 0 90 180 vagy 270 fokkal.

0 - portrait mód , az alsó széle a képnek az "Adafruit Logo" közelében van

90 is landscape mód , az alsó széle a képnek a gombok felé van.

180 is portrait mód, a felső széle a képnek az "Adafruit Logo" közelében van

270 is landscape mód, a felső széle a képnek a gombok felé van.

Ezt a fájlt a nano szövegszerkesztővel módosíthatod. A módosítás után újra kell indítani a gépet, hogy a változtatás érvényesóljön.

A frequency= vváltozó mondja meg a drivernek, hogy milyen gyorsan frissítse a képernyőt. 32MHz (32000000) érték 20 FPS-ot jelent, de ha a kijelző furcsa dolgokat művel, akkor próbáld meg lecsökkenteni 16MHz-re (16000000).

sudo reboot és nézd a konzol kimenetet (vagy futtasd a dmesg parancsot a konzol ablakból a belépés után) látni fogod, hogy a modul települt. Keresd meg az alábbi sorokat. STMPE610 detektálás és a ILI9340 képernyő frekvencia beállítás. Ahogy a következő képen látszik.

Az alábbi módon konfigurálhatjuk be az érintő kijelzőt a rotate=90 értékre (a finomhangolást és további forgatás beállítást /rotate=XX/ a következő szekcióban olvashatod)

Hozd létre a szükséges könyvtárat és konfigurációs fájlt az alábbiak szerint:

sudo mkdir /etc/X11/xorg.conf.d

sudo nano /etc/X11/xorg.conf.d/99-calibration.conf

majd írd be az alábbi sorokat és mentsd el:

Section "InputClass"
       Identifier      "calibration"
       MatchProduct    "stmpe-ts"
       Option  "Calibration"   "3800 200 200 3800"
       Option  "SwapAxes"      "1"
EndSection

Most kipróbálhatod, hogy elindítod a grafikus felületet (X) újra az alábbi módon:

 FRAMEBUFFER=/dev/fb1 startx

Nyomj Control-C-t hogy kilépj az X-ből

Ha nem akarod minden alkalommal begépelni a ‘FRAMEBUFFER=/dev/fb1’-t mielőtt kiadod a startx parancsot, csinálhatsz egy default beállítást a profile file-od szerkesztésével: sudo nano ~/.profile és add hozzá

 export FRAMEBUFFER=/dev/fb1

az elejéhez, majd mentsd el a jól ismert módon. Ha kij- majd újra beelentkezel, vagy újraindítod a Raspberry PI-t, akkor érvényre jut a beállítás.

Érintőpanel telepítés & kalibrálás

Az érintőpanel beállítása

Most, hogy a kijelző szépen működik, itt az ideje, hogy az érintőpanellel is foglalkozzunk. Néhány kalibrációs lépést kell elvégezni. De ez sem igazán nehéz feladat

Mielőtt nekikezdünk, létre kell hozni egy udev szabályt a érintőpanelnek. Ez azért kell, mert az eventX mindig átnevezi az eszközt attól függően, hogy van-e plusz billentyűzet vagy egér csatlakoztatva, és bosszantó mindig kitalálni, hogy éppen milyen néven látja.

Futtasd az alábbi parancsot

 sudo nano /etc/udev/rules.d/95-stmpe.rules

az új udev file létrehozásához és másold bele a következő sort:

SUBSYSTEM=="input", ATTRS{name}=="stmpe-ts", ENV{DEVNAME}=="*event*", SYMLINK+="input/touchscreen" 

Töröld, majd telepítsd újra az érintőpanelt a következő paranccsal:

 sudo rmmod stmpe_ts; sudo modprobe stmpe_ts

Eztán írd be: ls -l /dev/input touchscreen

Ennek egy eventX-re kell mutatni, ahol az X értéke valamilyen szám. Ez a különböző beállításokban más és más lehet attól függően, hogy egy billentyűzet/egér/USB eszközök használatban vannak-e.

Van néhány hasznos eszköz, amikkel az érintőpanel kalibrálását és debuggolását végezhetjük. Ehhez telepítsd a következő csomagokat "event test" és "touchscreen library".

 sudo apt-get install evtest tslib libts-bin

Mostmár tudod használni az eszközöket, mint például sudo evtest /dev/input/touchscreen, ami valós időben mutatja az érintőpanel eseményeit. Nyomj rá az érintőpanelre és nézd a riportot.

OK, lássunk neki a kalibrálás folyamatának. Csak egyszer kell kalibrálni és utána többet már nem. Kezdjük a kalibrálást az alábbi, parancssorból kiadott parancsal

sudo TSLIB_FBDEVICE=/dev/fb1 TSLIB_TSDEVICE=/dev/input/touchscreen ts_calibrate

kövesd a képernyőre kiírt utasításokat. Használj stylus-t - egy régebbi okostelefonból - a precíz beállítás érdekében. NE használj semmilyen hegyes fém eszközt, csak műanyagot!

Ezután futtasd a következő parancsot

 sudo TSLIB_FBDEVICE=/dev/fb1 TSLIB_TSDEVICE=/dev/input/touchscreen ts_test

mely segítségével tesz ábrákat tudsz rajzolni. Ha úgy érzed, nem elég precíz a beállítás, akkor kezd előről a kalibrálást!

X Calibration

Be tudod állítani az X grafikus beviteli rendszert is, de ehhez egy másik programot kell használnod: xinput_calibrator

Bármikor megteheted, ha a meglévő beállítások nem igazán felelnek meg, vagy ha megváltoztatod a rotate=XX modul beállításokat. Mivel a TFT kijelző és az érintőpanel meghajtója külön szoftver összetevő, ezért az érintőpanel beállításai nem igazodnak automatikusan a TFT beállításokhoz.

Normál esetben neked kellene lefordítani a csomagokat, de mi megtettük ezt, és csak telepítened kell és futtatni az alábbiak szerint:

  • wget http://adafruit-download.s3.amazonaws.com/xinput-calibrator_0.7.5-1_armhf.deb
  • sudo dpkg -i -B xinput-calibrator_0.7.5-1_armhf.deb

Mielőtt elkezded az xinput kalibrálását, törölnöd kell a régi kalibrációs adatokat. Ehhez add ki az alábbi parancsot, mielőtt elindítod a startx-et és a kalibráló szoftvert, mert különben teljesen szétesik a beállításod:
sudo rm /etc/X11/xorg.conf.d/99-calibration.conf

Most futtathatjuk az xcalibrator programot, miközben szintén fut maga az X. Ezt futtathatod úgy is, hogy elindítod a startx segítségével a grafikus módot és nyitsz benne egy terminál ablakot és abból indítod a xinput_calibrator parancs kiadásával. Vagy csinálhatod úgyis, ahogy mutatom, hogy az SSH/Terminal shell-ből adod ki az alábbi parancsokat a következő sorrendben:

 FRAMEBUFFER=/dev/fb1 startx &

DISPLAY=:0.0 xinput_calibrator

Kövesd az utasításokat a képernyőn

Miután befejezted, valami hasonlót kapsz eredményül:

Futtasd ezt sudo nano /etc/X11/xorg.conf.d/99-calibration.conf és másold be az eredményt amit kaptál:

Section "InputClass"
       Identifier      "calibration"
       MatchProduct    "stmpe-ts"
       Option  "Calibration"   "119 3736 3850 174"
       Option  "SwapAxes"      "1"
EndSection

Lépj ki az X-ből. Vagy ha akarod, az fg begépelésével előtérbe hozhatod és Control-C megnyomásával kiléphetsz.

Most végeztünk, az érintő paneled bekalibrálva! HURRÁÁÁÁÁ!

 

;