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:
- Ecrã Newhaven IPS EVE capacitivo TFT de 4,3 polegadas NHD-4.3-480272FT-CSXP-CTP
- Expositor Newhaven 20 POS FFC
- Ecrã Newhaven NHD-FT81x-SHIELD
- Arduino Uno
- Cabo USB 2.0 Tipo A/B
- Ferramenta Arduino IDE instalada
- Fonte de alimentação de 9 V
- Biblioteca Gameduino2
- Eve Asset Builder (para imagens)
Configuração do software: Carregar a biblioteca no IDE do Arduino
Passos para carregar a biblioteca Gameduino 2 na placa Arduino.
- Descarregar a biblioteca: Descarregue a biblioteca Gameduino2 para o seu projeto.
- 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.
-
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.
- 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.
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:
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.
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:
- Aceda a Documentos > Arduino > bibliotecas > Gameduino2 > GD2.cpp.
- Abra o ficheiro GD2.cpp no seu editor de código preferido.
- Assegurar
//if (STORAGE && (options & GD_STORAGE))está comentado. - Guarde as alterações e feche o ficheiro modificado.
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.
- Abra o ficheiro «helloword.ino» selecionando Ficheiro > Exemplos > Gameduino2 > Noções básicas > Hello World.
- Substituir
GD.begin(0);comGD.begin(0,10,5);nosetup()função. - Consulte a tabela de registos TFT do EVE acima para obter os valores correspondentes ao tamanho do seu ecrã.
- Adicionar a função
TFT_4_3()e chame-a na função de configuração, tal como se mostra no código abaixo. - 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:
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
- Página inicial do Gameduino2
- Página do Gameduino2 no GitHub
- Livro de receitas do Gameduino2
- Ficheiros de exemplo do FTDI EVE
- Visualize ou descarregue estas notas de aplicação em formato PDF.
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 |
