nulo
Usando a biblioteca Gameduino 2 com os módulos EVE TFT

Usando a biblioteca Gameduino 2 com os módulos EVE TFT

6 de julho de 2023

A biblioteca Gameduino 2, criada por James Bowman, foi concebida para a série de circuitos integrados de controladores gráficos FT80x/FT81x e é compatível com vários microcontroladores. Esta biblioteca inclui uma variedade de esboços de exemplo, desde programas simples do tipo «Hello World» até programas mais complexos que utilizam widgets, acedem a ficheiros PNG a partir de um cartão microSD e chegam mesmo a gerar simulações de jogos de tabuleiro.

Neste tutorial, vamos utilizar um Arduino Uno para controlar o nosso NHD-4.3-480272FT-CSXP-CTP e enumeraremos as alterações necessárias para compilar o esboço básico «Hello World».

Ecrãs TFT EVE compatíveis com este tutorial

Este guia aborda a utilização da biblioteca Gameduino 2 com os seguintes módulos TFT EVE da Newhaven Display:

Tamanho do ecrã Números de referência
TFT de 3,5” NHD-3.5-320240FT-CSXP-T
TFT de 4,3” NHD-4.3-800480FT-CSXP-CTP
NHD-4.3-480272FT-CSXP-CTP
NHD-4.3-480272FT-CSXP-T
TFT de 5,0” NHD-5.0-800480FT-CSXP-CTP
NHD-5.0-800480FT-CTXL-CTP
NHD-5.0-800480FT-CTXL-T
TFT de 7,0” NHD-7.0-800480FT-CSXV-CTP
NHD-7.0-800480FT-CSXV-T

Requisitos de hardware e software

Para utilizar a biblioteca do Gameduino 2, vai precisar do seguinte:

Configuração do software: Carregar a biblioteca no IDE do Arduino

Passos para carregar a biblioteca Gameduino 2 na placa Arduino.

  1. Descarregar a biblioteca: Descarregue a biblioteca Gameduino2 para o seu projeto.
  2. Abra o Arduino IDE: Inicie o software Arduino IDE no seu computador. Certifique-se de que tem a versão mais recente do IDE para evitar quaisquer problemas.
  3. Adicionar a biblioteca ao IDE do Arduino: Depois de iniciar o IDE do Arduino, aceda a Esboço > Incluir biblioteca > Adicionar biblioteca .ZIP. Localize o ficheiro da biblioteca descarregado no seu computador e selecione-o.

    Se ainda não tem experiência na instalação de bibliotecas para o Arduino, pode encontrar instruções detalhadas no site oficial do Arduino.

  4. Verificar a instalação: Assim que a biblioteca estiver instalada, deverá estar disponível no IDE, tal como se pode ver na imagem abaixo. Para verificar isso, vá a Ficheiro > Exemplos e deverá ver «Gameduino2» na lista. Se o vir, significa que a biblioteca foi instalada com sucesso. Se não estiver lá, repita o processo ou procure resolver quaisquer erros.
Biblioteca Gameduino carregada no IDE do Arduino
Verifique se a biblioteca está carregada no seu IDE do Arduino, indo a Ficheiro > Exemplos > Gameduino2.

Lembre-se de reiniciar o IDE do Arduino se a sua nova biblioteca não aparecer na lista de exemplos. Se tiver algum problema, consulte o fórum da comunidade Arduino para obter ajuda.


Configuração do hardware

Antes de ligar, certifique-se de que o NHD-FT81x-SHIELD os conectores J4, J5 e J6 em curto-circuito e os conectores J1-J3 abertos para a ligação ao Arduino Uno, conforme ilustrado abaixo:

Pontes de solda do Arduino Shield.
No NHD-SHIELD, os pinos J4, J5 e J6 estão em curto-circuito e os pinos J1-J3 estão abertos para a ligação ao Arduino.

