Tft kezdve az arduino-val

Arduino TFT bővítőkártya

Az Arduino TFT egy Arduino expanziós tábla, amely háttérvilágítású TFT-képernyőt és microSD memóriakártya-foglalatot tartalmaz. A speciális TFT könyvtár használatával megjelenítheti a szöveget, képeket vagy geometriai alakzatokat a képernyőn.

Tft kezdve az arduino-val

A bővítő kártya külső érintkezőinek helyzete megfelel az Arduino Esplora és az Arduino Robot speciális csatlakozóinak. ami megkönnyíti a képernyő csatlakoztatását ezekhez az eszközökhöz. Azonban a TFT kijelző bármely Arduino modellel használható.

A TFT könyvtár az Arduino fejlesztési környezetben található. az 1.0.5 verzió óta.

A könyvtár

Az Arduino TFT könyvtár az Adafruit GFX és az Adafruit ST7735 könyvtárain alapul. és jelentősen bővíti képességeit. A GFX könyvtár elsősorban grafikus rajzolási rutinokat tartalmaz, míg az ST7735 a TFT képernyővel való interakció. Az Arduino-val foglalkozó könyvtáraknak azok a kiegészítései, amelyeket úgy terveztek, hogy azok jobban illeszkedjenek a feldolgozó nyelv API-jához.

A TFT könyvtár módszerei az SPI könyvtár funkcióin alapulnak. ezért minden programban, amely TFT-képernyőn dolgozik, az SPI könyvtárat be kell jelenteni. Ennek megfelelően, ha SD memóriakártyával dolgozik - be kell jelentenie az SD könyvtárat.

A képernyő szervezése

Alapértelmezés szerint a képernyő vízszintes irányú, szélessége nagyobb, mint a magasság. A képernyő felső része a tábla oldalán található, ahol az "SD CARD" felirat látható. Ezzel a tájolással a képernyő felbontása 160 x 128 képpont.

A kijelző koordinátarendszerét leginkább rácsként ábrázoltuk, amelynek minden egyes cellája különálló képpont. A pixel helyét egy pár koordináták határozzák meg. A képernyő bal felső sarkában található pont 0,0-es koordinátával rendelkezik. Ha ez a pont a jobb felső sarokba kerül, akkor a koordinátái 0, 159; a bal alsó sarokban - 127,0; a jobb alsó sarokban - 127, 159.

A kijelző függőleges helyzetben is használható (más néven "portré tájolás"). Ehhez elegendő felhívni a setRotation (0) függvényt, amely után az x és y tengelyek egymással kicserélődnek. Miután ezt a módszert hívta, a screen.width () és screen.right () függvények már visszaadnak más értékeket.

A képernyő lehetővé teszi, hogy 16 bites színmélységet küldjön. A szín piros és kék komponensei 32 különböző értéket (5 bitet) és a zöld összetevőt - 64 értéket (6 bitet) tartalmazhatnak. Az egyéb programokkal való kompatibilitás érdekében azonban a könyvtár még mindig a piros, zöld és kék csatornák (0 - 255) 8 bites értékével működik, arányosan méretezve a kívánt tartományba.

Hardver és szoftver interfész SPI - ami jobb?

A munkát TFT-képernyővel két módon rendezheti. Az első megoldás az Arduino SPI hardverbusz használata, a második módja pedig a szükséges következtetések helyének kézzel történő kijelentése. A képernyőfunkció szempontjából nincs különbség az első és a második út között. Az SPI hardver interfész sebessége azonban sokkal magasabb.

Ha SD memóriakártyát kíván használni a TFT-modulon, akkor csak a hardver interfész SPI-n keresztül kell kapcsolódnia a modulhoz. Ezt a könyvtár minden példájában használják.

A képernyő csatlakoztatása

Tft kezdve az arduino-val

Csatlakozás az Arduino Esplora-hoz

