noll
Använda Gameduino 2-biblioteket med EVE TFT-moduler

Använda Gameduino 2-biblioteket med EVE TFT-moduler

6 juli 2023

Gameduino 2-biblioteket, skrivet av James Bowman, är utformat för grafikkontroller-IC-serien FT80x/FT81x och stöder olika mikrokontroller. Detta bibliotek innehåller en rad exempelskisser, från enkla "Hello World"-program till mer komplexa program som använder widgets, åtkomst till PNG-filer från ett microSD-kort och till och med genererar brädspelsimulationer.

I den här handledningen kommer vi att använda en Arduino Uno för att styra vår NHD-4.3-480272FT-CSXP-CTP -modul och lista de nödvändiga ändringarna för att kompilera den grundläggande "Hello World"-skissen.

Kompatibla TFT EVE-skärmar för denna handledning

Guiden behandlar användningen av Gameduino 2-biblioteket med följande Newhaven Display EVE TFT-moduler:

Skärmstorlek Artikelnummer
3,5 tum TFT NHD-3.5-320240FT-CSXP-T
4,3 tum TFT NHD-4.3-800480FT-CSXP-CTP
NHD-4.3-480272FT-CSXP-CTP
NHD-4.3-480272FT-CSXP-T
5,0 tum TFT NHD-5.0-800480FT-CSXP-CTP
NHD-5.0-800480FT-CTXL-CTP
NHD-5.0-800480FT-CTXL-T
7,0 tum TFT NHD-7.0-800480FT-CSXV-CTP
NHD-7.0-800480FT-CSXV-T

Hårdvaru- och mjukvarukrav

För att kunna använda Gameduino 2-biblioteket behöver du följande:

Programvaruinstallation: Ladda biblioteket till din Arduino IDE

Steg för att ladda Gameduino 2-biblioteket till Arduino-kortet.

  1. Ladda ner biblioteket: Ladda ner Gameduino2-biblioteket för ditt projekt.
  2. Öppna din Arduino IDE: Starta din Arduino IDE-programvara på din dator. Se till att du har den senaste versionen av IDE för att undvika problem.
  3. Lägg till biblioteket i Arduino IDE: Efter att du startat Arduino IDE, navigera till Sketch > Include Library > Add .ZIP Library. Leta reda på den nedladdade biblioteksfilen på din dator och välj den.

    Om du är nybörjare när det gäller att installera bibliotek för Arduino kan du hitta detaljerade instruktioner på Arduinos officiella webbplats.

  4. Kontrollera installationen: När biblioteket är installerat ska det vara tillgängligt i IDE, som visas på bilden nedan. För att kontrollera detta, gå till Arkiv > Exempel, där du ska se Gameduino2 i listan. Om du ser det har biblioteket installerats korrekt. Om det inte finns där, upprepa processen eller felsök eventuella fel.
Gameduino-bibliotek laddat på Arduino IDE
Kontrollera att biblioteket är laddat till din Arduino IDE genom att gå till Arkiv > Exempel > Gameduino2.

Kom ihåg att starta om Arduino IDE om ditt nya bibliotek inte visas i listan med exempel. Om du stöter på problem kan du vända dig till Arduino-communityns forum för hjälp.


Hårdvaruinstallation

Innan du ansluter, se till att NHD-FT81x-SHIELD J4, J5 och J6 kortslutna och J1-J3 öppna för Arduino Uno-anslutning enligt nedan:

Arduino Shield-lödbryggor.
NHD-SHIELD har J4, J5 och J6 kortslutna och J1-J3 öppna för Arduino-anslutningen.

Fäst skölden på din Arduino, anslut sedan TFT-skärmen och skölden med hjälp av den 20-poliga platta flexkabeln och anslut 9V-strömförsörjningen till Arduino Uno.

anslutning mellan skärm, LCD och Arduino.
Anslutning mellan skärm, Arduino-kort och LCD för att använda Gameduino 2-biblioteket.

Ändra Gameduino2-biblioteket

