PANTALLA LCD (Alejandro Valcárcel y Alberto Pumar)

Documentación Proyecto Integrado, 2º Bachillerato A Científico-Tecnológico

Alejandro Valcárcel Maqueda (documentación, exposición, construcción física)

Alberto Pumar Jiménez (construcción lógica, diseño, programación, idea original)

Pong con Pantalla LCD y Joystick

Introducción

El objetivo final sería este, construir un pequeño videojuego, el famoso Pong, mediante una pantalla LCD programada con Arduino Uno, y usados como control un Joystick. Para ello, era necesario realizar algunas cosas antes. Primero, buscamos información sobre tipos de pantallas LCD, y tras encontrar varias posibilidades, finalmente nos decantamos por la mejor relación calidad-precio. Se trata de una pantalla de 128X64, con retroiluminación y píxeles en blanco (a continuación la veremos más detalladamente). Tras recibir esta, el primer objetivo consistió en acostumbrarnos a programar esta, y a sus códigos básicos, realizando figuras simples, mensajes, u objetos en movimientos. Una vez entendidos a fondo los códigos básicos, pasamos a establecer un control externo. Para ello, empezamos usando un potenciómetro, con el objetivo de mover una barra en la pantalla. Una vez completado el código para esta función, pasamos a pulir algunos detalles, y darle la máxima precisión posible. Hasta aquí, ya teníamos una parte importante hecha, podíamos mover una barra (que luego sería el paddle) por la pantalla. Continuamos añadiendo un círculo, que  la bola, que se moverá de forma vertical, con inicio aleatorio, por la pantalla. Decir que este paso quizás sea de los más complejos, ya que la bola tendía a realizar cosas extrañas al dar en las esquinas del paddle. Una vez resuelto este problema, solo quedaba sustituir el potenciómetro por el Joystick, y añadirle detalles como mensajes de Game Over, así como otros perfeccionamientos.

De este modo, el proyecto final quedaba resuelto: teníamos un juego, el pong, montado en una pantalla LCD, basada en Arduino, y controlada mediante un joystick.

Pasemos a ver los detalles:

 

LA PANTALLA LCD:

Como ya hemos dicho antes, decidimos comprar una pantalla con retroiluminación azul, de píxeles blancos, con medidas de 128×64. Se trata del modelo Graphic LCD DISPLAY MODULE KS0108, adquirido por internet, via ebay. Decir que el vendedor fue perfecto, y llegó en el plazo indicado, sin desperfecto alguno, tal como se indicaba en el anuncio. Haciendo click aquí podrás acceder a la página donde la compramos, así como a detalles más específicos.

Pasemos ahora a una descripción menos física, es decir, que haga referencia a lo programable:

 

La pantalla, que se divide en dos cuadrados, incluye tres controladores: uno general, y otro para cada mitad de la pantalla. La placa Arduino va conectado directamenteal contralor general mediante los ocho bits de datos (cada uno ocupado por un pin), y mediante los otros dos pines, controlamos en cual de las medias pantallas estamos escribiendo.

A parte, tenemos otros dos pines, uno para regular el contraste, y otro que regula la luminosidad de la pantalla ( ya que es retroiluminada).

La alimentación de la pantalla esta compuesta por dos pines GND y otros dos de 5V.

Existe otro pin, que se ocupa de la funcion de reset, y otros tres que indican:

  -Cuando la pantalla lee y cuando escribe

  -Cuando escribe datos simples o funciones

  -Otro, a completar

 

De este modo, teniendo la pantalla idéntica a la que vemos en la imagen a continuación, las conexiones se realizarian tal como se expone en la tabla:

 

                        lcd.png

 

Pin

Destino

Descripción

1

ground

2

NC

3

analog 1

Ajusta el contraste del LCD (<=7.0v).

4

analog 0

Tiene distintos propósitos si está trabajando en modo serie o paralelo.

5

7

En modo paralelo indica el tipo de operación (lectura/escritura). En modo serie se utiliza como entrada de datos.

6

6

En modo paralelo es la señal de comienzo de actividad (lectura de datos/selección de operación…). En modo serie es la señal de reloj.

7-10

5, 4, 11, 10

Bits menos significativos en modo paralelo 8 bits.

11-14

9, 8, alog1, alog2

Bits más significativos en modo paralelo 8 bits. Bus de datos en modo paralelo 4 bits.

15

POT

Selecciona el modo de funcionamiento (Serie / Paralelo).

16

5V

17

GND

18

19

BackLight (+)

Terminal positivo de la retroiluminación (3.3v – 5.0v).

20

BackLight (-)

Terminal negativo de la retroiluminación.

Como exponemos en la introducción, tras recibir la pantalla y realizar correctamente las conexiones (mediante la información proveniente de la misma web de compra), nos dispusimos a entender los códigos principales a fondos, utilizándolos para su posterior uso. Para ello, nos ayudamos de una librería obtenida en internet, la cual puedes descargar en este link.

https://proyectos2bach.wordpress.com/2014/04/07/codigo-pantalla-lcd/ (CÓDIGO PANTALLA LCD)

Proyecto Realizado Por:

Alberto Pumar Jiménez, director de proyecto. A partir de la idea original, la cual fue suya, se encargo de desarrollarlo, decidir que materiales harian falta, y desarrolar el código al completo. Además, montó el sistema Arduino con la pantalla, realizando las conexiones pertinentes. Añadir que fue el encargado de comprar la pantalla LCD.

Alejandro Valcárcel, encargado de desarrollar la memoria del proyecto, así como esta misma documentación. En el sentido de la construcción, llevó a cabo el soldado de cables y componentes para su correcta instalación.

José Pujol Pérez, que colaboró activamente desde el primer momento, también promotor de la idea original, y añadiendo siempre algún <<puntillo>> para darle más gracia a el juego que con este proyecto se realizó

 

 

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s