Az Arduino Esplora elülső oldalán speciális csatlakozó található a képernyő csatlakoztatásához. Helyezze be az Arduino képernyőt erre a nyílásba úgy, hogy a kék "SD kártya" címke az USB port felett helyezkedjen el.

Tft kezdve az arduino-val

Csatlakozás más Arduino kártyákhoz

Ha megtudja, hogyan csatlakoztassa a képernyőt más Arduino modellekhez, olvassa el ezt az útmutatót.

Az első programot írjuk

A TFT-képernyő elkezdéséhez először meg kell próbálnia egy olyan programot írni, amely egyszerű vonalat rajzol. Ezután írunk egy olyan programot, amely két színű téglalapot képez, amelyek vízszintesen átlépik a képernyőt.

A példákban először bemutatják az Arduino Uno, Leonardo és egyéb modellek programlistáját. Az alábbi listák az Arduino Esplora listája.

Tehát a program elején Arduino következtetéseit fogjuk bemutatni, amelyek a képernyőn való interakcióra, a szükséges könyvtárak behozatalára és a TFT könyvtár főbb osztályainak létrehozására szolgálnak:

A setup () blokkban indítsa el a könyvtárat a start () függvénnyel, és törölje a képernyőt úgy, hogy a háttérszínt fekete háttérbe állítja a háttér () függvénnyel.

A hurok () blokkban egyenes vonalat rajzoljon a képernyőn, hívja a vonal () függvényt. A függvénysor () négy argumentumot tartalmaz: x és y kezdeti koordináták, x és y végső koordináták. Egy téglalap rajzolásához meg kell hívnia a rect () függvényt, amely négy paramétert is tartalmaz: a bal felső sarok x és y koordinátái, a téglalap szélessége és magassága pixelben. Az ezekhez a funkciókhoz tartozó hívások között megváltoztathatja a megjelenített alak színét a löket () vagy fill () függvényekkel. A stroke () függvény megváltoztatja a geometriai alak vonalának vagy kontúrjának színét, és a fill () függvény megváltoztatja az alak kitöltési színét. A noStroke () függvény meghívása után a könyvtár nem rajzolja meg a megjelenített formák határait. Ennek a funkciónak a visszavonásához elegendő a stroke () metódus hívása.

Az Arduino Esplora program felépítése gyakorlatilag ugyanaz. Az Arduino Esplora-ban külön csatlakozó található a TFT-képernyő csatlakoztatásához, ezért a vele együttműködő kimenetek hardveren vannak beállítva, és nem módosíthatók. Ebben az esetben a programban egy speciális osztályú EsploraTFT-t kell használni a képernyőhöz való munkához.

Ezért a programnak nem kell meghatároznia az Arduino következtetéseit, amelyek kölcsönhatásba lépnek a képernyővel; ez az információ automatikusan a benne lévő objektum belsejében található:

Mozgás a képernyő körül

A mozgás vagy animáció illúziója a kép gyors törlésével és megjelenítésével jön létre. Ha a feldolgozási nyelvet egy erőteljes számítógépen használja, akkor felhívhatja a háttér () függvényt a felhívás () függvény minden egyes hívása előtt, hogy törölje a képernyőt és rajzolja a képet az új pozícióba. Az Arduino teljesítménye azonban nagyon korlátozott az asztali PC-hez képest, ezért a háttér () függvényt a TFT könyvtárból egy kis időt vesz igénybe.

A korlátozott sebességű körülmények között, a mozgás illúziójának megteremtése érdekében jobb, ha az objektum pozícióját a loop () hurokban ellenőrizni fogjuk. Ha megváltozott az objektum helyzete, akkor a háttérszínnel kell festenie, majd az objektumot új pozícióba kell átírnia. Mivel ebben az esetben nem a teljes képernyőt frissítik, hanem csak néhány képpontját, a képfrissítés folyamata felgyorsul és mozgás illúzió jön létre.

Az alábbi példa mutatja a programot a pont mozgatására a képernyőn. A program struktúrája hasonló az előző szakaszban bemutatott példához, kivéve néhány változót a pont aktuális és előző pozíciójának tárolására, valamint a pont sebességének és irányának tárolására szolgáló változók.

