Amikor kézbevesszük ezt a klassz Raspberry PI-hez gyártott érintőképernyős TFT kijelzőt, rögtön elfog a hév, hogy valami nagyszerű dolgot kellene rá fejleszteni. Lehetne például az internetrádió grafikus, érintésvezérelt kezelőfelülete, vagy néhány plusz tartozékkal akár egy oszcilloszkóp kijelzője, vagy láthatnám rajta a hőmérőszenzorok állapotát.
Ekkor azonban felmerül a kérdés, hogy oké, de hogyan lássak neki?
Az egyik legkézenfekvőbb megoldást ismét a Python nyelv adja. Egyszerű elsajátítani, rengeteg segédlet van hozzá sok-sok példával. Itt most megosztunk pár ötletet veletek, hogy Ti már egyből a mélyvízbe ugorhassatok a saját ötletetek megvalósítására koncentrálhassatok. Ne azzal kelljen órákat eltölteni, hogy ezeket az apróságokat (de szinte legfontosabb alapokat) kelljen összeszedni a netről.
Szóval lássunk neki! Ahhoz, hogy az itt leírtak működjenek, feltétlenül szükséges, hogy az itt található leírás szerint telepítsd a kijelzőt. Valamint legyen hálózathoz csatlakoztatva, hogy másik gépről is el tudjuk érni hálózaton keresztül. A grafikus környezet fejlesztésekor fontos szempont, hogy azonnal ki is tudjuk próbálni azt. Ennek érdekében a fejlesztést, programozást az Adafruit által kialakított WEBIDE környezetben végezzük, Python nyelvet használva. Ennek lényege, hogy egy egyszerű kis szoftvert telepítünk a Raspberry PI-re, ami biztosítja, hogy egy másik gépről, böngészőből (Chrome, Firefox) el tudjuk érni kedvenc Raspberry PI gépünket. Ezen WEB-es felületről egyidőben több fájlt is tudunk szerkeszteni és parancssori hozzáférést (bash) is biztosít.
Miközben egy böngészőn keresztül elérjük a Raspberry PI-t, közben a grafikus programunk futását láthatjuk a Raspberry PI-re illesztett PITFT érintőpaneles kijelzőn. A Python nyelv rendkívül kifinomult módon támogatja a grafikus programok fejlesztését a pygame modul segítségével. Ez a modul kifejezette játékfejlesztésre lett létrehozva, és egyszerű használata lehetőséget nyújt arra, hogy igen rövid idő és igen kevés programsor használatával látványos grafikus megoldásokat hozzunk létre. A pygame-ről részletes leírás itt érhető el: http://www.pygame.org/docs/ Sok sok példaprogram biztosítja a könnyű megértést. De térjünk rá a lényegre.
Az első kérdés, hogy hogyan mondjuk meg a Python környezetnek, hogy a PITFT-t használja grafikus megjelenítőként?
Minden pygame összetevőt használó python program, kell hogy rendelkezzen az alábbi kijelzőt inicializáló programsorral:
pygame.display.init()
Mielőtt ez a sor lefut, előtte meg kell "mondani" a környezetnek, hogy melyik az a kijelző amit használnia kell. Jelen esetben ezt az alábbi módon tehetjük meg, hogy a PITFT-n lássuk az eredményt.
Először is importálni kell az 'os' modult. Ehhez a programunk elejére illesszük be az alábbi sort:
import os
Ezután a már korábban említett képernyő inicializáló sor elé tegyük be az alábbi kódot:
os.environ["SDL_FBDEV"] = "/dev/fb1"
Ez mondja meg a Python környezetnet, hogy a /dev/fb1 nevű eszközt kell használnia a grafikus megjelenítéshez. Ez pedig nem más mint a PITFT kijelző.
A programunk tehát valahogy így kell kezdődjön:
import os
os.environ["SDL_FBDEV"] = "/dev/fb1"
pygame.display.init()
|
Második tipp:
Hogyan használjuk a PITFT érintőpaneles kijelző panelján elhelyezkedő 4 db szabadon felhasználható nyomógombot?
Az Adafruit mérnökei ügyesen kitalálták, hogy 4 db nyomógombot is rátesznek az érintőkijelző paneljára. Ezek a gombok A GPIO#23 , #22, #21 (az új /Rev2-es/ Raspberry PI-k esetében ez a #27-es) és #18 portokra van kivezetve. Azaz ezen GPIO portokat tudjuk a programból figyelni, és ha megnyomjuk valamelyik gombot, akkor annak hatására végrehajthatunk saját kódokat.
Ehhez először is importálnunk kell az RPi.GPIO modult a python programunkba az alábbi módon:
import RPi.GPIO as GPIO
Ezután be kell állítanunk a GPIO módot. Itt ügyelni kell arra, hogy a fent felsorolt GPIO számozás nem a Raspberry PI tüskesorán a csatlakozó sorszámát jelenti, hanem az un. BCM számozás szerint számozást. Hogy ez mit is jelent valójában, arra most nem térünk ki, de itt részletes leírást találsz róla.
Szóval a megfelelő mód beállítása:
GPIO.setmode(GPIO.BCM)
Ezek után már csak egy feladat maradt, hogy megmondjuk, hogy ezek a GPIO portok IN azaz bemeneti portok. Azonban itt jön egy apró trükk! Nem elég csak IN módba tenni, hanem be kell állítani a pull_up_down regisztert is. Ezzel a trükkel lesznek használhatók a portok a nyomógombokkal. Ez a következő kóddal adható meg:
Button1 = 23
GPIO.setup(Button1, GPIO.IN, pull_up_down=GPIO.PUD_UP)
Természetesen ezt minden egyes GPIO portra be kell állítani, amit használni szeretnénk. Az alábbi linken letölthető a PITFTscope.py program, mely egy oszcilloszkóp képernyőjét rajzolja ki és a '2'-es gomb lenyomására kirajzol egy szimulált jelet. Majd a '3'-as gomb megnyomására letörli a képernyőt.