Innan du kör något av exempelskisserna måste filen GD2.cpp modifieras genom att kommentera en kodrad för att göra Gameduino2-biblioteket kompatibelt med våra EVE-skärmar. För att göra detta, följ stegen nedan:

  1. Navigera till Dokument > Arduino > bibliotek > Gameduino2 > GD2.cpp.
  2. Öppna GD2.cpp i din favoritkodredigerare.
  3. Säkerställ //if (STORAGE && (options & GD_STORAGE)) är kommenterad.
  4. Spara ändringarna och stäng den modifierade filen.
modifierad kod
Öppna GD2.cpp och se till att //if (STORAGE && (options & GD_STORAGE)) är kommenterat.

EVE TFT-register

De erforderliga tidsvärdena för respektive display kan kopieras och klistras in från tabellen nedan.

TFT-storlek Upplösning Registrera värden
3,5 tum TFT 320 x 240
            GD.wr16(REG_HSIZE, 320);
            GD.wr16(REG_HCYCLE, 408);
            GD.wr16(REG_HOFFSET, 70);
            GD.wr16(REG_HSYNC0, 0);
            GD.wr16(REG_HSYNC1, 10);
            GD.wr16(REG_VSIZE, 240);
            GD.wr16(REG_VCYCLE, 263);
            GD.wr16(REG_VOFFSET, 13);
            GD.wr16(REG_VSYNC0, 0);
            GD.wr16(REG_VSYNC1, 2);
            GD.wr16(REG_PCLK, 8);
            GD.wr16(REG_SWIZZLE, 0);
            GD.wr16(REG_PCLK_POL, 0);
            GD.wr16(REG_CSPREAD, 1);
            GD.wr16(REG_DITHER, 1);
            GD.wr16(REG_ROTATE, 0);
		
4,3 tum TFT 480 x 272
            GD.wr16(REG_HSIZE, 480);
            GD.wr16(REG_HCYCLE, 548);
            GD.wr16(REG_HOFFSET, 43);
            GD.wr16(REG_HSYNC0, 0);
            GD.wr16(REG_HSYNC1, 41);
            GD.wr16(REG_VSIZE, 272);
            GD.wr16(REG_VCYCLE, 292);
            GD.wr16(REG_VOFFSET, 12);
            GD.wr16(REG_VSYNC0, 0);
            GD.wr16(REG_VSYNC1, 10);
            GD.wr16(REG_PCLK, 5);
            GD.wr16(REG_SWIZZLE, 0);
            GD.wr16(REG_PCLK_POL, 1);
            GD.wr16(REG_CSPREAD, 1);
            GD.wr16(REG_DITHER, 1);
            GD.wr16(REG_ROTATE, 0);
		
4,3 tum TFT 800 x 480
            GD.wr16(REG_HSIZE, 800);
            GD.wr16(REG_HCYCLE, 928);
            GD.wr16(REG_HOFFSET, 88);
            GD.wr16(REG_HSYNC0, 0);
            GD.wr16(REG_HSYNC1, 48);
            GD.wr16(REG_VSIZE, 480);
            GD.wr16(REG_VCYCLE, 525);
            GD.wr16(REG_VOFFSET, 32);
            GD.wr16(REG_VSYNC0, 0);
            GD.wr16(REG_VSYNC1, 3);
            GD.wr16(REG_PCLK, 2);
            GD.wr16(REG_SWIZZLE, 0);
            GD.wr16(REG_PCLK_POL, 1);
            GD.wr16(REG_CSPREAD,0);
            GD.wr16(REG_DITHER, 1);
            GD.wr16(REG_ROTATE, 0);
		
5,0 tum TFT 800 x 480
            GD.wr16(REG_HSIZE, 800);
            GD.wr16(REG_HCYCLE, 928);
            GD.wr16(REG_HOFFSET, 88);
            GD.wr16(REG_HSYNC0, 0);
            GD.wr16(REG_HSYNC1, 48);
            GD.wr16(REG_VSIZE, 480);
            GD.wr16(REG_VCYCLE, 525);
            GD.wr16(REG_VOFFSET, 32);
            GD.wr16(REG_VSYNC0, 0);
            GD.wr16(REG_VSYNC1, 3);
            GD.wr16(REG_PCLK, 2);
            GD.wr16(REG_SWIZZLE, 0);
            GD.wr16(REG_PCLK_POL, 0);
            GD.wr16(REG_CSPREAD, 0);
            GD.wr16(REG_DITHER, 1);
            GD.wr16(REG_ROTATE, 0);
		
