Pantallas, displays y TFT

INTRODUCCIÓN

Existen pantallas de diferentes tamaños. El tamaño de la pantalla es la medida de su diagonal expresada en pulgadas. Para programar un display, necesitas conocer el chip driver o controlador que monta. Con ese dato, podrás buscar e instalar las librerías en Arduino necesarias. Adafruit a creado la mayoría de estas librerías.

También es interesante conocer el número de píxeles por pulgada cuadrada. Cuanto más pequeño se el tamaño de pixel, más píxeles por pulgada tenemos, y mayor es la resolución

Para facilitar la programación de gráficos en estos displays, Adafruit ha creado una librería (Adafruit GFX Library) que nos permiter hacer círculos, líneas, rectángulos o escribir texto de forma sencilla

Cómo funciona:

OLED Display de 0,96 pulgadas (128×64 pixels )

Es una pantalla de 0,96", con una resolución de 128x64 píxeles. Está controlada por el driver SSD1306 (necesitarás instalar dicha librería en arduino). Este driver se comunica con Arduino mediante el puerto I2c, por lo que también vas a necesitar tener instalada la librería "Wire"

Cómo funciona:

Aprende a programar pantallas TFT

Normalmente necesitarás incluir 3 librerías:

SPI.h

La comunicación Arduino-TFT es a través del puerto de 4 cables SPI. Esta librería gestiona esta comunicación.

Adafruit_GFX.h

Esta librería nos ayuda a dibujar los gráficos. Por ejemplo, si quisiéramos dibujar un círculo, tendríamos que hacerlo píxel a píxel. Con esta librería usamos un solo comando.

Adafruit_ILI9341.h

Ésta es la propia del driver que gestiona cada pantalla, por lo que es diferente para cada tipo de pantalla según su driver o controlador.

En este enlace tienes todo lo que necesitas para hacer gráficos. Léelo tranquilamente, son varias páginas pero te ahorrará muchos problemas.

Si quieres programar un juego de arcade, necesitas que los diferentes actores o sprites se muevan. Para dar sensación de movimiento de un objeto es necesario que lo borres y lo redibujes rápidamente en una posición contigua a la original. Para borrar el objeto lo redibujamos pero con el color del fondo de la pantalla. Luego, solo tienes que dibujarlo con su color original en otra posición. De esta forma se consigue sensación de movimiento.

Aquí tienes una editor on-line de juegos de arcade muy sencillo.

INVADERS I

Este primer consiste en una bola que se mueve en diagonal a lo largo de la pantalla. Las coordenadas de la bola son "x" e "y". El valor de estas coordenadas se incrementa en una unidad por cada ejecución de lazo loop(). Por eso la bola avanza en diagonal

Descargar programa.

INVADERS IV

Conseguimos que la bola rebote en el rectángulo añadiendo una nueva condición "if". Notar que la bola siempre rebota a 45º por lo que el juego se hace un poco pesado.En la siguiente versión intentamos diferentes ángulos en el rebote inferior.

Descargar programa.

INVADERS II

Aquí conseguimos que la pelota rebote en las paredes. Para ello cambiamos el signo del incremento dependiendo en qué pared estemos.

Descargar programa.

INVADERS V

Se ha añadido una pantalla de bienvenida, un marcador "score" y unas vidas en forma de corazón para disminuir la velocidad de la bola.

Descargar programa.

INVADERS III

Ahora añadimos un rectángulo inferior. Se trata que el jugador lo haga mover con un potenciómetro para que la bola rebote. La señal del potenciómetro se lee con analogRead(A0).

Descargar programa.

-----------

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.

Pantallas TFT 1.8 pulgasas basadas en ST7735 chip

Instala la librería de nombre "ST7735" desde la misma ide de Arduino. Cuando la tengas instalada, en ejemplos podrás ver algunos programas que se han incluido automáticamente.

Programa ejemplo de el inicio de un videjuego aquí

Cómo funciona:

Pantallas TFT 2.8 pulgadas basadas en ILI9341 chip

Instala la librería de nombre "ILI9341" desde la misma ide de Arduino. Cuando la tengas instalada, en ejemplos podrás ver algunos programas que se han incluido automáticamente.

Cómo funciona: