Campamento de Programación – Partes 7 y 8: Juega a tu Propio Juego de Tetris y Añade Otra Pantalla LCD

Arduino para el campamento de programación de ODROID-GO, incluye dos proyectos entre otros: Tetris y experimentos con la interfaz I2C. Antes de empezar con estos proyectos, es aconsejable trabajar en los proyectos Hello World y Configuración de Arduino que aparecen en la sección de referencias al final.

Tetris

Figure 01 - Tetris
Figura 01 – Tetris

Puedes importar, compilar y cargar la última versión del juego en ODROID-GO seleccionando las siguientes opciones de menú en el IDE de Arduino: Files → Examples → ODROID-GO → Applications → Tetris. Después pulsa la combinación de teclas: CTRL-U para compilar y cargar.

Figure 02 - Compile & upload
Figura 02 – Compilar y cargar

Una vez completada la carga, aparecerá el siguiente mensaje:

Hard resetting via RTS pin…

Interfaz I2C

Figure 03 - LCD with cable
Figura 03 – LCD con el cable

Vamos a aprender cómo usar la interfaz I2C en el puerto de expansión IO del ODROID-GO. En primer lugar, deberás conectar la pantalla LCD 16×2 al P2 (conector de expansión) de tu ODROID-GO de la siguiente forma:

P2 on ODROID-GO 16x2 LCD
GND (pin #1) GND
IO15 (Pin #4) SDA
IO4 (Pin #5) SCL
P3V3 (Pin #6) VCC
Figure 04
Figura 04

Figure 05
Figura 05

El siguiente paso consiste en importar la librería necesaria. Dependiendo del sistema operativo de tu máquina, los pasos pueden variar un poco:

Para MS Windows, abre un terminal e introduce los siguientes comandos:

c:\> cd $USERPROFILE/Documents/Arduino/libraries
c:\> git clone https://github.com/marcoschwartz/LiquidCrystal_I2C
En Linux, abre un terminal e introduce los siguientes comandos:
$ cd ~ && mkdir go-proj && cd go-proj
$ git clone https://github.com/marcoschwartz/LiquidCrystal_I2C \
~/Arduino/libraries/LiquidCrystal_I2C
Para usar I2C en ODROID-GO, resulta muy útil la librería Wire del ESP32. Esta librería se puede utilizar a través del IDE de Arduino. Sabemos que los puertos utilizados para las comunicaciones I2C son el #15 para SDA y el #4 para SCL. Define un preprocesador y usa la función Wire.begin () para incluir el siguiente código. Sólo puedes pasar 2 parámetros a la función: los pines #s SDA y SCL indicados anteriormente.
#define PIN_I2C_SDA 15
#define PIN_I2C_SCL 4

void setup() {
// put your setup code here, to run once:
Wire.begin(PIN_I2C_SDA, PIN_I2C_SCL);
}

void loop() {
// put your main code here, to run repeatedly:
}
Necesitamos añadir código para configurar la LCD. Usa el archivo de cabecera LiquidCrystal_I2C.h de la librería que te permite mostrar un mensaje con facilidad. Crea una instancia para controlar la LCD usando la declaración, que coge los LCD_ADDR, parámetros de columnas y filas correspondientes a la LCD 16×2:
LiquidCrystal_I2C lcd(LCD_ADDR, 16, 2
Invoque init(), enciende la luz de fondo con backlight(), configura el cursor para especificar un punto donde escribir con setCursor() y muestra los datos usando una llamada a print():
#include

#define PIN_I2C_SDA 15
#define PIN_I2C_SCL 4

const uint8_t LCD_ADDR = 0x3f;
LiquidCrystal_I2C lcd(LCD_ADDR, 16, 2);

void setup() {
// put your setup code here, to run once:
Wire.begin(PIN_I2C_SDA, PIN_I2C_SCL);

lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Hello, ODROID-GO");
}

void loop() {
// put your main code here, to run repeatedly:
}
Presiona CTRL-U para compilar y cargar el esquema y poder mostrar un mensaje en la pantalla LCD.

Figure 06 - Compile & upload
Figura 06 – Compilar y cargar

Hemos preparado una versión más avanzada de este proyecto. Se puede importar usando las opciones de menú: Files → Examples → ODROID-GO → 16x2_LCD_I2C, despues pulsa la combinación de teclas: CTRL-U para compilar y cargar.

Referencias

https://wiki.odroid.com/odroid_go/arduino/01_arduino_setup https://wiki.odroid.com/odroid_go/arduino/02_hello_world https://wiki.odroid.com/odroid_go/arduino/33_game_tetris https://wiki.odroid.com/odroid_go/arduino/09_16x2lcd_i2c https://github.com/espressif/arduino-esp32/tree/master/libraries/Wire

Be the first to comment

Leave a Reply