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
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.
Una vez completada la carga, aparecerá el siguiente mensaje:
Hard resetting via RTS pin…
Interfaz I2C
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
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_I2CEn 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_I2CPara 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, 2Invoque 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.
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