A hurok () hurokban először frissítjük a pont helyzetét az x és y változók mozgásának irányával. Ezután ellenőrizzük, hogy a pont aktuális és korábbi pozíciója eltér-e. Ha más, akkor törölje az előző pontot, festse el háttérszínnel, majd rajzolj egy új pontot a kívánt pozícióba. Ha a pont "eléri" a képernyő határait - fordítsa meg az út irányát.

Az Arduino Esplora program következő verziója az alábbi:

Jelenítse meg a szöveget

A TFT könyvtár alapszintű betűtípust tartalmaz a szöveg megjelenítéséhez a képernyőn. Alapértelmezés szerint a karakterméret 5x8 képpont (5 - szélesség, 8 - magasság). A könyvtár képes megváltoztatni a betűméretet 10x16-ra, 15x24-re vagy 20x32-re. A betűkészletekkel kapcsolatos további információkért lásd az Adafruit oldalt a grafikai primitívumok használatával kapcsolatban.

Tehát a következő példában próbáljunk meg egy egyszerű számlálót létrehozni, amely minden fél másodpercnél tovább növekszik. Ehhez az előző példákhoz hasonlóan csatlakoztatjuk a szükséges könyvtárakat és deklaráljuk a szükséges változókat a setup () blokkban.

Ugyanabban a blokkban statikus szöveg jelenik meg a képernyőn, amely nem változik a program művelete során. A setTextSize () függvénnyel növelheti a betûméretet, hogy kiemelje a képernyõ legfontosabb elemeit. A képernyőn megjelenő dinamikus szöveget egy karakter tömbben kell tárolni. Az osztály String lehetővé teszi, hogy lekérdezze a munkát tömbökkel.

A hurok () blokkban a program kezdete óta kapjuk meg az aktuális időt, és eltároljuk egy karakterláncba a későbbi kimenet szöveges formában. A hurok minden egyes iterációján töröljük az előzőleg írt szöveget, így a kimeneti számok nem egymás fölé kerülnek.

Ugyanez a kód az Arduino Esplora számára:

Kép megjelenítése az SD memóriakártyán lévő fájlból

A TFT könyvtár lehetővé teszi, hogy az SD memóriakártyáról olvasson .bmp fájlokat és megjelenítse tartalmát a képernyőn. És a megjelenített képek nem felelnek meg a TFT-képernyő felbontásának (160x128). Megjegyzendő, hogy az Arduino nem tudja módosítani a képeket, ezért az összes szükséges grafikai fájl manipuláció (pl. Méretezés, vágás stb.) Meg kell történnie, mielőtt az SD-kártyára "öntöttek".

Az alábbi példa bemutatja, hogyan kell együttműködni az "arduino.bmp" képfájllal, amely az SD-kártya gyökérkönyvtárában található, és amely 160 x 128 képpont méretű képet tartalmaz. A program elolvassa a fájlt és megjeleníti a képernyőn a TFT könyvtár használatával.

A már ismerős könyvtárak mellett ebben a példában egy másik könyvtárat kell csatlakoztatni - az SD-t. Ezenkívül deklarálni kell az SD kártyanyílással összekapcsolt CS-t.

A PImage osztály egy kép betöltésére szolgál (ez az osztály használható a grafikus fájl formátumának ellenőrzésére a TFT könyvtárral való kompatibilitás érdekében).

Ugyanez a kód az Arduino Esplora számára.

Mi következik?

Most, hogy megértette a megjelenítés elveit, nézze meg a TFT könyvtár súgóját - ott talál információt a könyvtár API-ról, valamint további kód példákról. További technikai információkért lásd az Arduino TFT bővítőkártya oldalt. Továbbá megtekintheti az Adafruit grafikus könyvtárat ismertető oldalt is - itt talál további információkat az ebben az útmutatóban nem szereplő funkciókról.

Kapcsolódó cikkek