Fixa o shield ao teu Arduino e, em seguida, liga o ecrã TFT ao shield utilizando o cabo flexível plano de 20 pinos e liga a fonte de alimentação de 9 V ao Arduino Uno.

ligação entre o shield, o ecrã LCD e o Arduino.
Ligação entre o shield, a placa Arduino e o ecrã LCD para utilizar a biblioteca Gameduino 2.

Modificar a biblioteca do Gameduino2

Antes de executar qualquer um dos esboços de exemplo, é necessário modificar o ficheiro GD2.cpp, colocando uma linha de código entre comentários, para tornar a biblioteca Gameduino2 compatível com os nossos ecrãs EVE. Para tal, siga os passos abaixo:

  1. Aceda a Documentos > Arduino > bibliotecas > Gameduino2 > GD2.cpp.
  2. Abra o ficheiro GD2.cpp no seu editor de código preferido.
  3. Assegurar //if (STORAGE && (options & GD_STORAGE)) está comentado.
  4. Guarde as alterações e feche o ficheiro modificado.
código modificado
Abra o ficheiro GD2.cpp e certifique-se de que //if (STORAGE && (options & GD_STORAGE)) está comentado.

Registos EVE TFT

Os valores de temporização necessários para cada ecrã podem ser copiados e colados a partir da tabela abaixo.

Tamanho do ecrã TFT Resolução Valores do registo
TFT de 3,5” 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);
		
TFT de 4,3” 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);
		
TFT de 4,3” 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);
		
TFT de 5,0” 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);
		
TFT de 7,0” 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);
		

Exemplo: Olá, Mundo

Depois de terem sido feitas as alterações acima referidas no ficheiro em questão, é altura de testar o esboço «Hello World»:

Nota: As alterações que se seguem terão como referência os tempos de resposta e registos do nosso ecrã TFT EVE de 4,3” como guia exemplificativo.

  1. Abra o ficheiro «helloword.ino» selecionando Ficheiro > Exemplos > Gameduino2 > Noções básicas > Hello World.
  2. Substituir GD.begin(0); com GD.begin(0,10,5); no setup() função.
  3. Consulte a tabela de registos TFT do EVE acima para obter os valores correspondentes ao tamanho do seu ecrã.
  4. Adicionar a função TFT_4_3() e chame-a na função de configuração, tal como se mostra no código abaixo.
  5. Carregue o código para a sua placa Arduino Uno. Certifique-se de que seleciona a placa e a porta antes de carregar o ficheiro do esboço. Consulte a secção«Carregar um esboço no Arduino IDE » para obter mais informações.

O código final deverá ficar semelhante a isto:

#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();
}
	

Se as alterações tiverem sido efetuadas com sucesso, deverá ver o seguinte no ecrã TFT do EVE:

Código «Hello World» com a biblioteca Gameduino2
Exibir «Hello world» num ecrã TFT EVE utilizando a biblioteca Gameduino2.

Parabéns! Agora já pode experimentar os esboços de exemplo e explorar as fantásticas funcionalidades da biblioteca Gameduino2 com os nossos ecrãs EVE TFT.


Suporte de software

Tenha em atenção que todo o software relacionado com a biblioteca Gameduino2 foi concebido por James Bowman e não é criado nem mantido pela Newhaven Display International Inc. Para qualquer apoio técnico adicional relacionado com a biblioteca Gameduino2, recomendamos que visite o repositório do James Bowman no GitHub.

Links de referência

Recursos adicionais

Para obter apoio adicional sobre a utilização dos nossos ecrãs da série TFT EVE com a biblioteca Gameduino2 ou para esclarecer dúvidas sobre os nossos outros produtos de visualização, contacte-nos através de qualquer um dos nossos canais de apoio técnico:

Correio eletrónico techsupport@newhavendisplay.com
Telefone (847) 844-8795
Centro de Apoio Centro de Apoio à Exposição de Novos Chifres