7,0 tum TFT 800 x 480
            GD.wr16(REG_HSIZE, 800);
            GD.wr16(REG_HCYCLE, 928);
            GD.wr16(REG_HOFFSET, 88);
            GD.wr16(REG_HSYNC0, 0);
            GD.wr16(REG_HSYNC1, 48);
            GD.wr16(REG_VSIZE, 480);
            GD.wr16(REG_VCYCLE, 525);
            GD.wr16(REG_VOFFSET, 32);
            GD.wr16(REG_VSYNC0, 0);
            GD.wr16(REG_VSYNC1, 3);
            GD.wr16(REG_PCLK, 2);
            GD.wr16(REG_SWIZZLE, 0);
            GD.wr16(REG_PCLK_POL, 1);
            GD.wr16(REG_CSPREAD, 0);
            GD.wr16(REG_DITHER, 1);
            GD.wr16(REG_ROTATE, 0);
		

Exempel: Hej världen

När ovanstående ändringar har gjorts i respektive fil är det dags att testa skissen "Hello World":

Obs: Följande ändringar hänvisar till våra 4,3-tums EVE TFT-timings/register som exempel.

  1. Öppna filen helloword.ino genom att gå till Arkiv > Exempel > Gameduino2 > Grunder > Hello World.
  2. Ersätt GD.begin(0); med GD.begin(0,10,5); i setup() funktion.
  3. Hämta värdena från tabellen EVE TFT-register ovan för din skärmstorlek.
  4. Lägg till funktionen TFT_4_3() och anropa den i inställningsfunktionen enligt koden nedan.
  5. Ladda upp koden till ditt Arduino Uno-kort. Se till att välja kort och port innan du laddar upp skissfilen. SeLadda upp en skiss i Arduino IDE för mer information.

Den slutliga koden bör se ut ungefär så här:

#include 
#include 
#include 
void TFT_4_3()
{
GD.wr16(REG_HSIZE, 480);
GD.wr16(REG_HCYCLE, 548);
GD.wr16(REG_HOFFSET, 43);
GD.wr16(REG_HSYNC0, 0);
GD.wr16(REG_HSYNC1, 41);
GD.wr16(REG_VSIZE, 272);
GD.wr16(REG_VCYCLE, 292);
GD.wr16(REG_VOFFSET, 12);
GD.wr16(REG_VSYNC0, 0);
GD.wr16(REG_VSYNC1, 10);
GD.wr16(REG_PCLK, 5);
GD.wr16(REG_SWIZZLE, 0);
GD.wr16(REG_PCLK_POL, 1);
GD.wr16(REG_CSPREAD, 1);
GD.wr16(REG_DITHER, 1);
GD.wr16(REG_ROTATE, 0);
GD.swap();
} 
void setup()
{
  GD.begin(0,10,5);
  TFT_4_3();
}
void loop()
{
  GD.ClearColorRGB(0x103000);
  GD.Clear();
  GD.cmd_text(GD.w / 2, GD.h / 2, 31, OPT_CENTER, "Hello world");
  GD.swap();
}
	

Om ändringarna har gjorts korrekt bör följande visas på EVE TFT-displayen:

Hello World-kod med Gameduino2-biblioteket
Visar "Hello world" på en TFT EVE-skärm med hjälp av Gameduino2-biblioteket.

Grattis! Nu kan du köra exempelskisserna och utforska de spännande funktionerna i Gameduino2-biblioteket med våra EVE TFT-skärmar.


Programvarusupport

Observera att all programvara relaterad till Gameduino2-biblioteket har utformats av James Bowman och inte skapats eller underhålls av Newhaven Display International Inc. För ytterligare programvarusupport relaterad till Gameduino2-biblioteket rekommenderar vi att du besöker James Bowmans Github-arkiv.

Referenslänkar

Ytterligare resurser

För ytterligare support om användning av våra TFT EVE-seriedisplayer med Gameduino2-biblioteket eller frågor om våra andra displayprodukter, vänligen kontakta oss via någon av våra tekniska supportkanaler:

E-post techsupport@newhavendisplay.com
Telefon (847) 844-8795
Stödcenter Newhaven Display Support Center